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
- Spawn Linux core processes on a dedicated, persistent thread instead of temporary background workers.
- Preserve parent-death signaling to stop the core when the GUI exits.
- Keep existing process management and Windows/macOS launch behavior unchanged.
- Add regression tests for launcher thread exit, runtime shutdown, spawn failure recovery, and parent-process termination.
- Move blocking usage queries and core lifecycle operations to background
workers, limit concurrency, and prevent overlapping core operations
- Coalesce statistics refreshes and consolidate category aggregations,
reducing unfiltered analysis queries from 11 to 4
- Cache bundled model prices, reuse management API connections, and reduce
redundant checks in the usage collector
- Throttle download progress and guide positioning updates, and avoid
redundant renders when core status is unchanged
- Bound and coalesce configuration watcher events, and reuse a single
model catalog refresh worker
- Stop scheduling remaining health checks when the dialog closes and
limit backend health-check concurrency
- Replace overlapping OAuth polling with sequential requests, retry
backoff, timeouts, and stale callback protection
- Add regression tests and a statistics benchmark script, and move
performance verification documentation to agent_docs
- add per-model context, reasoning, modality, visibility, and parallel tool settings
- persist customizations separately and apply them during catalog generation
- support restoring individual or all models to official fallback templates
- expose full fallback reasoning levels while keeping Fast available
- add localized UI, validation, documentation, and regression tests
- Sync all 11 dedicated model templates from the upstream Codex catalog
- Preserve official context windows, prompts, capabilities, and reasoning levels
- Remove the custom Spark and DeepSeek dedicated templates
- Move fallback model metadata into a standalone embedded resource
- Prevent remote catalogs and local caches from overriding fallback configuration
- Add catalog revision checks to prevent older templates from replacing newer ones
- Keep Fast mode available for both dedicated and fallback models
- Add regression coverage for Astra generation, catalog revisions, and fallback isolation
Validation: all 332 backend tests pass.
- Align fallback defaults and instruction structure with upstream Codex while preserving Fast availability for all models
- Stop forcing fallback reasoning levels or inferring original-image support
- Sync managed catalogs on model refresh, configuration changes, and every 30 seconds
- Remove unavailable models, replace missing defaults, and handle empty-list recovery
- Preserve existing configuration on request failures or invalid responses
- Serialize refreshes, update UI model lists, and preserve backups across restarts
- Add regression coverage for fallback compatibility, stale-model cleanup, and configuration recovery
- preserve the active Codex OAuth mode in legacy configuration paths
- retain unsaved OAuth selection when navigating between clients
- add regression coverage to prevent OAuth credentials from being overwritten
- add log diagnostics card under basic settings
- persist and synchronize CPA request-log configuration
- support configuration migration and rollback on save failure
- add localized UI copy and responsive styles
- add tests for request-log parsing and YAML merging
- use the original model slug as the catalog display name
- expose all standard reasoning levels for every model
- prevent upstream metadata from restricting reasoning options
- update catalog generation tests
- enable Fast for Codex API, OpenAI-compatible, and Codex OAuth sources
- apply service_tier=priority as an independent payload override
- support Fast-only and reasoning-effort combinations
- disable Fast until a supported model source is selected
* fix(gitignore): add .codex to ignored files
* feat(settings): add configurable default terminal for CLI agents
- Add default terminal selector under Advanced Settings > Software Settings
- Detect available terminals across macOS, Windows, and Linux
- Persist and migrate the default-terminal configuration
- Apply the selected terminal when launching CLI agents
- Add localized labels and regression tests
Fixes#179
* feat(easy-mode): improve API onboarding and agent configuration flow
- Fix management API 404 errors when saving API providers
- Simplify the model list and support custom model IDs
- Adjust API field order and default provider selection
- Reuse the full agent configuration page and restore agent detection
* refactor(agents): simplify embedded beginner mode UI
* style(easy-mode): align onboarding heading typography
* fix(easy-mode): refine API onboarding actions and notifications
- Reveal model selection and save actions only after fetching models
- Move the API save success toast to the bottom-right corner
- Auto-dismiss the success notification after a short delay
- Remove icons from the model fetch and save buttons
* feat(easy-mode): refine guided setup flow and spotlight positioning
- Enforce completion of each selection, input, and configuration step
- Align OAuth, API access, and agent setup guidance with actual UI actions
- Prevent guidance cards from overlapping highlighted areas
- Improve bilingual step descriptions and completion states
* feat(easy-mode): refine onboarding flow and navigation controls
- Enforce accurate step validation for OAuth and API setup
- Select all fetched API models by default
- Prevent guide cards from overlapping highlighted areas
- Improve onboarding copy and remove unnecessary dashboard actions
- Reposition and highlight guide and exit controls
* fix(usage): filter control messages and repair unknown records
- filter empty, null, refresh, and support_refresh messages before persistence
- require request_id for usage records
- repair Claude cache token accounting
- delete historical unknown records
- show deleted record count in usage management
* fix(ui): improve auth file and core install notifications
- show auth file operation notices as auto-dismiss toasts
- prevent duplicate core install completion notifications
- close the install dialog automatically after successful installation
- bump core version to 7.2.146
* fix(ui): improve responsive layouts and core install notifications
- add workspace container breakpoints for management and usage pages
- make the usage table fill the available viewport height
- reduce unnecessary blank space in usage records
- silence automatic bundled core install completion notifications
- deduplicate manual core install completion feedback
* chore(version): update core version to 7.2.147
* fix(management): bypass system proxy for local Core requests
* fix(claude-desktop): support Claude OAuth model aliases
- Resolve Claude Desktop model sources from all OAuth definitions
- Write managed aliases to the matching OAuth channel
- Preserve alias metadata and add regression coverage
* test(claude-desktop): cover xAI OAuth model aliases
* feat(config): add disable cooling toggle to retry settings
* feat(config): add disable cooling toggle and refine settings layout
* fix(dependencies): update cpa-gui version to 0.2.69
- filter empty, null, refresh, and support_refresh messages before persistence
- require request_id for usage records
- repair Claude cache token accounting
- delete historical unknown records
- show deleted record count in usage management
- Add default terminal selector under Advanced Settings > Software Settings
- Detect available terminals across macOS, Windows, and Linux
- Persist and migrate the default-terminal configuration
- Apply the selected terminal when launching CLI agents
- Add localized labels and regression tests
Fixes#179
Treat request_id/event_key as correlation fields instead of unique keys,
allowing multiple usage events from the same persistent WebSocket connection.
Migrate existing usage.db schemas and add regression coverage.
Fixes#180
Prioritize the agent executable directory while preserving discovered
search paths for Pi package operations and CLI version probes.
Add coverage for PATH ordering and downstream command resolution.
- Decouple reasoning effort from the Fast service tier
- Generate native override parameters for each provider
- Validate efforts against the model’s supported levels
- Preserve complete reasoning capabilities on configured models
- Add coverage for multi-provider alias overrides
- stretch the usage table to match card width
- set the default window size to 1280 × 800
- migrate the legacy default window dimensions
- add coverage for window size migration
- serialize app and core version checks to prevent state races
- keep the source selector responsive during background checks
- prevent stale fallback results from overriding recent selections
- style the custom source action and restore the compact selector width
- support built-in and user-defined GitHub mirror sources
- add a modal for managing custom HTTPS mirror prefixes
- automatically switch sources when version checks fail
- persist the working source and sync the selector in real time
- update translations, configuration migration, and source tests
- support GitHub, GitCode, gh-proxy, and ghfast sources
- automatically try other sources when version checks fail
- persist the working fallback source and sync the UI immediately
- update translations, configuration migration, and source tests
- Match core processes by their actual executable paths
- Prevent different EasyCLIProxyAPI installations from interfering
- Adopt orphaned core processes from the current cpa-core directory
- Rescan and terminate owned core processes during shutdown
- Enforce a single app instance per installation directory
- Clean up core processes that fail to enter the Windows job object
- Add multi-directory process isolation and instance lock tests
- Add a dedicated version management page
- Improve app, core, and model catalog status displays
- Preserve the core runtime state during updates
- Automatically restart the core after successful, failed, or cancelled updates
- Add tests for version management and core runtime restoration
- Split React, Tauri, DnD, and icon dependencies into vendor chunks
- Reduce the main application chunk below the warning threshold
- Compile test-only alias helpers only during test builds
- Add a GitCode source toggle to Version Management
- Persist the preferred download source
- Prefer GitCode for app and core updates with GitHub fallback
- Add localized copy, documentation, and download-order tests
* chore(release): stop publishing legacy Windows update packages
* feat(agents): support OpenCode Desktop across platforms
Detect CLI and desktop installations on Windows, macOS, and Linux, and add separate launch and restart controls.
Closes#156
* fix(codex): align model display names and show total session count
- preserve runtime model identity in generated catalogs
- count distinct sessions across database and rollout sources
- update session count labels in all supported languages
* fix(codex): keep config and auth files in sync
- generate auth.json for API key configuration
- preserve and validate OAuth credentials
- include auth.json in transactional updates and rollback
- retain compatibility with legacy Codex configuration states
* fix(cpa-gui): update version to 0.2.59 in Cargo files
* fix(codex): preserve OAuth mode after closing configuration
* feat(config): add TLS management and protocol-aware local URLs
- add TLS controls to advanced settings
- persist certificate and private key paths
- restart the core after TLS changes
- switch WebUI, API and management URLs between HTTP and HTTPS
- synchronize agent configurations and detection with the active protocol
* refactor(config): reorganize network, routing, and TLS settings
- split network settings and session routing into separate tabs
- move TLS configuration into network settings
- preserve TLS restart and HTTPS URL synchronization behavior
* feat(config): add independent network settings and custom listen IP
* fix(navigation): allow access to usage records while core is stopped
* refactor(home): show a single API URL based on the configured listen IP
* feat(config): add file pickers for TLS certificate and private key
* fix(usage): distinguish client cancellations from request failures
- persist usage failure status and response details
- classify HTTP 499 and canceled contexts separately
- exclude canceled requests from failure statistics
- add canceled filtering and failure details to the usage UI
- migrate and backfill existing usage records
* feat(ui): revamp usage records and improve app interactions
- redesign usage records dashboard, filters, charts, and pricing views
- add resizable centered columns with persisted widths
- expose OpenCode desktop launch and restart actions
- suppress the API access enabled success notice
* feat(agents): persist applied configurations across app restarts
- preserve applied agent configs and managed Claude aliases on exit
- keep explicit close actions restoring original configurations
- add Codex restart persistence regression coverage
- bump desktop version to 0.2.61
* fix(model-aliases): support provider-aware OAuth aliases
- map OAuth aliases to their correct provider channels
- support Antigravity aliases with force mapping
- read and delete aliases by their exact OAuth channel
- refresh the runtime model registry after alias changes
- restrict Fast aliases to GPT models from OpenAI-compatible or Codex sources
* docs(readme): add APIMart sponsorship sections
- add English and Chinese sponsor descriptions
- add localized APIMart banner images
* chore(release): stop publishing legacy Windows update packages
* feat(agents): support OpenCode Desktop across platforms
Detect CLI and desktop installations on Windows, macOS, and Linux, and add separate launch and restart controls.
Closes#156
* fix(codex): align model display names and show total session count
- preserve runtime model identity in generated catalogs
- count distinct sessions across database and rollout sources
- update session count labels in all supported languages
* fix(codex): keep config and auth files in sync
- generate auth.json for API key configuration
- preserve and validate OAuth credentials
- include auth.json in transactional updates and rollback
- retain compatibility with legacy Codex configuration states
* fix(cpa-gui): update version to 0.2.59 in Cargo files
* fix(codex): preserve OAuth mode after closing configuration
* feat(config): add TLS management and protocol-aware local URLs
- add TLS controls to advanced settings
- persist certificate and private key paths
- restart the core after TLS changes
- switch WebUI, API and management URLs between HTTP and HTTPS
- synchronize agent configurations and detection with the active protocol
* refactor(config): reorganize network, routing, and TLS settings
- split network settings and session routing into separate tabs
- move TLS configuration into network settings
- preserve TLS restart and HTTPS URL synchronization behavior
* feat(config): add independent network settings and custom listen IP
* fix(navigation): allow access to usage records while core is stopped
* refactor(home): show a single API URL based on the configured listen IP
* feat(config): add file pickers for TLS certificate and private key
* fix(usage): distinguish client cancellations from request failures
- persist usage failure status and response details
- classify HTTP 499 and canceled contexts separately
- exclude canceled requests from failure statistics
- add canceled filtering and failure details to the usage UI
- migrate and backfill existing usage records
* feat(ui): revamp usage records and improve app interactions
- redesign usage records dashboard, filters, charts, and pricing views
- add resizable centered columns with persisted widths
- expose OpenCode desktop launch and restart actions
- suppress the API access enabled success notice
* feat(agents): persist applied configurations across app restarts
- preserve applied agent configs and managed Claude aliases on exit
- keep explicit close actions restoring original configurations
- add Codex restart persistence regression coverage
- bump desktop version to 0.2.61