Commit Graph
86 Commits
Author SHA1 Message Date
lzt404 6d7f3c8480 feat(agents): preserve page state across agent navigation
- Remember tabs, help expansion, and feedback per agent and view mode
- Restore Codex session pagination and selections with safe data reloads
- Add UI regression coverage for navigation, remounts, and draft retention
2026-09-11 16:25:14 +08:00
lzt404 db4ac1dfe4 fix(agents): clarify configuration guidance and restore model list settings
- Move Codex model list settings back to Basic configuration in both modes
- Clarify the ezcpa template's purpose for repairing agent configurations
- Separate template application from clearing configuration
- Point OAuth sign-in guidance to Configuration management
- Update translations and UI regression checks
2026-09-11 16:25:14 +08:00
lzt404 9d0baa4c69 feat(agents): simplify configuration UI and expand restart support
- 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
2026-09-11 16:25:14 +08:00
lzt404 034a111c0b fix(ui): soften status indicators on the agent configuration page
Remove colored sidebar dots and clarify configured status text.
Replace the Pi update dot with a neutral text label.
Update Chinese, English, and Japanese translations.
2026-09-11 16:25:14 +08:00
lzt404 6b5d88cf9b fix: preserve legacy Claude alias sources during reconfiguration
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.
2026-09-11 16:25:14 +08:00
lzt404 36d3181475 fix(aliases): prevent stale edits and preserve payload rules
- 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
2026-09-11 16:25:14 +08:00
lzt404 7c9b8897ed fix(aliases): preserve configuration when editing model aliases
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.
2026-09-11 16:25:14 +08:00
lzt404 7acc0e9c74 feat(agents): improve configuration workflow and add history recovery
- Update configuration files directly while preserving custom settings
- Add versioned backups, restore previews, and managed-field recovery
- Detect first-time setup, outdated configuration, and invalid files
- Add conflict detection and rollback for multi-file updates
- Simplify configuration actions and clarify OAuth mode
- Add backend and UI regression coverage
2026-09-11 16:25:14 +08:00
lzt404 ca76f344fb fix(codex): preserve context defaults from the client model API 2026-09-11 16:25:14 +08:00
lzt404 805e2aece0 fix(quota): remove extra reset restrictions while preserving confirmation
- Allow resets when applicable credits are zero or a previous reset failed
- Remove applicable-credit details from the confirmation and obsolete tooltips
- Keep the existing in-app dialog and require explicit confirmation before submitting
- Update regression tests for cancellation, confirmation, and retries
2026-09-09 12:13:57 +08:00
lzt404 70ed5bc7f2 feat(agents): update DeepSeek Harness integration for current DSH
- write credentials using the versioned refs schema
- repair misplaced EasyCLIProxyAPI credential keys
- add Web, Headless, ACP, SDK and custom profile launch options
- track and safely stop managed DSH process trees
- detect occupied Web ports before launch
- add localized UI and regression tests

Fixes #207
2026-09-08 19:39:34 +08:00
lzt404 7df4a28428 fix(quota): align Grok quota queries with Management Center
- 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
2026-09-08 13:35:08 +08:00
lzt404 40ba85d6f0 fix(codex): load context defaults from CPA model definitions
- 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
2026-09-07 19:28:21 +08:00
lzt404 ce9944c316 fix: remove xAI availability testing
- 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
2026-09-07 19:28:21 +08:00
lzt404 911047d009 fix: replace native dialogs and improve quota reset handling
- 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
2026-09-07 19:28:21 +08:00
lzt404 492aa75e81 fix(auth-files): separate account and provider-wide model exclusions
- 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
2026-09-07 19:28:21 +08:00
lzt404 0e5b4b00ad fix(auth): rename credential file labels and highlight enable action
- 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
2026-09-07 01:26:23 +08:00
lzt404 18c285a810 fix(ui): unify action feedback and improve localization
- 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
2026-09-07 01:13:45 +08:00
lzt404 969e8527b3 fix(quota): use native Tauri dialogs for reset confirmation
- Replace browser confirmations and grant dialog permissions
 - Await explicit consent before consuming reset credits
 - Prevent duplicate resets and restore state on cancellation
 - Add native confirmation regression tests
2026-09-06 19:02:49 +08:00
lzt404 e4d0059efa feat(quota): sync upstream quota queries and improve reset handling
- 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
2026-09-06 19:02:49 +08:00
lzt404 bd959af6ed fix(versions): check for updates every five page visits
- 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
2026-09-06 19:02:49 +08:00
lzt404 9cf3878b28 perf: reduce background overhead and improve UI responsiveness
- 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
2026-09-06 01:28:58 +08:00
lzt404 45ecd37ce5 fix(update): compare core versions using SemVer
Only show update indicators when the remote core version is newer.
Add coverage for prereleases, build metadata, invalid versions, and version boundaries.
2026-09-06 01:28:58 +08:00
lzt404 673a322c00 feat(codex): add customizable model catalog editor
- 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
2026-09-05 18:05:57 +08:00
lzt404 ccbe3a5625 fix(update): retry core downloads across available sources 2026-09-04 01:50:46 +08:00
lzt404 594ab43b6a fix(update): show notification when CPA core update is available 2026-09-04 01:50:46 +08:00
lzt404 cff6a21974 feat(model-aliases): restore Fast service-tier option
- 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
2026-09-03 02:44:48 +08:00
lzt404 6755b7c90e feat: add easy mode and improve OAuth, API, and agent setup flow 2026-08-30 16:55:25 +08:00
lzt404 f695193e24 fix(usage): normalize cache token accounting 2026-08-28 00:51:28 +08:00
lzt404 cb2cca1d7a fix(codex): align DeepSeek reasoning levels with low high max 2026-08-26 22:46:23 +08:00
lzt404 8c80ce1151 fix(model-alias): apply reasoning effort overrides by model source
- 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
2026-08-26 01:56:46 +08:00
lzt404 1af6a7cfea feat(usage): add configurable speed and cache rate columns 2026-08-26 01:56:46 +08:00
lzt404 32b47575b5 feat: redesign version management and restore core after updates
- 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
2026-08-26 01:56:46 +08:00
lzt404 68da51bae0 Dev (#172)
* 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
2026-08-24 17:16:00 +08:00
lzt404 2b9ceb11fb Dev (#164)
* 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
2026-08-23 17:56:13 +08:00
lzt404 e60b47fd7c chore(release): stop publishing legacy Windows update packages (#159) 2026-08-22 17:00:10 +08:00
lzt404andFake Trader b15773b0f4 Dev (#158)
* fix(macos): restore main window on application reopen (#148)

Handle macOS RunEvent::Reopen when no window is visible. Fixes #147.

* fix(version): update core version to 7.2.138

* fix(macos): persist OAuth credentials across DMG upgrades

Migrate app-bundle auth directories to Application Support before updating configuration and prevent future bundle-local OAuth storage.

Fixes #153

* fix(kernel): stop the core before updating

* fix(i18n): use consistent stop terminology for core controls

* fix(opencode): support macOS JSONC configuration detection

Closes #156

* fix(update): preserve legacy macOS manifest compatibility

---------

Co-authored-by: Fake Trader <9635792+faketrader@users.noreply.github.com>
2026-08-22 16:24:34 +08:00
lzt404 3ec3d18136 fix(update): repair signed macOS auto-update flow
Closes #143
2026-08-21 17:28:05 +08:00
lzt404 0c83be3727 feat(agents): add Codex app restart and CLI directory history 2026-08-16 02:04:17 +08:00
lzt404 51ea7fd69f fix(agents): sync Kimi and Grok context windows with CPA core 2026-08-15 15:51:56 +08:00
lzt404 b312b904a2 fix(agents): speed up detection and sync ZCode default model 2026-08-15 15:28:01 +08:00
lzt404 49893bb32e feat(agents): add Kimi Code and Grok Build integrations 2026-08-15 14:24:25 +08:00
lzt404 d093a0122e feat(agents): add ZCode client integration 2026-08-15 14:05:21 +08:00
lzt404 18c9546b51 fix(health-check): record Gemini thought-only responses as successful usage 2026-08-14 18:43:12 +08:00
lzt404 813fbf97a8 feat(api-access): add drag-and-drop provider reordering 2026-08-14 17:42:42 +08:00
lzt404 be08a4bfdf fix(oauth): persist successful login status across navigation 2026-08-11 18:38:57 +08:00
lzt404 7b192cc6a4 fix(agents): preserve unapplied Claude model drafts across navigation 2026-08-11 18:18:23 +08:00
lzt404 476d6e6769 fix(agents): isolate Claude Code and Desktop mapping state 2026-08-11 14:12:16 +08:00
lzt404 4484e3a190 fix(agents): isolate Claude client model mapping drafts 2026-08-11 14:04:46 +08:00
lzt404 e9470fbe14 fix(agents): support Claude Desktop aliases for Codex OAuth models 2026-08-11 12:29:35 +08:00