Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,26 @@ All notable changes to SearchMob are documented here. The format is based on
[Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and the project uses Ubuntu-style date
versioning (`YY.MM.VV`).

## [26.06.00] - 2026-06-02

### Added
- **Personalized ranking that learns from your clicks.** SearchMob can now quietly move the sites
you tend to click higher, and it gets better the more you search. It learns on-device from a
position-bias-resistant "clicked over skipped-above" signal, applies a bounded boost (so engine
consensus stays primary and your pin/raise/lower/block rules always win), and includes exploration,
a cold-start gate, and time decay so it never collapses result diversity or acts on weak evidence.
- **Opt-in, recommended, and private.** Off by default, offered as a recommended step in the setup
wizard and a toggle on the **Result ranking** settings page. What it learns is encrypted on your
device, never leaves it, and is never trained by, nor applied for, other people on your network.
You can **export, import, and reset** the learned model; the format is shared with SearchMob
Desktop, so you can move it between devices.
- **Learns from the served browser page too.** Clicking a result from a browser search through the
local server trains the model the same way the in-app results do, through an owner-only redirect
that only ever sends you to the result you clicked. Network clients get plain links and are never
tracked or personalized.
- **Setup wizard re-appears once after a feature update** (framed as "what's new") when an update
adds a new opt-in setting, so existing users discover it instead of only fresh installs.

## [26.05.05] - 2026-05-31

### Added
Expand Down
2 changes: 1 addition & 1 deletion app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ val hasReleaseSigning =
// date versioning: YY.MM.VV (two-digit year, month, and per-month build), set manually each release.
// `versionCode` is derived as (YY*10000 + MM*100 + VV) so it always increases monotonically with the
// date (e.g. 26.05.00 -> 260500, 26.06.00 -> 260600, 27.01.00 -> 270100). Bump this on each release.
val appVersionName = "26.05.05"
val appVersionName = "26.06.00"
val appVersionCode =
appVersionName
.split("-")[0]
Expand Down
Loading