Skip to content

feat: implement Linked Key Groups with sequential paste#7

Merged
easyvibecoding merged 1 commit intomainfrom
feat/linked-key-groups
Mar 20, 2026
Merged

feat: implement Linked Key Groups with sequential paste#7
easyvibecoding merged 1 commit intomainfrom
feat/linked-key-groups

Conversation

@easyvibecoding
Copy link
Copy Markdown
Owner

Summary

  • Implement full Linked Key Groups: create, edit, delete groups with Sequential / Select Field paste modes
  • SequentialPasteEngine: pre-fetches all Keychain key values before starting ⌘V→Tab→⌘V sequence to avoid auth dialog interruption
  • Settings UI group management (Add/Edit/Delete Group sheets)
  • request_paste_group IPC handler for extension integration
  • Change paste key shortcut from ⌃⌥[1-9] to ⌃⌥⌘[1-9] to avoid system conflicts

Test plan

  • swift build compiles successfully
  • swift test — 48 tests all pass
  • Manual: create group → IPC trigger sequential paste → Field 1 + Tab + Field 2 filled correctly
  • Manual: edit group with different keys → sequential paste uses updated keys
  • Manual: ⌃⌥⌘[1-9] shortcut works without conflicts
  • Manual: delete key from group → group auto-cleanup

🤖 Generated with [Claude Code](https://claude.com/claude-code

Add full Linked Key Groups feature allowing users to paste multiple
related API keys (e.g., AWS Access Key ID + Secret Key) sequentially
with a single shortcut.

Core changes:
- LinkedGroup model: upgrade from simple keyIds to GroupEntry with
  fieldLabel and sortOrder
- SequentialPasteEngine: pre-fetches all keys from Keychain before
  paste sequence to avoid auth dialog interruption, simulates ⌘V→Tab
  between fields with CGEvent modifier isolation
- VaultManager: full CRUD (create/read/update/delete) for linked groups
- IPCServer: request_paste_group handler (sequential + selectField)
- AppState: group-aware paste via ⌃⌥⌘[1-9] hotkey

Settings UI:
- Keys tab: Linked Groups section with paste mode badge and field flow
- Add Group sheet: multi-select keys with ordering and field labels
- Edit Group sheet: modify keys, labels, and paste mode
- Key rows show linked group membership

Shortcut change:
- Paste key by index: ⌃⌥[1-9] → ⌃⌥⌘[1-9] (avoid system conflicts)
- Updated all docs (zh-TW + en) and CLAUDE.md

Tests:
- Updated VaultManager tests for GroupEntry API
- Added tests: sequential mode, empty group auto-deletion

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@easyvibecoding easyvibecoding merged commit 3a8fe27 into main Mar 20, 2026
2 checks passed
@easyvibecoding easyvibecoding deleted the feat/linked-key-groups branch March 21, 2026 10:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant