Codex, Claude, and Gemini keys reject the disabled field, so toggling them made the whole config fail to load. Keep that field for OpenAI-compatible providers, disable native keys with excluded-models, and repair existing configs before the core starts.
Add independent controls for the startup model and Subagent model. Preserve Claude Code model selection and inheritance when CPA management is disabled.
Fixes#348
- Preserve hashed management keys written by the v8 core
- Avoid rewriting hashed keys with the GUI plaintext value
- Prevent duplicate top-level management mappings
Fixes#351
- Save pagination, visible columns, and column widths to the app data directory
- Migrate existing localStorage preferences and restore them on startup
- Preserve user choices instead of applying new defaults during upgrades
- Add regression tests for preference recovery and update preservation
- Preserve provider credentials, aliases, headers, and network settings during migration
- Normalize Claude cloak metadata and repair previously saved invalid types
- Use streaming Gemini health probes and honor group and key proxy settings
- Retain Codex customizations for temporarily unavailable models
- Add regression tests for migration, metadata, proxy routing, and catalog persistence
- Align response model handling with CPA-Manager-Plus and flag routing mismatches
- Add per-request costs and CSV export; fix mixed-context cost aggregation
- Display API-reported access types and move providers next to timestamps
- Use white table backgrounds and simplify cost and status displays
- Expand client discovery paths, validate executables, and prioritize installed clients
- Add model, pricing, client discovery, and UI regression tests
- Reorganize settings cards and improve responsive layouts, save states, and navigation
- Move model aliases to a dedicated tab and improve search and keyboard interactions
- Add pagination to the agent client list and update localized management text
- Use public model IDs consistently for Codex selection and catalogs
- Fix v8 migration and preserve keys, providers, and aliases in mixed configurations
- Improve the stop-core button styling and expand UI and configuration regression tests
- Add plugin store, version selection, configuration, and OAuth login
- Support Muse (Meta) OAuth device authorization
- Redesign home dashboard and add batch model health checks
- Support per-credential provider editing, removal, and reordering
- Improve usage charts and track actual response models
- Preserve installed plugins and runtime data during portable rebuilds
- Update translations, documentation, and related tests
Keep core config writes on the watched file so repeated saves take effect.
Recover credentials from the update backup when the new macOS app has an empty OAuth directory.
Complete the v0.3.11 release notes in four languages.
Prefer diskutil eject with retries and a compatibility fallback. Defer failed cleanup without blocking verified updates, preserve mounted directories, and add regression tests.
- Extend OAuth directory recovery to Windows and Linux
- Align credential path resolution and log directory selection with the core
- Update v8 TLS and logging fields without requiring a version marker
- Support flow-style YAML mappings and preserve null legacy TLS fields
- Add regression tests for path recovery and config updates
- Normalize auth paths before comparison and credential scanning
- Update effective v8 auth-dir fields without requiring a version marker
- Preserve active credentials and configuration when recovery fails
- Add regression tests for config reloads and v7-to-v8 upgrades
- Default absent optional config nodes to empty values without hiding other errors
- Normalize empty parent mappings to prevent alias save and rollback conflicts
- Add regression tests for missing config, first-time alias creation, and rollback
- Add separate configuration entries for IDE and CLI
- Integrate Gemini-compatible routing and scoped credentials
- Support detection, launch, backup, restore, and IDE restart
- Add localized guidance and configuration, UI, and native integration tests
- Support installation detection, configuration, backup, restore, launch, and restart
- Handle both models.json formats while preserving custom settings
- Simplify model names and retain existing CPA models when switching
- Fix model visibility restoration when disabling integration
- Add regression tests, translations, and documentation
- Support Simplified Chinese, Traditional Chinese, English, and Japanese
- Follow the UI language and show a notice when notes are unavailable
- Avoid language and content fallbacks
- Generate Release bodies and update manifests from per-version Markdown
- Add collapsible notes, publication dates, and links to full releases
- Test publishing, legacy manifest compatibility, and localized rendering
- Restore integration settings with a three-way merge that preserves user edits
- Preserve Claude Code subagent models and Claude Desktop cowork settings
- Retain the dormant cpa-gui provider for historical Codex sessions
- Update integration state transactionally and preserve legacy cleanup behavior
- Add lifecycle and connection-state regression tests
- Add editable model lists, alias suggestions, and usage guidance
- Ignore unselected rows and validate alias conflicts and naming rules
- Fix alias routing through disabled or excluded providers
- Preserve model routes when restoring legacy backups
- Repair legacy metadata and remove unsupported context fields
- Add regression tests for validation and configuration recovery
- Add Devin login to standard and simplified modes
- Support credentials, model aliases, and exclusions
- Display daily and weekly quotas with reset times
- Validate callbacks and prevent stale login updates
- Add translations, theme support, and integration tests
- Move operation feedback into a shared floating stack to prevent layout shifts
- Allow identical errors to reappear after dismissal
- Support keyboard navigation, scrolling, and focus restoration in dialogs
- Add notification interaction regression tests
- Remove code comments throughout the project