Commit Graph
60 Commits
Author SHA1 Message Date
lzt404 dccc45f57d fix: restore usage statistics after core upgrades
- Persist explicit opt-out in the app's config.toml
- Remove usage_statistics_disabled when users re-enable statistics
- Enable statistics on core startup unless explicitly disabled
- Add regression tests for v7/v8 compatibility and opt-out persistence
2026-10-06 01:22:41 +08:00
lzt404 6e34850780 style(usage): show reasoning effort under the model name
Drop the separate reasoning-effort column from request details and render the raw effort, or auto, directly beneath the model name. Include it in the model tooltip, reset saved layouts that still use the old default column, and keep the field in CSV export.
2026-10-06 01:22:41 +08:00
lzt404 56a88ccb6f fix(usage): export filtered events and fix dark mode contrast
Export every request matching the current filters, remember the selected page size, and use dark surfaces for filter menus and request cards.
2026-10-05 16:10:37 +08:00
lzt404 dfba9b019f feat: improve request pricing, model diagnostics, and client discovery
- 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
2026-10-04 17:31:52 +08:00
lzt404 d29a1af69b feat: add plugin management and redesign dashboard and usage analytics
- 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
2026-10-04 17:31:52 +08:00
lzt404 c89e2fb020 feat(config): support CLIProxyAPI v8.0.10 template settings
- Add structured editors for request, OAuth, plugin, and concurrency settings
- Expand advanced configuration for all eight provider families and credentials
- Preserve YAML comments, secrets, unknown fields, and explicit overrides
- Add validation, conflict detection, default restoration, and restart notices
- Improve responsive layouts and localize configuration controls
- Fix provider health checks and extend mocks and integration tests
2026-10-04 17:31:52 +08:00
lzt404 c52039dfed fix: handle missing v8 config nodes and normalize alias transaction views
- 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
2026-09-27 20:03:33 +08:00
lzt404 9c67b9d40c feat(i18n): replace hardcoded Chinese messages with English 2026-09-27 16:33:50 +08:00
lzt404 2432220677 feat(usage): update model pricing from external catalogs 2026-09-25 14:51:56 +08:00
lzt404 345e228a91 fix(usage): use unique database row IDs for event list keys
Fixes #298
2026-09-23 21:35:59 +08:00
lzt404 100f5df737 Revert "feat(quota): unify OAuth and API balance lookup (#279)"
This reverts commit d473c8b8f186e82eb63e15d7a3bc54f05810b087.
2026-09-20 18:09:32 +08:00
StarryandZehua Feng 385dd69e8f feat(quota): unify OAuth and API balance lookup (#279)
Co-authored-by: Zehua Feng <zehua.feng@hand-china.com>
2026-09-20 18:09:32 +08:00
lzt404 9ff9a6c317 fix(core): stabilize runtime status and separate service readiness 2026-09-19 00:36:18 +08:00
lzt404 abfe65e656 fix: scope API access remarks to provider records
Fixes #267
2026-09-18 18:17:31 +08:00
lzt404 bd57545c7f feat(usage): add confirmed database cleanup controls 2026-09-18 18:17:31 +08:00
lzt404 911a20a91a feat(usage): add configurable database size limit 2026-09-18 18:17:31 +08:00
lzt404 050dbddca4 feat(network): auto-detect system proxy and keep user overrides 2026-09-18 18:17:31 +08:00
lzt404 8f52a08177 feat(usage): show 30-minute trend ticks and restore light theme 2026-09-15 02:39:03 +08:00
lzt404 accb93c75c feat(usage): rebuild token trend chart and fill usage page height 2026-09-15 02:39:03 +08:00
lzt404 0725f6ed8a refactor: remove unused functions and frontend declarations
- Remove four redundant Rust functions
- Update tests to call the active implementations directly
- Remove unused TypeScript state, parameters, and imports
- Resolve unused-code compiler warnings
2026-09-15 02:39:03 +08:00
lzt404 216948d580 fix(usage): reconnect collector after management key rotation
- 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
2026-09-15 02:39:03 +08:00
lzt404 32b55920af fix(usage): synchronize Keeper metrics and improve detail refresh
- 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
2026-09-15 02:39:03 +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 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 e3551f0e3c feat(config): complete logging and diagnostics management
- persist and migrate CPA logging settings with validation and rollback
- add logging controls, commercial-mode restart, and log-folder access
- streamline diagnostics UI and update localized copy
- move test-only catalog helper to eliminate dead-code warnings
2026-09-04 01:50:45 +08:00
lzt404 708a834e24 Dev (#198)
* 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
2026-09-02 16:59:09 +08:00
lzt404 cbd82386d5 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
2026-09-01 23:32:26 +08:00
lzt404 79b50b7a2b 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
2026-08-30 18:48:01 +08:00
lzt404 247e9052b6 fix(usage): preserve persistent WebSocket usage events
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
2026-08-30 16:55:25 +08:00
lzt404 2e0b2aef89 fix(usage): calculate overview TPS from valid post-TTFT generation time 2026-08-29 00:04:27 +08:00
lzt404 44dcdf13a8 feat(usage): add manual historical cache data repair 2026-08-28 00:51:28 +08:00
lzt404 f695193e24 fix(usage): normalize cache token accounting 2026-08-28 00:51:28 +08:00
lzt404 6d7da20e4e feat: add customizable download sources with automatic fallback
- 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
2026-08-26 01:56:46 +08:00
lzt404 03be4acf93 feat: add multi-source downloads with automatic fallback
- 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
2026-08-26 01:56:46 +08:00
lzt404 bb8f23cbc8 feat(version): add manual GitCode download source option
- 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
2026-08-26 01:56:46 +08:00
lzt404 3d44eba492 Dev (#166)
* 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
2026-08-23 23:20:40 +08:00
lzt404 3ec3d18136 fix(update): repair signed macOS auto-update flow
Closes #143
2026-08-21 17:28:05 +08:00
lzt404 18c9546b51 fix(health-check): record Gemini thought-only responses as successful usage 2026-08-14 18:43:12 +08:00
lzt404 30fb184384 feat(settings): add automatic core startup preference
- add a default-enabled “Start Core on Launch” setting
- persist the preference in the GUI configuration
- automatically start the CPA core when the app launches
- keep the preference independent from manual core start and stop actions
- add multilingual labels and migration tests
2026-08-14 01:28:52 +08:00
lzt404 74be9e85a1 feat(config): add retry controls for long-running requests 2026-08-12 00:31:20 +08:00
lzt404 582fa32755 feat(usage): migrate legacy records to durable subscription storage
- back up and transactionally migrate legacy usage databases
- add durable inbox with retry, recovery, and cleanup
- prefer RESP usage subscription with HTTP fallback
- preserve existing usage APIs, queries, and deduplication behavior
- add migration, inbox, and RESP protocol tests
2026-08-11 23:41:04 +08:00
lzt404 e01bf54a54 fix(settings): persist silent startup preference 2026-08-10 02:04:20 +08:00
lzt404 d2f238f829 refactor(agents): remove direct client launch functionality 2026-08-07 23:04:18 +08:00
lzt404 7ee28e10b0 feat(proxy): apply configured proxy to app network requests 2026-08-07 21:54:58 +08:00
lzt404 748996036e feat: add remembered app close behavior settings 2026-08-03 16:34:31 +08:00
lzt404 faa7e97326 feat(agents): overhaul Claude Code configuration and launch flow
- add role-based Opus, Sonnet, and Haiku model mappings
- redesign the Claude Code configuration interface
- launch the CLI with a selected working directory
- use the native system directory picker
- inject managed environment variables at runtime
- use token-only authentication and migrate legacy dual-auth configs
- persist the working directory prompt preference
2026-08-02 16:59:27 +08:00
lzt404 8885ffd50b fix(usage): record health checks and non-generated events 2026-07-29 15:41:10 +08:00
lzt404 7b9566ef73 feat(usage): add cost analytics and refine dashboard layout 2026-07-29 01:38:25 +08:00
lzt404 3d2a7f357e feat: add TPS and cache hit rate to usage overview 2026-07-28 15:07:30 +08:00
lzt404 c1959dedbc fix: prioritize API remarks and mask authentication keys 2026-07-27 22:19:20 +08:00