Commit Graph
434 Commits
Author SHA1 Message Date
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
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 73d1242dc6 fix(core-version): update core version to 7.2.156 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 898cf080d3 fix(core): retry Windows file replacements blocked by transient locks
- Retry errors 5, 32, 33, and 1175 up to five times with exponential backoff
- Preserve the final error and avoid retrying partial replacement failures
- Add eight regression tests covering transient and persistent file locks

Closes #241
2026-09-09 14:59:23 +08:00
lzt404 895bff0d2c fix(core-version): update core version to 7.2.155 2026-09-09 12:13:57 +08:00
lzt404 1de7e3f3bb fix(cpa-gui): update version to 0.2.81 2026-09-09 12:13:57 +08:00
lzt404 be2461befd fix(core): prevent orphaned Windows core processes from blocking updates
- Stop live core processes before updates, regardless of port availability
- Wait for process termination before replacing files
- Block new core operations and cancel startup during shutdown
- Attach the Windows Job immediately after spawning
- Abort updates and restarts when stopping the core fails
- Add lifecycle and file-lock regression tests; all 33 related tests pass
2026-09-09 12:13:57 +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 5548324c8f fix: update cpa-gui version to 0.2.80 2026-09-08 19:39:34 +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 f7bc460e3c feat(license): add MIT License to the project
#CLOSE #234
2026-09-08 13:35:08 +08:00
lzt404 53ef4dc264 fix(core): prevent startup failures after core updates
Atomically replace core files, recover from macOS SIGKILLs, and capture startup output for diagnostics.

Fixes #224
2026-09-08 13:35:08 +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 8c0eae2c34 fix: update core version to 7.2.154 2026-09-08 13:35:08 +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 e295e3212f fix: restrict actions for disabled credentials
- Remove the disabled quota placeholder button
- Disable model viewing, exclusions, priority editing, and filename copying
- Keep only enable and delete actions available for disabled credentials
- Restore available actions when credentials are re-enabled
2026-09-07 19:28:21 +08:00
lzt404 d434daac0e fix: correct credential page and model dialog layouts
- Give model names proper column width and align copy icons to the right
- Show full model names and display names on hover
- Span availability feedback across the credential content area
- Wrap page controls and credential actions in narrow layouts
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 adb708c32a fix(version): update cpa-gui version to 0.2.78 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 6ab7af0833 fix(watcher): avoid false configuration reloads on directory events 2026-09-07 13:46:41 +08:00
lzt404 75fac192bd fix(build): increase chunk size warning limit to 1000 2026-09-07 01:30:16 +08:00
lzt404 bc04b2c255 chore: update dependencies in Cargo.toml 2026-09-07 01:27: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 82268cfa6f chore: update model_price.json 2026-09-07 01:25:40 +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 6c0e158661 ci: reuse main branch build caches for releases
- Warm Rust, Bun, and core caches on pushes to main
- Save shared caches only on main to avoid duplication across tags
- Isolate build caches by runner
- Skip signing and publishing during cache warmup
- Cancel outdated warmup runs without interrupting releases
2026-09-06 21:54:29 +08:00
lzt404 4941808e91 ci(linux): build portable releases on Ubuntu 22.04
Use Ubuntu 22.04 runners for both Linux architectures while retaining the existing dependency installation.
2026-09-06 21:48:23 +08:00