Changelog
- c3ec77b Activity event logging (caam-r36)
- 906ea7d Add --json flag to cooldown list and project list commands
- 0a6dedb Add AuthModeDeviceCode and DeviceCodeProvider interface
- 5628e92 Add E2E TUI interaction simulation tests (27 tests)
- 03dd293 Add E2E tests for CLI command workflows (9 tests)
- e7e5dcc Add E2E tests for profile backup and restore (9 tests)
- 7a24b12 Add Q1 2025 "No-Brainer" Feature Plan with comprehensive beads
- d2a8464 Add comprehensive E2E error handling tests for authfile package
- 976975d Add comprehensive GitHub Actions CI/CD
- 61d7bbb Add comprehensive unit tests for claude provider (34 tests)
- 3643cac Add comprehensive unit tests for gemini provider (38 tests)
- bde2b67 Add comprehensive unit tests for internal/authfile (35 tests)
- 01ed20c Add comprehensive unit tests for internal/profile (82.3% coverage)
- eb91232 Add comprehensive unit tests for internal/provider/codex
- 44bd3de Add cooldown tracking and enforce on activate
- 1f66ebf Add doctor command for diagnostics (caam-77v) and fix TUI bugs
- 83b34dc Add env command for shell integration
- 9ecbf12 Add export/import for vault transfer (caam-zha)
- 3020169 Add fsnotify profile watcher (caam-0gx)
- cf8c01e Add init command for first-time setup
- 72c9d55 Add manual refresh command (caam-44i)
- c71d433 Add open command to launch provider account pages
- 75f5ceb Add profile unlock command with stale lock detection
- 48486ed Add project association CLI and activate lookup (caam-dmw)
- 5905f06 Add project association storage (caam-ir7)
- 260f2de Add search/filter mode implementation
- 23ce9d0 Add sessions, use, and which commands
- ff66e8a Add smart profile rotation with --auto flag
- 8de8d0b Add tests and docs for smart profile rotation
- 2dc9968 Add tests for E2E test harness (27 tests)
- ed0297f Add unit tests for cmd/caam/cmd package (96 tests)
- 21a1999 Add unit tests for internal/exec package
- 47ff47f Add unit tests for passthrough package + fix testutil build error
- f9aa589 Add unit tests for version, config, provider, and browser packages
- 3dca33b Add usage analytics CLI (caam-cfb)
- 00626af CLI: Add filtering and --json to history command (caam-ttwt)
- 78a4e3a CLI: Add history command for viewing activity log
- 1049cb8 CLI: Show cooldown TTL in status output (caam-gy7z)
- 6fd317a Close TUI browser launch beads: feature already implemented
- adc47bc Close caam-ctw: Utility Package Tests EPIC complete
- de4e783 Close caam-rsf: Comprehensive Test Coverage Initiative complete
- f8e70a1 Close stealth epic caam-e8o
- 5109c9e Code review fixes: consolidate init(), optimize indexOf, add shell quoting tests
- 924bc5a Docs: document uninstall and fix SPM config header link
- 0827f17 E2E: Add bundle export-encrypt-import workflow tests
- 15d950a E2E: Add multi-machine sync workflow tests
- edcc7e8 E2E: Profile rotation and cooldown workflow tests (caam-sztt)
- e163485 Enhance lock file with PID validation (caam-pb7)
- 9d6f1df Enhanced init wizard with auth discovery (caam-bxq)
- 2cd44db Fix E2E provider auth state tests
- 22c46a2 Fix Makefile accx leftovers and monotonic DB last_error (closes caam-iks, caam-0ds)
- 2e47939 Fix activate build and normalize project store
- ee5d7c4 Fix bugs in rotation and activate code
- bf1ef74 Fix multiple security and reliability bugs in sync and import
- 0b59f41 Fix nil pointer and error handling bugs
- 8353c70 Fix rotation last-activation query, atomic config save, and flush URL capture (closes caam-j06, caam-d8x)
- 9bb5e9c Fix several bugs found during code review
- a75c8f5 Hot reload TUI via watcher (caam-4ve)
- 9eadd8e Implement Bubble Tea TUI scaffolding (caam-qpx)
- 70a17ae Implement OAuth Refresh Handlers and Logic
- f5a3738 Implement caam verify command for profile token validation
- 6628eb1 Implement detail/action panel (caam-f9h)
- cec6aa9 Implement keyboard navigation and actions (caam-j14)
- 8eecab2 Implement profiles table panel (caam-nmm)
- 337afee Initial commit: caam with comprehensive planning beads
- 3682ec8 Project context in TUI (caam-539)
- 21c304a README: restore detailed content while keeping punchy intro + mermaid
- 7e54f7a Refactor activate command to support refresh logic (caam-ub6)
- 8f89150 Reliability Hardening: Add fsync to project store and PID file operations
- adbcd12 Remove contributing section from README
- 6ece701 Restructure AGENTS.md with comprehensive agent guidelines
- 8f24bf4 Rewrite README: concise, mermaid diagram, email-based profiles
- 1608ac5 SQLite DB + migrations (caam-fwl)
- 9a45c01 Security & Reliability Hardening: Env deduplication and atomic file sync
- f61c564 Security & UX Fixes: Windows command injection and URL punctuation
- 044ad93 Shell integration: caam shell init command (caam-k9z)
- 37a46d8 TUI: Implement open account page in browser (w key)
- db5e5da TUI: Wire health data in syncProfilesPanel
- 690d0d1 TUI: Wire health data to detail panel (caam-f8zj)
- 4fbc46f TUI: Wire login/refresh action to refresh.Refresh() (caam-0031)
- 9d68c4c Test refresh/refresh.go - Core orchestration (caam-i312)
- 011f04a Update AGENTS.md with Windows security fix and URL UX fix
- d9c1bad Update AGENTS.md with caam-hard-sync
- d82f3f2 Update AGENTS.md with caam-sec-audit results
- 7ece11c Update AGENTS.md: mark project complete (98/98 beads closed)
- e034bf4 Update README and add install script
- f2bfab1 Update beads after stealth epic comment
- bc3f513 Update keybindings documentation and detail panel
- 3ffb4b6 Update module path and add Charm dependencies
- d4d9c5e Usage analytics TUI panel (caam-peb)
- 97f08e8 Wire up sync CLI to Syncer implementation and fix TUI tests
- 0566503 bd sync: 2025-12-17 01:27:04
- aebaccd bd sync: 2025-12-17 01:28:08
- 0fa7be3 bd sync: 2025-12-17 01:28:48
- 01c95d6 bd sync: 2025-12-17 01:33:11
- d05258d bd sync: 2025-12-17 01:34:02
- cef5959 bd sync: 2025-12-17 01:35:09
- 4646447 bd sync: 2025-12-17 01:36:44
- ad88a49 bd sync: 2025-12-17 01:37:39
- c16b4a2 bd sync: 2025-12-17 01:38:34
- 0be1eea bd sync: 2025-12-17 01:39:32
- 77f5156 bd sync: 2025-12-17 01:40:21
- b8276d4 bd sync: 2025-12-17 01:40:42
- 7b86cb9 bd sync: 2025-12-17 01:41:59
- 4bc0386 bd sync: 2025-12-17 01:42:17
- 033167b bd sync: 2025-12-17 01:43:22
- 68e3c42 bd sync: 2025-12-17 01:45:27
- 8f54b8b bd sync: 2025-12-17 01:46:49
- 943e303 bd sync: 2025-12-17 01:50:03
- de04020 bd sync: 2025-12-17 01:51:02
- 66652a5 bd sync: 2025-12-17 01:53:15
- 7b03c70 bd sync: 2025-12-17 01:53:41
- b1e1dda bd sync: 2025-12-17 01:54:04
- 0b39f58 bd sync: 2025-12-17 01:57:08
- 46204d4 bd sync: 2025-12-17 01:59:30
- 7c8191c bd sync: 2025-12-17 02:01:16
- 65e554a bd sync: 2025-12-17 02:02:26
- c41213a bd sync: 2025-12-17 02:05:56
- 1ef1fd0 bd sync: 2025-12-17 02:07:13
- 7fb2ae1 bd sync: 2025-12-17 02:09:22
- 0a8dc47 bd sync: 2025-12-17 02:11:22
- 032d59c bd sync: 2025-12-17 02:11:55
- fd7b636 bd sync: 2025-12-17 02:15:44
- 1d795a4 bd sync: 2025-12-17 02:17:47
- c262e7d bd sync: 2025-12-17 02:21:30
- dcd5bcd bd sync: 2025-12-17 02:31:40
- 26dbd43 bd sync: 2025-12-17 02:36:41
- d662c6b bd sync: 2025-12-17 02:42:49
- 026a572 bd sync: 2025-12-17 16:32:39
- 678d97b bd sync: 2025-12-17 16:40:14
- 042309d bd sync: 2025-12-17 16:44:42
- f248579 bd sync: 2025-12-17 17:13:20
- 31dc9dc bd sync: 2025-12-17 17:14:45
- 4d00cab bd sync: 2025-12-17 17:19:31
- 319edcd bd sync: 2025-12-17 17:45:30
- 0abbce5 bd sync: 2025-12-17 17:46:44
- 071e101 bd sync: 2025-12-17 17:48:33
- 65959fd bd sync: 2025-12-17 18:19:22
- 87a7a8f bd sync: 2025-12-17 18:27:26
- ae3ac53 bd sync: 2025-12-17 18:44:19
- 8fea977 bd sync: 2025-12-17 18:45:27
- aed2b9f bd sync: 2025-12-17 18:57:20
- 987e11d bd sync: 2025-12-17 19:09:12
- b5eae02 bd sync: 2025-12-17 19:27:03
- 2ad15a0 bd sync: 2025-12-17 19:42:26
- f754843 bd sync: 2025-12-17 19:51:28
- e6bb12d bd sync: 2025-12-17 19:57:41
- 0d902a2 bd sync: 2025-12-17 20:03:50
- 1f46e3d bd sync: 2025-12-17 20:11:47
- f08a310 bd sync: 2025-12-17 20:13:22
- 5454b88 bd sync: 2025-12-17 20:21:06
- d9a2898 bd sync: 2025-12-17 20:30:59
- 909e0a5 bd sync: 2025-12-17 20:32:53
- b0b6b0d bd sync: 2025-12-17 20:34:26
- 91721e4 bd sync: 2025-12-17 20:37:54
- d44b63e bd sync: 2025-12-17 20:39:53
- 6bd07c4 bd sync: 2025-12-17 20:47:11
- 1fb9285 bd sync: 2025-12-17 20:52:26
- 8885071 bd sync: 2025-12-17 21:03:43
- 67cea11 bd sync: 2025-12-17 21:10:29
- d8aa854 bd sync: 2025-12-17 21:28:52
- ac58af7 bd sync: 2025-12-17 21:50:56
- 1cfaeb6 bd sync: 2025-12-17 21:55:38
- cb47327 bd sync: 2025-12-17 22:04:19
- 238f695 bd sync: 2025-12-17 22:07:30
- c457f37 bd sync: 2025-12-17 22:33:15
- d23cc04 bd sync: 2025-12-17 22:38:32
- c7bfae3 bd sync: 2025-12-17 22:48:57
- 85e8ce6 bd sync: 2025-12-17 23:07:42
- c190cc5 bd sync: 2025-12-17 23:21:39
- ec8fb1d bd sync: 2025-12-17 23:26:46
- b01beda bd sync: 2025-12-17 23:31:55
- bb72175 bd sync: 2025-12-17 23:47:31
- 368253b bd sync: 2025-12-18 00:12:27
- f1bdcdc bd sync: 2025-12-18 00:13:55
- ea32844 bd sync: 2025-12-18 00:19:31
- fd6bb8a bd sync: 2025-12-18 00:20:28
- 6e5dfbe bd sync: 2025-12-18 00:34:37
- b023d4f bd sync: 2025-12-18 00:36:40
- c00faa5 bd sync: 2025-12-18 00:46:35
- 9a5ba10 bd sync: 2025-12-18 01:14:47
- 9565ea2 bd sync: 2025-12-18 02:19:52
- 1887c66 bd sync: 2025-12-19 14:50:51
- 917efef bd sync: 2025-12-19 15:03:36
- 42713db bd sync: 2025-12-19 15:58:00
- 9b8eb00 bd sync: 2025-12-19 15:58:33
- bb3ecea bd sync: 2025-12-19 15:59:12
- 747e61f bd sync: 2025-12-19 16:02:03
- 9cc8b26 bd sync: 2025-12-19 16:02:54
- e57b694 bd sync: 2025-12-19 16:03:42
- 89b2f2e bd sync: 2025-12-19 16:04:20
- 513c4cc bd sync: 2025-12-19 16:07:01
- bb2b19f bd sync: 2025-12-19 16:46:18
- 3bf2c19 bd sync: 2025-12-19 16:46:41
- f0170dd bd sync: 2025-12-19 16:49:44
- 38b4922 bd sync: 2025-12-19 16:51:40
- 0af917c bd sync: 2025-12-19 16:59:50
- 414510f bd sync: 2025-12-19 17:12:36
- 6d27956 bd sync: 2025-12-19 17:13:19
- 45c1cca bd sync: 2025-12-19 17:14:42
- 9af095c bd sync: 2025-12-19 17:15:05
- 76d9d98 bd sync: 2025-12-19 19:04:11
- 69501d8 bd sync: 2025-12-19 19:04:57
- 6545b44 bd sync: 2025-12-19 19:05:14
- e4bdbad bd sync: 2025-12-19 19:14:19
- 9c459db bd sync: 2025-12-19 19:21:24
- 7a08498 bd sync: 2025-12-19 20:29:56
- 7a6f7db bd sync: 2025-12-19 20:32:06
- 68be0a5 bd sync: 2025-12-19 20:34:43
- cc5528d bd sync: 2025-12-19 20:35:31
- 9b2fe17 bd sync: 2025-12-19 20:36:57
- 9888457 bd sync: 2025-12-19 20:38:50
- 5352504 bd sync: 2025-12-19 20:40:15
- 703ff2c bd sync: 2025-12-19 20:41:11
- ebb7d7f bd sync: 2025-12-19 20:42:19
- f078c45 bd sync: 2025-12-19 20:43:37
- a534c12 bd sync: 2025-12-19 20:44:50
- ccfe844 bd sync: 2025-12-19 20:44:54
- 19dcb75 bd sync: 2025-12-19 20:46:34
- a1e6e02 bd sync: 2025-12-19 20:47:46
- ebe4ab4 bd sync: 2025-12-19 20:48:36
- e56c262 bd sync: 2025-12-19 20:49:06
- 4296844 bd sync: 2025-12-19 20:49:52
- 8902adc bd sync: 2025-12-19 20:51:14
- 5ebc242 bd sync: 2025-12-19 20:52:23
- 84d746a bd sync: 2025-12-19 20:55:38
- 6a4f359 bd sync: 2025-12-19 20:56:44
- 8fd8137 bd sync: 2025-12-19 20:58:54
- ecd1edd bd sync: 2025-12-19 21:01:48
- 7d6ff6f bd sync: beads update 2025-12-19
- 0dab5ea bd sync: beads update 2025-12-19 19:05:27
- c521273 bd sync: close caam-04mb (JSON Output Consistency)
- dcfcbce bd sync: close caam-41a (CLI Command Tests)
- 69a9307 bd sync: close caam-9a3c (CLI --json for ls/status)
- 1cb0efd bd sync: close caam-ah4 (Auth file watcher)
- 81c86a8 bd sync: close caam-byq (Background daemon for token management)
- d8024a6 bd sync: close caam-dxf (Refresh Module Tests)
- c92c97d bd sync: close caam-ma9f (TUI test coverage)
- 94d64b5 bd: close Just Works UX EPIC (caam-m9g)
- 2376886 bd: close caam-37az (TUI Open Account Page feature)
- 29ee874 bd: close caam-9isk, caam-x37s, caam-pa7b (TUI browser open)
- 6d39ccd bd: close caam-dt4
- 3d9f46b bd: close caam-nh8
- 7815766 bd: close caam-vog (verify command)
- d802b70 beads: close caam-ir7
- 73cadf6 beads: update issue tracker
- 2f31113 caam wrap: Auto rate limit detection and profile rotation (caam-q9f)
- 2bd4f6f caam-41a: Add CLI command tests for cleanup, config, export/import
- 4800356 caam-6gz1: Fix sync_test.go MachinePool -> SyncPool
- 47e97ef caam-ctw: Improve signals package test coverage to 81.6%
- 12caed0 caam-dxf: Add refresh module tests for errors.go and url_guard.go
- f0da9f2 caam-krd: Add sync infrastructure tests
- 95c23ae caam-ma9f: Add TUI panel and styles tests
- cc289af caam-ma9f: Add tui package tests and fix sync_test.go
- 58f407b caam-u7ue: Add cmd/caam/cmd package tests
- 9295c8a caam-z7j7: CLI --json support audit complete
- 7144ea0 caam: auto-backup _original on first activate (caam-5fk)
- 145ad89 chore(beads): update issue tracking state
- 0a61521 docs(agents): update bead count and add WhiteDog agent
- 58816be feat(auth): add auth detection CLI and profile description support
- d690d49 feat(auth): implement caam auth import command (caam-2l9p.2)
- 2c1ba4a feat(authfile): add smart auto-backup before profile switch (caam-zti)
- 38ebe08 feat(bundle): implement bundle export/import and sync functionality
- 60d5ff8 feat(caam-04mb): Add --json flag to activate and backup commands
- cba06db feat(caam-9a3c): Add --json flag to ls and status commands
- 495ca62 feat(caam-lr2): Add one-command account capture
- e93b4da feat(caam-t5p): Add workspace command for switching all tools at once
- c5b3f03 feat(cli): Add health status display to list and status commands (caam-0eq)
- a7402fa feat(cmd): add caam next for one-command profile rotation
- 1ef2d05 feat(cmd): add uninstall command (caam-3b3)
- 9f07305 feat(codex): capture + resume sessions (caam-0gy)
- 94042ec feat(codex): device-code login for isolated profiles (caam-v89, caam-ela)
- bb8b03a feat(config): Add Smart Profile Management configuration (caam-0gb)
- d55e4a0 feat(config): add safety config for data recovery (caam-3w5)
- 2b9108a feat(config): add stealth config for detection mitigation (caam-bgz)
- 003104b feat(cost): add cost tracking for AI CLI wrap sessions
- 49c72d1 feat(db): data retention and automatic cleanup (caam-ljt)
- 522fd3d feat(health): Implement health metadata storage (caam-6gj)
- d8921ea feat(health): Implement token expiry parsing (caam-thb)
- 04415cd feat(health): implement penalty tracking with decay
- 2450e64 feat(provider): add auth detection capability for first-run experience
- 28e3b3f feat(provider): add centralized ProviderMeta for account URLs (caam-9isk)
- 35d1205 feat(refresh): implement proactive token refresh and fix health store wiring
- b20fcfa feat(safety): protect system vault profiles (caam-nh8)
- 8d074a0 feat(stealth): add switch delay before activate (caam-108)
- 1b9590b feat(sync): add freshness.go for token freshness extraction
- 0af37fe feat(sync): add sync init wizard and JSON output support
- b4d58a9 feat(sync): implement SSH connectivity and transport layer
- 96fa65e feat(sync): implement token freshness comparison and sync algorithm
- e5e5658 feat(sync,bundle): Add sync infrastructure and bundle format packages
- 339e144 feat(testutil): Add ExtendedHarness with step tracking, logging, and metrics
- d643d35 feat(tui): add dialog components for text input, confirmation, and multi-field
- decd06f feat(tui): add sync panel and export/import functionality
- f688186 feat(tui): add sync panel visibility check in View()
- 3876712 feat(tui): enhance interactive UI with improved navigation and display
- d373866 feat(tui): signal handler, pid file, and reload command (caam-i5j)
- 8ba0e54 feat: Auth file watcher for external change detection (caam-ah4)
- 1fa09e2 feat: Browser profile auto-detection for init wizard (caam-1us)
- 3a854ac feat: Profile aliases and fuzzy matching (caam-08w)
- c3e8668 feat: add profile description field and Gemini auth detection
- bbdddde fix(activate): guard SPM config load; test auto-backup
- 12ddab1 fix(browser): improve URL detection with line-based buffering
- b25d56a fix(codex): hide API key prompt on tty (caam-d04)
- 0a087b5 fix(daemon): handle EPERM in process detection and fix log file leak
- 8dc29cd fix(db): prevent data loss when retention days is 0
- c9167bb fix(exec): prevent goroutine leak in signal handler and optimize codex session capture
- cde2145 fix(health): prevent TOCTOU race in all mutating Storage methods
- 587e3fd fix(project): prevent TOCTOU race in SetAssociation and RemoveAssociation
- 439f3bb fix(provider/codex): isolate HOME directory for Codex profiles fix(health): prevent unsafe system ADC fallback in ParseGeminiExpiry
- 94869e0 fix(security): validate vault/profile path segments (caam-i4g)
- 361e2a7 fix(signals): handle EPERM in pid checks (caam-ii3)
- 76b6c43 fix(sync): Add fsync to CSV writes and fix data race in state Save
- ee0c206 fix(sync): fix queue processing and JSON output bugs
- 0f10297 fix(sync): improve path matching and error handling in sync algorithm
- 904afbf fix(sync): use POSIX paths for remote SFTP operations
- 02f1cde fix(sync): use atomic write with fsync in pullProfile
- 0dd11f0 fix(wrap): buffer teeWriter output for reliable rate limit detection
- c60c625 fix: Correct FuzzyMatch test expectations for exact alias behavior
- 00d8f4f fix: Remove redundant counter in checkAllProfilesCooldown
- a6e45f4 fix: Shell quoting security and db cleanup before os.Exit
- 5d4d790 fix: add fsync to authfile metadata writes
- d7785ad fix: add fsync to spm_config and health storage saves
- 1bccc2a fix: correct JSON mode bugs in activate command
- febc493 fix: improve reliability in authwatch and daemon packages
- 194cd8e fix: prevent shell injection in browser helper scripts
- 357f815 fix: race condition in OutputCapture test and passthrough signature updates
- 596d89d fix: rename duplicate test functions in urldetect_test.go
- 1dfcf29 fix: resolve CI build failures
- 6a6591f fix: resolve glob association bug and profile save atomicity
- 0c2d62e fix: resolve import conflicts and add benchmark tests
- dd84330 fix: use exclusive lock in SyncState.Save() to prevent data race
- 925443e refactor: improve reliability across core packages
- fdb8052 test(e2e): Add complete backup-activate-switch workflow tests
- adb79cd test(sync): improve sync package coverage from 43.1% to 50.8%
- a7ba19b test(tui): add sync panel tests