diff --git a/CHANGELOG.md b/CHANGELOG.md index f763bb6..0261d4e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,46 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). --- +## [0.6.0] - 2026-05-26 + +### Added + +- Lazy, full-history search. Search now covers the entire stored history (up + to `max-history`) instead of an arbitrary 500-result cap, and renders a page + at a time as you scroll instead of building every match at once. Results are + snapshotted once and paged from memory, so scrolling never re-queries. + +### Fixed + +- Images other than PNG/JPEG (GIF, WebP, BMP, TIFF, ICO) were silently dropped + because the daemon could not decode them. They are now decoded and stored. + AVIF and SVG are no longer accepted (not decodable here), rather than + accepted-then-dropped. +- Search no longer "blinks" (paints an empty list) between keystrokes; the + first page renders in the same frame as the clear. +- Search render race conditions: a fast new query can no longer be blocked by a + superseded render, render a previous query's stale results, or leave a pruned + item behind as a phantom row on scroll. +- `ItemAdded` preview length now matches the history/search queries (200 + chars), so a just-copied row and the same row after a reload show the same + text. +- Deterministic ordering for items that share a millisecond timestamp + (`created_at DESC, rowid DESC`), so pruning can't evict the wrong one. +- Lowering **max history** now prunes stored items immediately instead of + waiting for the next copy. +- Extension lifecycle: the `excluded-apps` settings handler and the daemon + force-kill timer are now released on disable; the exclusion-path delete is + null-guarded. +- The daemon requests its bus name with `AllowReplacement` for a clean hand-off + on extension reload; the Wayland monitor clears stale offers on clipboard + clear. + +### Changed + +- Image rows show a generic "Image" label instead of singling out PNG. + +--- + ## [0.5.0] - 2026-05-26 ### Added diff --git a/strata-daemon/Cargo.lock b/strata-daemon/Cargo.lock index 3d47ca8..9698013 100644 --- a/strata-daemon/Cargo.lock +++ b/strata-daemon/Cargo.lock @@ -1330,7 +1330,7 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] name = "strata-daemon" -version = "0.5.0" +version = "0.6.0" dependencies = [ "anyhow", "blake3", diff --git a/strata-daemon/Cargo.toml b/strata-daemon/Cargo.toml index b3edbf2..8a9bf35 100644 --- a/strata-daemon/Cargo.toml +++ b/strata-daemon/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "strata-daemon" -version = "0.5.0" +version = "0.6.0" edition = "2021" description = "Strata clipboard manager backend daemon" diff --git a/strata@edu4rdshl.dev/metadata.json b/strata@edu4rdshl.dev/metadata.json index 78d8982..4ea3769 100644 --- a/strata@edu4rdshl.dev/metadata.json +++ b/strata@edu4rdshl.dev/metadata.json @@ -2,7 +2,7 @@ "name": "Strata", "description": "A fast, stutter-free clipboard manager. All I/O runs in a Rust daemon - GNOME Shell is never blocked.", "uuid": "strata@edu4rdshl.dev", - "version": 5, + "version": 6, "shell-version": ["45", "46", "47", "48", "49", "50"], "settings-schema": "org.gnome.shell.extensions.strata", "url": "https://github.com/Edu4rdSHL/Strata"