- 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
85 lines
3.6 KiB
Markdown
85 lines
3.6 KiB
Markdown
# maCopy roadmap
|
||
|
||
Living list of shipping ideas. Checked items are done (or landed in the current branch).
|
||
|
||
## Done recently
|
||
|
||
- [x] Global hotkey `` Ctrl+` `` (avoids macOS Cmd+` window-cycle); configurable
|
||
- [x] Performance: pasteboard changeCount, list previews, no full-image list payloads
|
||
- [x] Image thumbnails in the picker (+ backfill)
|
||
- [x] Reliable left-click paste (mousedown + delayed blur hide)
|
||
- [x] Image paste via real clipboard image write
|
||
- [x] **Sensitive redaction** — save passwords / cards / banking / secrets fully, show `••••` in the list; paste still uses the real value
|
||
- [x] **Paste transforms** — right-click → Transform (trim, case, collapse, JSON pretty, single line)
|
||
- [x] **Paste plain** — ⌥/Alt+click or “Paste plain” (strip HTML-ish formatting / entities)
|
||
- [x] Launch at login wired to macOS Login Items
|
||
- [x] Visible `npm run test:visual` walkthrough
|
||
- [x] **Copy only** — right-click → Copy puts content on the clipboard without auto-paste/hide
|
||
- [x] **Color swatches** — hex/rgb/hsl entries show a preview chip (Ditto/Pastebot-style)
|
||
- [x] **SQLite speed pragmas** — WAL + synchronous=NORMAL so reads don't block on writer fsyncs
|
||
- [x] **Memoized list rows** — selection/focus changes no longer re-render every row's preview
|
||
|
||
## Next up (high value)
|
||
|
||
- [ ] **Exclude apps** — don’t capture from 1Password / banking / Terminal patterns (macOS frontmost app filter)
|
||
- [ ] **Signed + notarized release** + install to `/Applications` (see [docs/SHARING.md](docs/SHARING.md))
|
||
- [ ] **Accessibility first-run guide**
|
||
- [ ] **CI** on `npm run check`
|
||
- [ ] **Default transform preference** in Settings
|
||
- [ ] **Snippets / favorites** — named, always-available text (separate from history)
|
||
- [ ] **Ignore patterns** — regex list that auto-drops or auto-redacts matches
|
||
- [ ] **Auto-delete window for sensitive** — purge redacted items after N minutes (optional)
|
||
- [ ] **Virtualized list** — if history UI grows past a few hundred rows
|
||
|
||
## Later / brainstorm
|
||
|
||
### Privacy & trust
|
||
- Encrypt DB at rest (macOS Keychain-wrapped key)
|
||
- Per-entry “never show again” / blacklist hash
|
||
- Paste confirmation for sensitive items (`Confirm paste?`)
|
||
- Clear sensitive on lock / sleep
|
||
- Don’t sync sensitive items if/when sync exists
|
||
|
||
### Capture quality
|
||
- HTML + plain dual capture with “prefer plain” default
|
||
- File lists / Finder copy
|
||
- Link enrichment (title/favicon for URLs)
|
||
- OCR on image entries → searchable text (private, on-device)
|
||
|
||
### Paste power
|
||
- Paste stack / sequential paste (next item on each paste)
|
||
- Paste as keystrokes (for fields that block paste)
|
||
- Numbered paste queue from multi-select order
|
||
- Date/time templates, UUID, lorem in snippets
|
||
- Shell-escape / URL-encode / base64 transforms
|
||
- “Edit before paste” quick editor sheet
|
||
|
||
### UX polish
|
||
- Compact vs comfortable density
|
||
- Pin board / tabs (All · Pins · Images · Sensitive)
|
||
- Drag item onto another app
|
||
- Keyboard: Tab into transforms, `/` transform palette
|
||
- Menu bar: last N items quick-paste submenu
|
||
- Sound / haptic optional on paste
|
||
|
||
### Sync & backup
|
||
- Optional Tailscale / local LAN sync between machines
|
||
- Export/import encrypted archive
|
||
- Time-machine-friendly atomic DB
|
||
|
||
### Power-user system
|
||
- Alfred / Raycast callback URL or CLI (`macopy paste 3 --plain`)
|
||
- Shortcuts / URL scheme
|
||
- AppleScript / JXA bridge
|
||
|
||
### Hardening
|
||
- Sandbox-friendly Accessibility prompt flow + in-app guide
|
||
- Crash-safe write-ahead DB
|
||
- Telemetry: none (keep it that way); optional local diagnostics export
|
||
|
||
## Non-goals (for now)
|
||
|
||
- Cloud sync through a third-party host
|
||
- Browser extension dependency
|
||
- AI “summarize my clipboard” calling external APIs by default
|