Files
maCopy/CHANGELOG.md
T
ilia 43d0582804 Fix FTS search for path punctuation like /idobkin.
Sanitize MATCH tokens so slash/dot queries no longer error and leave a stale full history list; clear the UI on search failure.
2026-08-11 09:51:43 -04:00

2.6 KiB

Changelog

All notable changes to maCopy. Format loosely follows Keep a Changelog.

[Unreleased]

Fixed

  • Search queries with path punctuation (/idobkin, github.com, …) no longer hit FTS5 syntax errors and leave the picker stuck on the full unfiltered history — tokens are sanitized before MATCH
  • When search IPC fails, the list clears instead of showing stale results

[0.2.0] — 2026-07-14

Added

  • Configurable global hotkey (default Ctrl+`; migrates existing users off the old `Cmd+`` default, which conflicted with macOS window-cycling)
  • Image thumbnails in the picker, with backfill for existing entries
  • Sensitive data redaction — passwords/cards/banking previews show •••• in the list; the full value is still stored and still pastes
  • Paste transforms (trim, case, collapse whitespace, pretty JSON, single line) via right-click → Transform
  • Paste plain / without formatting (/Alt+click or right-click)
  • Copy only — right-click → Copy puts content on the clipboard without auto-pasting or hiding the window
  • Color swatches — hex/rgb/hsl entries show a small preview chip
  • Launch at login, wired to macOS Login Items
  • docs/GUIDE.md — living install + usage reference
  • docs/SHARING.md — where the app lives and how to share a build
  • docs/TESTING.md, docs/LAUNCH-AT-LOGIN.md, docs/PRODUCT.md
  • Visual walkthrough script (npm run test:visual) and headed test runner (npm run test:headed)

Changed

  • Reliable left-click paste (mousedown instead of click, delayed window-blur hide) — fixes intermittent missed pastes
  • Image paste now writes a real clipboard image instead of text

Performance

  • Clipboard polling watches macOS NSPasteboard changeCount instead of hashing clipboard contents on a fixed timer — eliminates busy CPU usage while idle
  • Picker list/search IPC returns truncated text previews and image thumbnails only; full content (including image blobs) is fetched lazily, only when an item is actually pasted
  • Frontend refreshes on clipboard-changed / window-focus events plus a cheap latest_entry_id poll, instead of reloading all rows every second
  • SQLite opened with journal_mode=WAL + synchronous=NORMAL so the UI can read while the background poller writes
  • List rows are memoized (React.memo) so selection/focus changes no longer re-render every row's preview

[0.1.0] — initial

  • Menu bar clipboard manager: capture text/images/files, full-text search (SQLite FTS5), multi-select, pin, paste-and-refocus via AppleScript, resizable window, dark/light mode, auto-trim history