mirror of
https://github.com/edu4rdshl/Strata.git
synced 2026-07-17 23:24:46 +00:00
3.4 KiB
3.4 KiB
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
[0.3.0] - 2026-05-25
Fixed
_notifyDaemonMissingnow uses the correct ESMMessageTrayimport; the missing-binary desktop notification was previously silently swallowed by acatchblock due to aReferenceErroron the legacyimports.ui.*path.clearItems()no longer double-destroys widgets:destroy_all_children()on the item list is sufficient; the preceding per-widgetdestroy()loop was redundant and could trigger warnings.- Daemon now fails fast with a clear error message when the XDG data directory cannot be determined, instead of silently placing the database in the current working directory.
Performance
make_thumbnailreturn type simplified toResult<Vec<u8>>; the previously returned base64 string was never used at the call site.prune()now collects IDs with a singleORDER BYsubquery, then deletes withDELETE WHERE id IN (...), eliminating a redundant second query.get_raw_itemno longer fetchesthumbnail_blob(up to ~40 KB per row) when only text/binary content is needed for paste-back.- Unnecessary clones of
WriteRequestfields eliminated inwrite_to_clipboard. - Hover hit-testing in the panel replaced: the previous O(n) per-widget
bounds-check loop on every mouse-move is now O(tree-depth) via
event.get_source()+ parent walk, letting Clutter's own hit-test do the work. SetFocusedAppD-Bus call removed. The daemon stored the value but never read it; app exclusion runs entirely in the extension beforeSubmitItemis called. Eliminates one IPC round-trip on every window focus change.GetItemContentnow returns raw bytes (ay) instead of a base64-encoded string (s). Eliminates base64 encode in the daemon and decode in GJS on every paste. Thebase64crate dependency has been removed entirely.
[0.2.0] - 2026-05-25
Fixed
- MIME priority: plain text now preferred over rich text.
When an application (code editors, web browsers, etc.) advertises both a
plain-text and a rich-text (
text/html,text/rtf) variant on the clipboard, Strata now captures the plain-text variant. Previously,text/htmlranked abovetext/plain, causing syntax-highlighted HTML markup to be stored instead of the actual source text when copying from code editors. Rich-text types are still captured when no plain-text alternative is offered. Fix applied to both the Rust daemon (pick_mime) and the GNOME Shell extension (_pickMime) to keep them in sync.
[0.1.0] - 2026-05-24
Added
- Initial release.
- Rust daemon (
strata-daemon) with SQLite/FTS5 storage, Wayland clipboard monitor, D-Bus interface (org.gnome.Strata), and image thumbnail support. - GNOME Shell extension (
strata@edu4rdshl.dev) with popup panel, lazy-loaded pagination, full-text search, image thumbnails, and paste-back. - Preferences window (Adwaita) for history size, size limits, keyboard shortcut, panel position/width, and excluded-app list.
- Daemon lifecycle management: extension detects an existing systemd-managed
daemon and falls back to spawning from
PATH; shows a desktop notification when the binary is not found. contrib/systemd/strata-daemon.servicefor distribution packaging.Makefilewithinstall-daemon,install, andpacktargets.