- 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
53 lines
2.3 KiB
Markdown
53 lines
2.3 KiB
Markdown
# Changelog
|
|
|
|
All notable changes to maCopy. Format loosely follows
|
|
[Keep a Changelog](https://keepachangelog.com/).
|
|
|
|
## [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
|