v0.3.0
What's Changed
Fixed
_notifyDaemonMissingnow uses the correct ESMMessageTrayimport; the missing-binary desktop notification was previously silently swallowed by acatchblock.clearItems()no longer double-destroys widgets.- Daemon now fails fast with a clear error message when the XDG data directory cannot be determined.
Performance
prune()now uses a singleORDER BYsubquery +DELETE WHERE id IN (...), eliminating a redundant second query.get_raw_itemno longer fetchesthumbnail_blob(~40 KB) on paste-back paths that don't need it.- Hover hit-testing replaced: O(n) per-widget bounds-check loop on every mouse-move is now O(tree-depth) via
event.get_source()+ parent walk. SetFocusedAppD-Bus call removed -- the daemon never read the value. Eliminates one IPC round-trip on every window focus change.GetItemContentnow returns raw bytes (ay) instead of a base64-encoded string. Eliminates base64 encode in the daemon and decode on the compositor thread on every paste. Thebase64crate has been removed entirely.- Unnecessary clones of
WriteRequestfields eliminated inwrite_to_clipboard. - Unused base64 return value removed from
make_thumbnail.
Refactoring
- Stale
thumbnail_blobschema migration removed (column was already inCREATE TABLEfrom day one).
See CHANGELOG.md for full details.