- Add Clear integration to configuration management
- Guide users without OAuth credentials through clearing integration and signing in
- Separate apply and close actions, showing Close only when configuration is applied
- Preserve credentials and original settings across switches
- Restore the CPA model catalog when reconnecting
- Add configuration switching and UI regression tests
- 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
- Detect Web UI secret and port changes in the usage collector
- Drop stale Redis subscriptions authenticated with the old key
- Reset queue source selection and reconnect with the latest configuration
- Align TPS and token normalization with Keeper
- Add Redis usage queue batch pulling with HTTP fallback
- Prevent cache and invalid token double counting
- Refresh usage details immediately after new records arrive
- Use Tauri native theme APIs with Linux desktop preference support
- Fall back to WebView theme detection for startup and browser preview
- Add a follow-system option to both standard and beginner modes
- Persist preferences and handle resume events and async race conditions
- Add translations and theme behavior and UI regression tests
- Read context limits from the core catalog and configuration
- Show numeric values with their source instead of automatic placeholders
- Preserve manual overrides and support resetting to inherited values
- Separate default model selection from catalog configuration
- Use API metadata with per-model and provider overrides
- Expose documented capability, reasoning, protocol, and request settings
- Preserve customizations with conflict detection and transactional rollback
- Discover installation paths from registry entries and shortcuts
- Handle installer records without InstallLocation
- Avoid launching the desktop app when version metadata is unavailable
- Add regression tests for path resolution and version detection
- Add configuration management tabs to full and easy modes
- Share run controls and feedback while preserving drafts and Claude settings
- Support desktop app restarts and Harness Web restarts with original parameters
- Improve responsive layouts, keyboard navigation, and localization
- Add UI regression and isolated process restart tests
Resolve model sources before replacing role aliases and support legacy
API and OAuth configurations that retain only aliased model entries.
Add regression coverage for source priority, disabled providers,
cross-role updates, and transaction rollback.
- Validate provider integrity before saving alias changes
- Reject rendered YAML that differs from the expected configuration
- Abort migration when existing config cannot be read or parsed
- Remove lossy config recovery fallback
- Add regression tests for provider loss, locked files, malformed config, and repeated updates
Do not treat managed aliases under disabled providers as usable Desktop routes. Match each route against its source on an enabled provider, skip disabled sources when creating aliases, and exclude disabled mappings when identifying direct aliases.
Validation: four regression tests fail before the fix and pass afterward; cargo test --locked (456 passed); cargo check --locked. After migrating the two affected live routes to the existing enabled source, Haiku and Opus messages requests both returned HTTP 200.
Use one cleanup path for override and override-raw across model and Fast alias creation and deletion. Remove supported effort and service-tier keys while preserving unrelated parameters, selector conditions, other protocols, and grouped models.
Validation: cargo test --locked alias_ (72 passed), including raw High/Fast deletion followed by Low/non-Fast recreation, orphaned raw rules, conditional grouped rules, and all supported effort keys.
Scope payload cleanup to the selected OAuth protocol and retain rules still used by surviving OAuth aliases, API mappings, or real models. Preserve protocol-free shared rules while any matching mapping survives, and limit creation cleanup to its source protocol.
Validation: cargo test --locked tests::alias_delete (6 passed), including Codex/Claude collisions, wildcard selectors, same-protocol OAuth channels, and API mappings.
Determine deletability from the actual provider model mapping instead of requiring an effort payload rule. Keep source models and unrelated aliases intact.
Validation: cargo test --locked tests::alias_delete (3 passed), covering all four API provider sections, removing every option in the editor, and real-model name collisions.
Include CPA model aliases in Desktop history previews and revision checks. Restore routes and local history through a serialized transaction, rolling core changes back when local restoration fails. Reject legacy fixed-route snapshots without mapping metadata.
Validation: cargo test --locked tests::alias_save (13 passed), including successful route restoration, stale previews, local conflicts, core write failure, and rollback.
Include Claude Desktop mappings in history change detection and preserve the previous selection. Show mapping changes in history previews and invalidate previews when metadata changes.
Validation: 15 history tests pass, including identical-profile model changes and repeated no-op saves.
Ignore inherited client configuration paths in test builds and enforce temporary-home boundaries for history fixtures.
Validation: 435 Rust tests pass, including a child-process regression with inherited client environment overrides.
- Validate configuration revisions and reject ambiguous model mappings
- Preserve raw overrides, conditions, and unchanged settings
- Serialize saves and restore configuration after write failures
- Add regression coverage and remove comments from affected files
Resolve existing aliases from their configuration, preserve metadata and unrelated payload parameters, and keep shared rules intact when renaming or changing sources.
Fix dialog feedback, keyboard focus, and narrow layouts. Add regression coverage for alias edits and browser interactions.
- Remove 3 unused functions and 2 unread fields
- Gate test-only types and helpers with #[cfg(test)]
- Verify all 403 Rust tests pass and check/release builds emit no warnings
- Retry errors 5, 32, 33, and 1175 up to five times with exponential backoff
- Preserve the final error and avoid retrying partial replacement failures
- Add eight regression tests covering transient and persistent file locks
Closes#241
- Stop live core processes before updates, regardless of port availability
- Wait for process termination before replacing files
- Block new core operations and cancel startup during shutdown
- Attach the Windows Job immediately after spawning
- Abort updates and restarts when stopping the core fails
- Add lifecycle and file-lock regression tests; all 33 related tests pass
Stop writing the OpenCode-specific npm field and clean up values
left by earlier versions when synchronizing ZCode configuration.
Add regression coverage for both app and CLI configs.
Closes#231
- Resolve context limits from core model definitions, aliases, and configuration
- Preserve user overrides and display context sources and fallback hints
- Refresh defaults from CPA when restoring all model settings
- Keep restore-all available without customizations and remove its icon
- Allow saving restored defaults even when values remain unchanged
- Add regression coverage for context resolution and default restoration
- Use consistent in-app dialogs for confirmation actions
- Keep quota refreshes free of prompts and automatic paid probes
- Add a separate confirmation flow for xAI availability tests
- Require explicit approval for Codex resets and prevent duplicate requests
- Show reset outcomes and require a quota refresh before retrying failures
- Cover confirmation and reset flows with fully mocked tests
- Use credential-file terminology in Simplified and Traditional Chinese
- Highlight the Enable button for disabled credentials without dimming actions
- Add regression tests for terminology and button styling