Commit c1056ba
fix: secure clipboard, recover command, and first-time user experience
Major security and functionality fixes:
1. **Secure Clipboard (macOS)**
- Replace insecure pbcopy subprocess with arboard crate
- arboard uses NSPasteboard API directly (no subprocess exposure)
- Fixes security vulnerability: passwords no longer visible via ps/procfs
- Implement auto-clear after timeout (30s macOS, 45s Linux)
2. **Recover Command Fix**
- Add initialize_with_wrapped_passkey() to CryptoManager
- Store KDF nonce in wrapped_passkey for proper recovery
- Fix unlock_keystore() to check wrapped_passkey first
- New password now works after recover, old password correctly fails
3. **First-Time User Experience**
- Add is_first_time() detection in onboarding module
- Show welcome message directing users to 'ok wizard'
- Fix confusing TUI /new command help text
4. **Code Quality**
- Add base64::Engine import for wrapped_passkey handling
- Fix clipboard manager to use new() constructors correctly
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>1 parent a219025 commit c1056ba
8 files changed
Lines changed: 537 additions & 49 deletions
File tree
- src
- clipboard
- cli
- crypto
- tui/commands
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
140 | 140 | | |
141 | 141 | | |
142 | 142 | | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
143 | 147 | | |
144 | | - | |
| 148 | + | |
| 149 | + | |
145 | 150 | | |
146 | 151 | | |
147 | 152 | | |
| |||
0 commit comments