Features
Simplified OAuth Authentication
- Craft Agent now exclusively uses its own OAuth flow for authentication
- Removed Claude CLI/Desktop token detection and import functionality
- Users with legacy tokens will be prompted to re-authenticate once
- Cleaner, more reliable authentication experience
Developer Testing Tools
- New
test-token-refresh.tsscript for OAuth token testing and debugging - Supports login, expiry simulation, origin detection, and migration testing
- Added
--token-onlyflag to fresh-start script for testing onboarding without losing workspace data
Improvements
Claude Config Auto-Repair
- Automatically detects and repairs corrupted
~/.claude.jsonbefore the SDK subprocess starts - Handles missing files, empty files, UTF-8 BOM encoding (Windows), invalid JSON, and stale
.backupfiles - Prevents "CLI output was not valid JSON" crashes caused by the SDK writing plain-text recovery messages to stdout
- Includes retry logic for Windows file-locking scenarios (antivirus, indexer)
- Runs once per process lifetime with reset capability for error recovery
OAuth Token Logging
- Token refresh operations now log expiry timestamps for easier debugging
- Better visibility into token lifecycle and refresh behavior
Icon Cache Robustness
- Fixed null handling for missing workspace icons
- IPC calls now properly return null instead of throwing for missing images
CI/CD Pipeline
- New 2-step release flow: build & upload (automatic on tag push) + promote to latest (manual workflow)
- Upload manifest script can now copy from existing version artifacts
Bug Fixes
- Fixed auto-activation failing for sources with
authType: none(e.g., Context7) (#72) source_testnow correctly setsisAuthenticatedfor MCP, API, and local sources that don't require authentication- Fixed session date grouping changing after app restart by persisting
lastMessageAtseparately (#69) - Fixed empty placeholder docs by copying documentation assets into Electron dist (#70)
- Fixed OSS
electron:dist:macbuilds by adding missing scripts to allow-list (#71) - Fixed potential crash when workspace icon file doesn't exist
- Fixed IPC error handling for missing workspace images
- Fixed SDK subprocess crash when
~/.claude.jsonis missing, empty, BOM-encoded, or contains invalid JSON