- Merge weekly and monthly billing fields to preserve 100% remaining quota
- Display unknown usage instead of assuming a full balance
- Align paid account health checks and billing failure fallback
- Add localized messages and regression tests
- 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
- Remove test buttons from credential and quota pages
- Delete paid probe requests, confirmations, and result feedback
- Clean up related translations and obsolete button hints
- Preserve quota queries and update tests to verify no paid probes occur
- 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
- Align model management with Management Center by separating model viewing, account exclusions, and provider-wide exclusions
- Read and update excluded_models per credential without affecting other accounts
- Make checked models represent exclusions and support manual wildcard rules
- Limit Select All to candidate models and preserve wildcard and off-list rules when clearing selections
- Allow rule editing when the model list is empty or unavailable, including removal of wildcard bans
- Update translations and add regression coverage for account isolation and rule persistence
- 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
- Replace transient toasts with dismissible, accessible inline notices
- Remove redundant success messages for toggles and clipboard actions
- Preserve list focus during background refreshes
- Remove duplicate English captions and localize onboarding content
- Complete Japanese translations and remove English fallback
- Preserve API field names, Token units, and raw reasoning-level values
- Add regression tests for operation feedback and localization
- Update Claude, Codex, Kimi, Antigravity, and xAI compatibility
- Display plan details, subscription expiry, and dynamic reset times
- Deduplicate quota requests and serialize Codex resets
- Require confirmation for potentially billable xAI health probes
- Add quota parsing, request, and rendering regression tests
- Increment the counter on each page visit, check for updates at five, and reset it to zero
- Prevent duplicate counting on re-renders and reset the counter on app restart
- Preserve startup and manual checks while avoiding duplicate requests
- Preserve the saved download source and stop checking automatically when sources change
- Add regression tests for visit counting and check triggers, and update English and Chinese documentation
- 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
Only show update indicators when the remote core version is newer.
Add coverage for prereleases, build metadata, invalid versions, and version boundaries.
- 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
- 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
- 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
- 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
* 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
- support creating plain model aliases without requiring Fast
- enable the Fast toggle before an original model is selected
- preserve Fast state for compatible models and handle plain alias deletion