Commit Graph
467 Commits
Author SHA1 Message Date
lzt404 050dbddca4 feat(network): auto-detect system proxy and keep user overrides 2026-09-18 18:17:31 +08:00
lzt404 a372a819f8 fix(usage): improve request details refresh responsiveness 2026-09-18 18:17:31 +08:00
lzt404 be7284f0f1 fix(aliases): stop treating display names as aliases
#CLOSE #259
2026-09-18 18:17:31 +08:00
lzt404 e7f96e12d7 chore(version): update cpa-gui version to 0.2.96 2026-09-15 17:15:21 +08:00
lzt404 a5c70e403e chore(version): update core version to 7.3.3 2026-09-15 17:15:21 +08:00
lzt404 d495b0f423 feat(styles): enhance scrollbar styling for usage table 2026-09-15 17:15:21 +08:00
lzt404 433182f9b0 feat(codex): improve API/OAuth switching and configuration recovery
- 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
2026-09-15 17:15:21 +08:00
lzt404 76da9b9944 feat(agents): convert codex auth method selector to segmented radio buttons 2026-09-15 17:15:21 +08:00
lzt404 e25da0c517 chore(version): update cpa-gui version to 0.2.95 2026-09-15 02:39:03 +08:00
lzt404 3eff2830b5 fix(usage): thin 24h trend axis labels 2026-09-15 02:39:03 +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 67484ac423 style(ui): simplify theme labels and arrange options in one row
- Rename theme options to Light, Dark, and Auto across locales
- Display all three options in a single row
- Update localization test expectations
2026-09-15 02:39:03 +08:00
lzt404 0c37f4d1bb feat(providers): add Devin OAuth and quota support
- 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
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 a9297b86cc fix(ui): reduce whitespace around agent configuration save controls
- Remove empty feedback placeholders and fixed-height rows
- Place configuration status beside the save button
- Compact save controls in the simplified view
- Add responsive layout and notification stability regression tests
2026-09-15 02:39:03 +08:00
lzt404 18a9bfbaa9 fix(ui): unify bottom-right notifications and improve dialog interactions
- 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
2026-09-15 02:39:03 +08:00
lzt404 aaa6806e26 chore: update core version to 7.3.2 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 5c33798241 chore: update core version to 7.3.1 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 19a9b4fc09 feat(api-access): replace model selector with a dual-pane layout
- Separate selected and unselected models with independent search and bulk actions
- Fix selection initialization and ignore stale discovery responses
- Improve keyboard navigation and responsive layouts
- Update translations and add model selection UI regression tests
2026-09-15 02:39:03 +08:00
lzt404 2b41eab8df feat(api-access): manage DeepSeek through Codex API 2026-09-15 02:39:03 +08:00
lzt404 2a99db2908 feat(api-access): unify DeepSeek model discovery and selection
- require explicit model discovery before saving DeepSeek connections
- preserve selected models when refreshing the catalog
- mark model lists stale when connection details change
- add model refresh support to easy mode
- apply built-in DeepSeek reasoning levels consistently
2026-09-15 02:39:03 +08:00
lzt404 c5f68157e5 chore: update core version to 7.2.159 2026-09-15 02:39:03 +08:00
lzt404 bc2c873df1 chore: update version to 0.2.91 2026-09-15 02:39:03 +08:00
lzt404 4594e9aba3 chore: update core version to 7.2.158 2026-09-12 19:35:48 +08:00
lzt404 e77764be77 fix(main): simplify argument handling for portable update helper 2026-09-12 19:35:48 +08:00
lzt404 5f203b685e chore: update core version to 7.2.157 2026-09-11 16:25:14 +08:00
lzt404 51ac7fea87 chore: update dependencies in Cargo.toml 2026-09-11 16:25:14 +08:00
lzt404 739c6e1711 feat(theme): support system appearance across desktop platforms
- 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
2026-09-11 16:25:14 +08:00
lzt404 b483d77bf8 style(agents): enhance styling for harness reasoning components 2026-09-11 16:25:14 +08:00
lzt404 9ba87748f8 fix(agents): display resolved DeepSeek Harness context window values
- 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
2026-09-11 16:25:14 +08:00
lzt404 4d8d549e04 feat(agents): add configurable DeepSeek Harness model catalog
- 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
2026-09-11 16:25:14 +08:00
lzt404 145b585c3f fix(agents): detect ZCode in custom Windows install locations
- 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
2026-09-11 16:25:14 +08:00
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 df3e10b350 fix(agents): adjust button alignment and sizing in agent run controls 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 9042421292 fix(config): prevent API provider loss during alias updates and migration
- 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
2026-09-11 16:25:14 +08:00
lzt404 88ea6f1c9a fix(agents): rebuild desktop routes from enabled providers
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.
2026-09-11 16:25:14 +08:00
lzt404 ade2d50a69 fix(aliases): clear raw options when deleting and recreating aliases
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.
2026-09-11 16:25:14 +08:00
lzt404 a57c81e4e1 fix(aliases): preserve payload rules for surviving channels
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.
2026-09-11 16:25:14 +08:00
lzt404 e84e576d1d fix(aliases): delete API aliases without reasoning overrides
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.
2026-09-11 16:25:14 +08:00
lzt404 69cc19679c fix(agents): restore desktop core routes with configuration history
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.
2026-09-11 16:25:14 +08:00
lzt404 60a3683976 fix(agents): record model mapping changes without file changes
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.
2026-09-11 16:25:14 +08:00
lzt404 0a019ad1d7 fix(tests): isolate agent configuration paths from user environment
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.
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