102 Commits

  • docs(guides): add trilingual Codex unified session-history guide
    New zh/en/ja guide for the unified Codex session-history toggle: what opt-in migration (on enable) and ledger-based restore (on disable) actually do, why session data is never truly deleted (tag-only rewrite + automatic backups), and how to verify files on disk versus just being filed under another provider drawer. Includes a symptom reference table for the common "my sessions are gone" misunderstanding and on-disk verification commands for macOS/Linux/Windows.
    
    Link the guide as the lead item in the "Usage Guides" section of the v3.16.3 release notes (zh/en/ja).
  • chore(release): prepare v3.16.3
    - Bump version to 3.16.3 (package.json, tauri.conf.json, Cargo.toml, Cargo.lock)
    - Add CHANGELOG entry for v3.16.3 (59 commits since v3.16.2)
    - Add trilingual release notes (zh / en / ja) under docs/release-notes/
  • feat(codex): restore Kimi For Coding preset with thinking on by default
    The Kimi For Coding preset was removed (74104946) because the coding
    endpoint (api.kimi.com/coding/v1) enforces a User-Agent whitelist that
    rejects Codex's default codex-cli UA with 403. The provider-level custom
    User-Agent feature now lets users override the UA (to claude-cli/*) under
    proxy takeover, so the preset can be restored.
    
    - Re-add the Codex Kimi For Coding preset (openai_chat, kimi-for-coding,
      256K context) in the same position it was removed from.
    - Enable thinking mode by default via codexChatReasoning (supportsThinking
      true, thinkingParam "thinking"), mirroring the general Kimi preset since
      both target the same Moonshot model family. The proxy injects
      thinking:{type:enabled} when Codex requests reasoning.
    - Restore the trilingual user-manual row to "Kimi / Kimi For Coding".
    
    Note: this preset requires proxy takeover and a whitelisted custom
    User-Agent to work; the default codex-cli UA still gets 403.
  • chore(release): prepare v3.16.2
    Add the v3.16.2 CHANGELOG entry covering the 41 commits since v3.16.1,
    bump the version across package.json, tauri.conf.json, Cargo.toml, and
    Cargo.lock, and add trilingual (zh/en/ja) release notes.
  • docs: refresh user manual for current app support (#3411)
    * docs(usage): document pricing model matching rules
    
    * docs: refresh user manual for current app support
    
    * docs: clarify Hermes configuration files
    
    * docs: align feature docs with visible app support
  • chore(release): bump version to 3.16.0 and add release notes
    - Bump version to 3.16.0 in package.json, Cargo.toml, tauri.conf.json, and Cargo.lock
    - Add v3.16.0 release notes (zh/en/ja) with contributor credits
  • Align Claude Desktop model mapping with Claude Code three-role tiers
    Claude Desktop's 3P validation only accepts claude-{sonnet,opus,haiku}-*
    role IDs, so providers must map every tier. Bring the Desktop mapping flow
    in line with Claude Code and fix the fallout that broke sub-agent Haiku calls.
    
    - Proxy form: replace the dynamic route list with fixed Sonnet/Opus/Haiku
      tiers; blank tiers backfill from the first filled tier (Sonnet first) on
      submit and inherit its supports1m flag
    - Backend: add a role-keyword fallback in map_proxy_request_model so dated
      official names (e.g. claude-haiku-4-5-20251001) resolve to the right tier,
      guarded by is_claude_safe_model_id so [1m]-suffixed IDs stay rejected
    - Tighten is_claude_safe_model_id / isClaudeSafeRoute to reject degenerate
      role IDs like "claude-sonnet-"
    - Fix the seed-effect race where normalizing empty routes to three blank
      tiers blocked the default-route backfill
    - Sync switch hints, placeholders, and the zh/en/ja/zh-TW locales to the
      three-role-ID rule
    - Update zh/en/ja user manual (2.1, 2.6), calling out legacy Claude IDs
      (claude-3-5-sonnet-...) as a rejected example
    
    Tests: 282 frontend + 34 backend claude_desktop; typecheck, clippy, fmt clean.
  • Upgrade default Claude Opus model to 4.8
    Bump the default Opus route/model from claude-opus-4-7 to claude-opus-4-8
    across provider presets (claude, claudeDesktop, hermes, openclaw, opencode,
    universal), i18n locales (zh/en/ja/zh-TW), pricing seed data, and the
    user-manual docs.
    
    - Add claude-opus-4-8 pricing row ($5/$25/$0.50/$6.25); keep the 4-7 row
      for historical usage stats (seeded via INSERT OR IGNORE).
    - Claude Desktop proxy: accept bidirectional opus 4-7 <-> 4-8 route alias
      during rollout so previously saved routes keep resolving.
    - thinking_optimizer: route opus-4-8 through adaptive thinking and normalize
      dotted model ids (also fixes dotted 4-6/4-7 falling back to legacy).
    - usage_stats: normalize Bedrock/Vertex/aggregator opus-4-8 ids to base
      pricing.
    
    Also merge role:"system" messages into the Gemini systemInstruction in the
    Anthropic->Gemini transform.
  • Enable Codex goals in provider templates (#3089)
    * Enable Codex goals in provider templates
    
    * feat: add Codex goal mode toggle
    
    - Remove forced goals=true from Codex provider presets and custom templates.
    - Add a Codex provider editor switch that updates [features].goals on demand.
    - Update docs, i18n, and regression coverage for the optional Goal mode flow.
    
    ---------
    
    Co-authored-by: Jason <farion1231@gmail.com>
  • docs: update settings manual for tool management and Hermes
    Add Hermes to the environment-check table and app-switcher list, fix the
    OpenCode install command (opencode-ai), and describe the new update/install
    flow. Align with the final implementation: drop the removed Install Missing
    action, note that installs run silently with in-button progress, and rename
    the section to Manual Install Commands (now collapsible).
  • docs: document Codex Chat reasoning auto-detection
    Add a "Reasoning Auto-Detection" subsection to the Codex local-routing
    manual (zh/en/ja) with the provider capability matrix, and record the
    feature plus the streaming-usage and tool-call reasoning backfill fixes
    in the changelog. Drop the removed Kimi For Coding preset from the
    changelog's Codex Chat preset list.
  • feat: remove Kimi For Coding preset from Codex
    The Kimi For Coding preset pins users to a single coding-only model
    (kimi-for-coding), restricting model selection. Drop it from the Codex
    presets and trim the corresponding row in the trilingual user manual.
    The general Kimi preset (Moonshot platform) is kept, and presets for
    other apps are unchanged.
  • docs: document Codex Chat provider support in changelog and manual
    Backfill the empty [Unreleased] CHANGELOG section with the Codex Chat
    Completions feature (Chat-to-Responses bridge, 23 third-party presets,
    model mapping table, Stream Check routing, error-envelope conversion,
    "custom" history bucket) plus the community fixes landed since v3.15.0.
    
    Update the zh/en/ja user manual: split the Codex preset tables by
    upstream protocol (native Responses vs Chat Completions), add a "Codex
    Local Routing and Model Mapping" section covering the Needs Local
    Routing toggle and the model catalog, and note Chat-format probing in
    the Stream Check guide. Manual wording matches the live UI strings.
  • Update 1.2-installation.md (#2949)
    增加 Windows 运行后无提示的修复方法
  • docs: recommend official Homebrew cask installation
    - Remove personal tap requirement from all READMEs (en/zh/ja)
    - Update v3.15.0 release notes to highlight official cask availability
    - Add celebration banner noting Homebrew official repository inclusion
    - Simplify installation to single command: brew install --cask cc-switch
  • - docs: update user manual for v3.15.0
    - Sync zh/en/ja manuals with Claude Desktop and Hermes support
    
    - Update install requirements, official channels, and release asset guidance
    
    - Document Usage Hero, Codex OAuth live models, Save Anyway, Hermes sessions, and Warp launch
    
    - Correct tray and app-scope descriptions to match current implementation
  • Add Claude Desktop user guide docs
    - Add the Claude Desktop provider guide in English, Chinese, and Japanese.
    - Add localized screenshots for import, provider setup, model mapping, and local routing.
    - Link the guide from the v3.15.0 release notes and user manual indexes.
  • feat(deepseek): switch presets to V4 (flash/pro) and add pricing
    DeepSeek released V4 flash/pro; legacy IDs deepseek-chat / deepseek-reasoner
    now alias to deepseek-v4-flash and will be deprecated.
    
    - Update claude/hermes/opencode/openclaw presets to v4-pro / v4-flash,
      context 128K -> 1M; Claude Anthropic-compat endpoint routes OPUS/SONNET
      to v4-pro and HAIKU to v4-flash, plus an explicit modelsUrl override.
    - Seed deepseek-v4-flash ($0.14/$0.28 per 1M) and deepseek-v4-pro
      ($1.68/$3.36 per 1M) into model_pricing; older v3.x / chat / reasoner
      rows kept for historical usage stats (INSERT OR IGNORE).
    - Refresh user-manual (zh/en/ja) pricing table and note that legacy model
      IDs are billed at v4-flash rates.
  • chore(release): bump version to 3.14.1
    - Add v3.14.1 release notes (en/zh/ja) covering tray usage visibility,
      Codex OAuth stability fixes, Skills import/install reliability, and
      removal of the Hermes config health scanner
    - Cut [Unreleased] into [3.14.1] in CHANGELOG with PR references
    - Bump version in package.json, Cargo.toml, Cargo.lock, tauri.conf.json
  • docs(release-notes): add v3.14.0 release notes (en/zh/ja)
    Cover Hermes Agent onboarding (6th managed app), Claude Opus 4.7
    rollout, Gemini Native API proxy, "Local Routing" rename,
    application-level window controls, Copilot premium consumption
    deep optimization, session list virtualization, Usage date range
    picker, Stream Check error classification, pricing v8->v9 reseed,
    and related breaking changes.
    
    18 external PR contributions credited in all three locales.
  • feat(claude): upgrade effort toggle from "high" to "max"
    Per Anthropic's effort parameter docs, "high" is the API default and
    setting effortLevel="high" is equivalent to omitting the field entirely.
    The toggle previously produced no effect.
    
    Claude Opus 4.6, Sonnet 4.6, and Opus 4.7 now support a "max" level
    that enables unconstrained reasoning. Rename the checkbox (effortHigh
    -> effortMax) and write effortLevel="max" when toggled on. Existing
    "high" values in user configs are left untouched.
    
    Updates zh/en/ja locales and user-manual entries accordingly.
  • docs: rename takeover docs to routing across all languages
    Rename 4.2-takeover.md to 4.2-routing.md in zh/en/ja user manuals,
    replacing all "接管/takeover" terminology with "路由/routing" to match
    the rebranded feature name. Update README index links accordingly.
  • docs(release-notes): sync user edits across en/zh/ja and add PR credits
    - Simplify "ChatGPT Plus / Pro" → "ChatGPT" across all three languages
    - Clarify Codex OAuth description to highlight Claude Code usage
    - Add "requires manual activation" note for Token Plan and third-party balances
    - Add Copilot API consumption caveat to the interaction optimizer section
    - Update overview with skills.sh search, usage tracking, and onboarding mentions
    - Add PR credits for TheRouter (@cmzz), Kaku/OMO Slim/Thinking fallback/auth tab (@yovinchen)
  • chore(release): bump version to v3.13.0 and sync changelog/release notes
    Backfill post-draft changes into CHANGELOG and three-language release
    notes (en/zh/ja): 16 new Added entries, 6 Fixed entries, 1 Docs entry,
    and updated header stats (139 commits, 280 files, +31627/-3042).
  • docs: add working directory feature implementation plan
    Design document for per-directory state switching (providers, MCP,
    skills, prompts). Not yet implemented - saved for future reference.
  • docs(user-manual): update to v3.13.0 across en/zh/ja
    Refresh the user manual to cover the v3.13.0 feature set so users can
    discover and correctly use new functionality without cross-referencing
    the release notes. All three language versions are updated
    line-by-line symmetric.
    
    Highlights:
    
    - Lightweight Mode: tray-only running state added in 1.5-settings,
      with a comparison table against "Minimize to tray" and a new OAuth
      Auth Center (Beta) section
    - Quota & Balance display restructured in 2.5-usage-query: split into
      auto-query (Claude/Codex/Gemini official, Copilot, Codex OAuth) vs
      manual-enable (Token Plan, third-party balances). Explains why
      manual enabling is required: the same API URL may expose both
      plan-quota and balance query modes
    - Codex OAuth reverse proxy: full usage guide in 2.1-add with two
      entry points (Add Provider panel / OAuth Auth Center), Device Code
      login flow, token auto-refresh, multi-account management, quota
      display, common failures, and risk notice
    - Full URL Endpoint Mode: new advanced option in 2.1-add
    - Per-app tray submenus: 2.2-switch refactored to reflect the 5-app
      submenu structure and cross-link to Lightweight Mode
    - Skills workflow: remove obsolete "automatic update not supported"
      section in 3.3-skills, add SHA-256 update detection, single/batch
      update, storage location switch, and skills.sh registry search
    - Directory picker for Claude terminal resume in 3.4-sessions
    - Usage stats in 4.4-usage: document the new CLI session log source
      (no proxy required) and per-app filtering for Claude/Codex/Gemini;
      note CNY->USD pricing corrections and MiniMax quota fixes
    - Stream Check coverage extended to OpenCode/OpenClaw in 4.5-model-test
    - New FAQs in 5.2-questions: quota visibility (auto vs manual),
      Codex OAuth risks and login flow, deep link wake in Lightweight Mode
    - v3.13.0 highlights navigation block added to top-level README and
      each per-language README; version bumped to v3.13.0 / 2026-04-08
  • docs(release-notes): add v3.13.0 release notes (en/zh/ja)
    Draft trilingual release notes for the upcoming v3.13.0 feature release
    covering lightweight mode, quota and balance visibility, provider model
    auto-fetch, Codex OAuth reverse proxy, tray per-app submenus, the
    Hyper-based proxy forwarding stack, Skills discovery and batch updates,
    session workflow upgrades, OpenCode/OpenClaw Stream Check coverage, the
    full URL endpoint mode, and the Copilot interaction optimizer, plus the
    accompanying Copilot auth, UTF-8 streaming boundary, system prompt
    normalization, WebDAV password, and Linux startup fixes. Contributor
    attribution follows industry convention using ASCII punctuation inside
    PR references across all three locales, and the Codex OAuth reverse
    proxy carries its own risk notice alongside a backward link to the
    v3.12.3 Copilot risk notice.
  • docs: update user manual to v3.12.3 with new features coverage (en/zh/ja)
    Add documentation for features introduced since v3.12.0:
    
    New docs:
    - 3.4 Session Manager: browse, search, resume, delete sessions
    - 3.5 Workspace & Daily Memory: OpenClaw workspace file editing
    
    Updated docs:
    - Add Lightweight Mode to interface overview and FAQ
    - Add tray submenu structure (providers grouped by app)
    - Add API Format selection (Anthropic/OpenAI Chat/OpenAI Responses)
    - Add Auto-Fetch Models button documentation
    - Add Claude Common Config quick toggles
    - Add Codex 1M Context Window toggle
    - Add Skill backup/restore lifecycle
    - Expand Backup Management panel documentation
    - Update WebDAV sync to v2 protocol with dual-layer versioning
    - Add OpenCode/OpenClaw to quickstart activation table
    - Update README version to v3.12.3
    
    All changes synced across en, zh, and ja locales.
  • docs: fix outdated README content and sync across languages
    - Fix JA README macOS FAQ still claiming app is unsigned (now code-signed & notarized)
    - Update SessionManager description from "Claude Code only" to "all supported apps" (EN/ZH/JA)
    - Replace non-existent Flatpak download entry with self-build reference (EN/ZH/JA)
    - Add OpenCode and OpenClaw filesystem paths to Flatpak minimal permissions
    - Bump user manual version to v3.12.3
  • docs(release): add Copilot reverse proxy risk notice to v3.12.3 release notes
    Add risk disclaimer section in all three languages (EN/ZH/JA) warning
    users about potential GitHub ToS violations, account suspension risks,
    and no long-term availability guarantee for the Copilot reverse proxy.
  • chore(release): consolidate v3.12.3 release notes, changelog and test fixes
    Merge previously unreleased v3.12.4 content into v3.12.3:
    - CHANGELOG: combine [Unreleased] into [3.12.3], clear [Unreleased]
    - Release notes (zh/en/ja): add Copilot proxy, macOS signing,
      Reasoning Effort, OpenCode SQLite, Codex 1M toggle, Disable
      Auto-Upgrade toggle, and contributor thanks
    - Fix test mocks for skill backup/restore hooks
    - Fix schema migration test missing providers table
    - Fix TempHome to save/restore CC_SWITCH_TEST_HOME env var
  • feat(ci): add macOS code signing and Apple notarization to release workflow
    - Import Developer ID Application certificate into temporary keychain
    - Inject APPLE_SIGNING_IDENTITY/APPLE_ID/APPLE_PASSWORD/APPLE_TEAM_ID
      into Tauri build step for automatic signing and notarization
    - Staple notarization tickets to both .app and .dmg (hard-fail)
    - Add verification step: codesign --verify + spctl -a + stapler validate
      for both .app and .dmg, gating the release on success
    - Collect .dmg alongside .tar.gz and .zip in release assets
    - Clean up temporary keychain with original default restored
    - Update release notes to recommend .dmg and note Apple notarization
    - Remove all xattr workarounds and "unidentified developer" warnings
      from README, README_ZH, installation guides, and FAQ (EN/ZH/JA)
  • chore(release): update release notes, changelog and macOS minimum version for v3.12.3
    Update CHANGELOG.md with full v3.12.3 entry, create release notes in
    three languages (en/zh/ja), bump macOS minimumSystemVersion from 10.15
    to 12.0 (Monterey) to match actual runtime requirements, and update
    README version badges and links.
  • feat(skills): auto-backup skill files before uninstall
    Create a local backup under ~/.cc-switch/skill-backups/ before removing
    skill directories. The backup includes all skill files and a meta.json
    with original skill metadata. Old backups are pruned to keep at most 20.
    The backup path is returned to the frontend and shown in the success
    toast. Bump version to 3.12.3.