Commit Graph
43 Commits
Author SHA1 Message Date
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
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
FakeTrader ee223424af feat(aliases): support editing model aliases 2026-09-11 16:25:14 +08:00
lzt404 5a05ad83fa refactor: remove unused agent configuration code and fix build warnings
- Remove 3 unused functions and 2 unread fields
- Gate test-only types and helpers with #[cfg(test)]
- Verify all 403 Rust tests pass and check/release builds emit no warnings
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 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 08ee8ca8d3 fix(zcode): remove incompatible npm provider field
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
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 34cab99a0a fix(agents): detect the correct Codex App version on Windows 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 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 c370c17ff0 feat(codex): sync official model templates and isolate fallback config
- 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.
2026-09-05 18:05:57 +08:00
lzt404 3f03158f5e fix(codex): align fallback metadata and remove stale models automatically
- 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
2026-09-05 18:05:57 +08:00
lzt404 bf6177e15a fix(codex): preserve OAuth configuration across updates
- 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
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 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 50df18067b fix(agent): propagate discovered PATH to agent subprocesses
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.
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 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 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 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 d0bd5a890a Dev (#162)
* 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
2026-08-23 16:19:03 +08:00
lzt404 93fe5baa54 Dev (#160)
* 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
2026-08-22 23:58:05 +08:00
lzt404andFake Trader 57c5f5d774 Dev (#157)
* 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

---------

Co-authored-by: Fake Trader <9635792+faketrader@users.noreply.github.com>
2026-08-22 15:39:28 +08:00
lzt404 f84b14c41c fix(agents): allow launching clients before applying configuration 2026-08-21 17:05:39 +08:00
lzt404 00d3e41fcc fix(agents): prevent Claude Desktop from launching during macOS detection 2026-08-21 16:58:32 +08:00
lzt404 338d04ae5b fix(agents): make Codex app discovery compile on Linux 2026-08-16 02:12:33 +08:00
lzt404 0c83be3727 feat(agents): add Codex app restart and CLI directory history 2026-08-16 02:04:17 +08:00
lzt404 d0609e48f0 feat(agents): restore quick launch support for agent clients 2026-08-16 01:37:38 +08:00
lzt404 1936d6c5d5 fix(ci): remove redundant validation and resolve Clippy warnings 2026-08-15 16:08:50 +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 607c930d7b fix(zcode): sync model context windows from CPA core 2026-08-15 14:58:56 +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 5c770c5605 feat: add DeepSeek Harness configuration support 2026-08-15 00:59:17 +08:00
lzt404 e9470fbe14 fix(agents): support Claude Desktop aliases for Codex OAuth models 2026-08-11 12:29:35 +08:00
lzt404 8655f6aae4 feat(agents): add per-role 1M context controls for Claude 2026-08-10 18:14:35 +08:00
lzt404 906f68f566 refactor: modularize backend architecture and test suite
- split Tauri business logic out of main.rs by domain
- separate agent and core configuration submodules
- organize Rust tests by feature with shared test support
- split frontend locale resources
2026-08-10 13:30:45 +08:00