mirror of
https://github.com/vitorpamplona/amethyst.git
synced 2026-10-06 11:48:24 +00:00
The cap, the most-recent-first ordering, the de-duplication and the encoding were all written into a desktop `object` bolted to `java.util.prefs`. None of it is desktop-specific — it is a capped list and a labelled list — and that placement is the entire reason Android has never had a search history and the entire reason none of this was tested. `SearchHistory` in commons owns the behaviour; `SearchHistoryStorage` is the two-method seam for where the bytes land. `SearchHistoryStore` keeps its API and becomes the `Preferences` half, so Desktop is unchanged and an existing stored history keeps loading. Two bugs the tests found on arrival: A saved search whose label contained a tab lost the query it named — the label is the one free-text field and the tab is the field separator, so everything after it shifted by one. Labels are now escaped, and only for the two separators and the backslash, so an already-stored label that contains none of them encodes to exactly itself. Re-running a query typed in a different token order made a second history entry. The comparison is on the serialized form now, so two queries that mean the same thing are one entry however they were typed. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DWTxEzzvD3mKkkgE4N7H66