maCopy/CHANGELOG.md
ilia e9461ed4f3
All checks were successful
CI / skip-ci-check (pull_request) Successful in 4s
CI / secret-scan (pull_request) Successful in 3s
CI / node-ci (pull_request) Successful in 17s
Add copy-only, color swatches, DB speed pragmas, and living docs
- Copy only (right-click -> Copy): write to clipboard without
  auto-pasting or hiding the window
- Color swatches: hex/rgb/hsl entries show a preview chip
- SQLite WAL + synchronous=NORMAL so the UI can read while the
  clipboard poller writes
- Memoize list rows (React.memo) so selection/focus changes don't
  re-render every row's preview
- Add docs/GUIDE.md (living install + usage doc), docs/SHARING.md,
  docs/TESTING.md, docs/LAUNCH-AT-LOGIN.md, docs/PRODUCT.md,
  CHANGELOG.md, ROADMAP.md
- Add homelab Gitea Actions CI (.gitea/workflows/ci.yml) + gitleaks
  allowlist
- Bump version to 0.2.0
2026-07-14 21:58:31 -04:00

2.3 KiB

Changelog

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

[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