Commit Graph
173 Commits
Author SHA1 Message Date
Railgun f025ee053d docs(faq): update window controls setting path for v4 in zh/en/ja manuals (#7983) 2026-10-09 16:44:28 +08:00
Jason 2db86e94da docs(release): add v4.0.5 release notes 2026-10-08 23:00:52 +08:00
Railgun 36c8b87e60 fix(linux): restore Wayland title-bar controls on first show and tray re-show (#7947)
Tao 0.34 wraps the Wayland HeaderBar in an EventBox with above_child=true, so its input window can stack above the minimize/maximize/close buttons after the first map or a hide/show round-trip. Clear above_child on the GTK main thread whenever the main window is shown. This becomes a no-op once Tauri ships tao 0.36+ (tauri-apps/tao#1218).

Also bump the existing input-region nudge by one logical pixel instead of one physical pixel (a no-op on HiDPI), skip it for maximized windows, and run concurrent nudges one at a time so a bumped size is always restored.

Fixes #7405
Fixes #2736
Fixes #7499
2026-10-08 21:52:49 +08:00
Jason efd236a474 docs(manual): update the user manual for v4.0
Bring the zh, en and ja user manuals up to the v4.0.4 interface: the
sidebar layout, the six Settings groups, the Direct / Routing /
Aggregation connection modes, Accounts, and the Apps page. Old
Settings paths (Advanced, Routing, Auth) and takeover wording are gone.

- Add 4.6 Aggregation Mode in all three languages and list it in the
  manual indexes.
- Rewrite 1.3 Interface Overview and 1.5 Settings around the new
  layout; refresh provider, extension, routing, usage and FAQ pages.
- Use the v4.0 release screenshots where they fit and leave
  TODO(v4 screenshot) markers elsewhere.
- Update the version section of each manual index to v4.0.4.
- Remove the 40 v3 screenshots that are no longer referenced.
2026-10-07 20:42:08 +08:00
Jason 01ee685da8 docs(release): lead with usage stats in the v4.0.4 notes 2026-10-07 19:09:33 +08:00
Jason a29a4f3868 docs(release): add v4.0.4 release notes 2026-10-07 18:34:16 +08:00
Jason 8596a233b2 docs(release): add v4.0.3 release notes 2026-10-06 21:20:09 +08:00
Jason f3e3a95560 docs(manual): add the auto mode server-check toggle to the Claude quick toggles table
The toggle shipped without a manual row. Describe what it changes, the
per-session notice it avoids on gateways, the new-provider default and
that official endpoints should leave it unchecked; the per-provider note
now covers three options instead of two.
2026-10-06 21:13:04 +08:00
Jason 997a34fe3a refactor(claude): drop the max effort quick toggle
CLAUDE_CODE_EFFORT_LEVEL=max pins every session to the most expensive
effort and turns /effort into a no-op ("Not applied: ... overrides
effort this session"), while Claude Code deliberately keeps max
session-only (effortLevel in settings.json does not accept it). Users
who want max can still pick it per session with /effort max, or set the
variable by hand.

Remove the checkbox, its i18n keys, tests and the manual rows. Configs
that already carry the variable keep it untouched.
2026-10-06 21:13:04 +08:00
Jason cac218f3e2 refactor(claude): drop the Teammates quick toggle
Claude Code now gives every session a single implicit team: named
subagents, SendMessage and ListAgents are available without
CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS (on 2.1.287 the tool list is
identical with and without it). The variable only gates tmux/iTerm2
split-pane teammates and the structured shutdown/plan-approval
messages, which no longer justifies a slot among the quick toggles.

Remove the checkbox, its i18n keys and the manual rows. Configs that
already carry the variable keep it untouched.
2026-10-06 21:13:04 +08:00
Jason bf2fe0d0be docs(release): add v4.0.2 release notes 2026-10-06 00:07:54 +08:00
Owlbay 92fa72c76f fix(mcp): run the time preset with uvx mcp-server-time (#7863)
The time preset ran npx -y @modelcontextprotocol/server-time, but that
package does not exist on npm (404), so the server exited on start and
clients reported the connection as closed. The official time server is
published to PyPI as mcp-server-time; run it with uvx like the fetch
preset, and update the preset name, the name placeholder and the user
manual tables.
2026-10-05 16:04:25 +08:00
Jason 4804b723d4 docs(release): add v4.0.1 release notes 2026-10-05 12:51:16 +08:00
Jason a189980f35 docs(release): shrink and center v4.0 release note screenshots
Render the screenshots at 720px (560px for the cropped Codex model
picker) and center them, matching the published release body.
2026-10-04 20:12:48 +08:00
Jason 412579f9ad chore(release): v4.0.0 2026-10-04 17:06:16 +08:00
Jason 6d6bbe6747 docs(release): add v4.0 release notes in Chinese, English and Japanese
Add the v4.0 release notes and the screenshots they reference
(main page, Apps page, Aggregation, Codex model picker, session reader
and usage, in Chinese and English) under assets/release-notes/v4.0.0.
2026-10-04 16:25:20 +08:00
Jason 6fd176ba12 fix(usage): deepen the top heatmap level in light mode
The heatmap mixed --chart-1 (#0891b2) at 30/50/75/100%, so the darkest
cell was a mid-tone and the whole map read pale (3.68:1 against the card).
Mixing a darker cyan at every level fixed the top but washed out the low
levels.

Move the ramp into --heat-1..4 tokens defined per theme. Light keeps the
lower levels on chart-1 (32%, 62%, solid) and switches only the top level
to #0e7490, same hue one step darker (5.36:1). Dark keeps its previous
ramp, since brighter already means more there. Charts and quota meters
still use --chart-1.
2026-10-03 23:29:01 +08:00
Jason a43d3b2f9d fix(theme): align the light accent with Tailwind orange-500
The light --action-bg was #f97315, one unit off the #f97316 the old
add-provider button used via bg-orange-500. Use #f97316 so the accent
matches the pre-redesign orange exactly, recompute the light --ring HSL
from it, and update the design-system doc to the same value.
2026-10-03 23:29:01 +08:00
Jason c19c117009 feat(ui): set the aggregation default from the card's more menu
After the "start aggregation with this as default" button went away, the
aggregation preview showed the default-after-switch but had no control to
change it; the default could only be picked in the confirm dialog. Once
in aggregation mode it was an icon-only star next to remove.

Move "set as default" to the top of each card's more menu on the
aggregation tab, in both states, and leave add / remove as the only row
actions:

- In aggregation mode it takes effect at once, also for providers not
  added yet (the backend adds the new default to the list).
- In direct mode it only records the choice through set_proxy_route; the
  card moves to the default section and the confirm dialog preselects it.
- While routing it is listed but disabled with the reason: the default
  and the route target are one pointer, so changing it would switch the
  live route from a preview.

On Codex, when the default is an official account and the target is a
third-party provider, the item says the official subscription's models
won't be part of the aggregation. That was previously a silent side
effect of changing the default.

Mode-specific menu items come from the presentation builder
(CardPresentation.menuItems), like the row buttons.
2026-10-03 23:29:00 +08:00
Jason 29513d9a54 refactor(ui): enter routing and aggregation only from the notice
While previewing the route or aggregation tab, every card carried a
"start routing here" / "start aggregation with this as default" button.
Both were shortcuts for the notice's button plus a provider choice, and
the aggregation one sat next to add / remove, which only edit the list.
On Codex it also had a hidden cost: an official account can only be the
default, never a member, so starting from any third-party card silently
dropped the official subscription out of the aggregation.

Remove both card buttons. The notice is the single entry, and the
confirm dialog now has the provider select for aggregation as well as
routing, preselecting the last route and falling back to the direct
provider. When an official account is eligible and another provider is
picked as the aggregation default, the dialog says its models won't be
part of the aggregation. The "also adds" note follows the picked default
instead of the last route.

Preview rows keep only list edits: none on the route tab, add / remove
on the aggregation tab. An official subscription that can't be routed
has no button left to hang the reason on, so it moves to the chip's
tooltip.
2026-10-03 23:29:00 +08:00
Jason 21cbc3a8b4 refactor(i18n): rename the Stack mode to 聚合 in Chinese
From the client's side the Stack mode does what an aggregator provider
does: one endpoint, models from several providers, each request routed
by the model it names. Calling it 聚合 lets users reuse a concept they
already know instead of learning what 叠加 stacks onto.

Labels and tabs read 聚合, sentences 聚合模式 / 聚合的模型, and verb uses
become 加入聚合. zh-TW follows; en/ja keep "Stack". Code identifiers,
storage keys and logs are unchanged. Unrelated uses of 叠加 (the
Volcengine discount copy, two code comments, a CSS comment) are kept.
2026-10-03 23:29:00 +08:00
千羽and千羽 57b1eff1d4 feat(ui): v8 — theme color, unified controls, motion, virtual lists (#7816)
Unify the visual and interaction rules on top of the v7 redesign.

- Theme color #F97315 for --action-* and --ring; dark mode uses #EA580C
  with white text, toned-down mode colors and translucent soft fills
- Buttons mapped to three sizes (28 / 32 / 36); inputs, selects and
  search fields share fieldClass; self-drawn checkbox and radio
- HoverTip replaces title on about 100 icon buttons; it stays closed
  when a closing menu returns focus to its trigger
- Install tailwindcss-animate so menu, popover, dialog and tooltip
  enter/exit animations take effect; sliding segment thumb and tab
  underline
- Remove the command palette and the header prompt entry; provider card
  primary actions become icon buttons
- Virtualize the session list and the Skills discovery list; optimistic
  toggles for MCP and Skills with a 300ms delayed disabled state
- Toasts drawn unstyled with status-colored icons and de-duplicated
- Windows: hide the system title bar and use in-app window controls;
  macOS: brand row under the traffic lights
- Focus rings only for keyboard users
- Skills discovery and the prompt list show the last result from a
  local cache and refresh in the background
- Drop the trailing ellipsis from 36 dialog-opening labels
- Provider list fills the main area

Co-authored-by: 千羽 <qyinter@users.noreply.github.com>
2026-10-03 23:28:59 +08:00
Jason b999b07bec feat(ui): rebuild the global pages and finish the v7 visual pass
Pages (phase 4):
- Usage: v7 layout (filter row, four metrics with more on demand,
  switchable trend, request log / provider / model / pricing tabs, data
  sources sheet). Latency becomes output speed: output / (duration -
  first token), shown only for requests with at least 100 output tokens;
  provider totals sum output and generation time instead of averaging.
- Sessions: single-column list grouped by project or time, drilling into
  a reader with resume, find, question jump and copy actions.
- MCP and Skills share one app matrix (neutral checks, retry on failed
  writes, column bulk actions with undo); MCP add/edit moves into a
  drawer with form/JSON modes; Skills merges installed and discover and
  always shows a Pi column.
- Prompts: one page for eight apps including Hermes SOUL.md, enable and
  disable as buttons, delete with undo instead of a confirm, copy to
  other apps, import existing files; app pages show the active prompt.
- Add provider is two steps: pick a preset (always-on search including
  Chinese names and domains, categories inferred for display, sorted by
  name with no promoted entries), then fill the form. Edit pages name
  the provider and warn when it is the one in use.
- App page menu links to that app's usage.

Visual pass (phase 6):
- Secondary pages cover only the content area so the sidebar stays.
- Cmd/Ctrl+K jumps to apps, pages and settings sections.
- Legacy button variants, primary color, dialogs, toasts and sheets
  follow v7 tokens; hard-coded palette classes and 10px text across
  the remaining components are replaced with tokens.
2026-10-03 23:28:58 +08:00
M3chD09 793e67d9b3 feat(provider): add Command Code presets and quota support (#7358)
- add Command Code presets for Claude Code and Codex
- map the Claude and Codex provider endpoints and model catalogs
- detect both base URLs and query credits, rolling limits, and subscription periods
- document the preset and usage coverage in English, Chinese, and Japanese
- add preset routing and quota parsing tests
2026-10-03 19:52:23 +08:00
Jason 882344b698 feat(pi): fill thinkingLevelMap of a fetched model
Without a thinking map, Pi shows off..high for a custom model and hides
xhigh and max, even when the upstream supports them. When a fetched
model is picked and has no map yet, fill one:

- Use the reviewed map of the Pi preset at the same endpoint, but only
  under the same API and when the compat it relies on does not conflict
  with what the user wrote. Missing compat keys are added to the model,
  and for openai-completions the thinking format and reasoning_effort
  support that Pi detects must match the preset's.
- Otherwise, when Pi sends levels verbatim as reasoning_effort
  (openai-responses, or openai-completions detected as the OpenAI
  thinking format), derive the map from models.dev effort levels using
  Pi's own getEffortThinkingLevelMap rule.

A model with its own baseUrl is now looked up by that address. Update
the Pi design docs accordingly.
2026-10-01 23:20:06 +08:00
Jason f11ac73366 feat(pi): fill capabilities of a fetched model from presets and models.dev
Apply the same lookup to Pi custom providers: picking a fetched model
fills contextWindow, maxTokens, reasoning, and image input when they are
still empty. thinkingLevelMap is left untouched.

Update the Pi design docs, which previously forbade inferring model
capabilities. That rule came from an earlier implementation that voted
across providers by model name and produced wrong values; the docs now
keep the lesson as constraints (match the provider by endpoint first,
fill only empty fields, never generate a thinking map).
2026-10-01 23:20:06 +08:00
Jason bd9e8c90c0 fix(gemini): ask for a restart after switching Gemini CLI
Gemini CLI loads ~/.gemini/.env only at startup (and when validating the
auth method), and never overwrites a variable already in its environment,
so a running session keeps the old key, endpoint and model after a
switch. The switch toast now asks for a restart, as it already does for
Codex and Grok Build.

The user manual said the opposite in three places (the quick start
table, the switch page and the FAQ), claiming Gemini CLI re-reads .env on
every request; all three languages now say a restart is needed. The
README and the routing page now list Gemini CLI among the apps that show
a restart notice.
2026-09-27 22:38:42 +08:00
Jason aa99584851 docs: translate key-field switching docs to English, Japanese and German
Brings the README FAQ (English, Japanese, German) and the English and
Japanese user manuals in line with the Chinese master text.

- README FAQ: switching no longer touches plugins, hooks and other shared
  settings; a model changed in the client resets on switching back;
  routing keeps the direct provider and writes it back on exit; the
  device-local files; the restart note now covers Gemini CLI.
- Manual: the config editor section replaces backfill; the add dialog
  follows the same rules; quick toggles are marked global or per
  provider; the keys each app's switch changes; config ownership,
  malformed files and the first-write backup; routing writes back the
  direct provider; the Codex login is restored when switching back to an
  official card; Gemini auth follows the provider type.
2026-09-27 22:38:42 +08:00
Jason 59b851969e docs(zh): fix leftover restart and routing backup wording
- The routing feature bullet and the quick start still said only Codex
  and Grok Build may need a restart when a switch changes the model;
  Gemini CLI does too, as the FAQ already says.
- The routing page still said routing backs up the original config and
  restores it; disabling routing now writes back the direct provider,
  and the only backup is the one taken before the first write.
2026-09-27 22:38:42 +08:00
Jason db468c39f0 docs(zh): describe key-field switching in the README FAQ and user manual
Chinese master text for the new switching behavior; translations follow
once it is final.

- README FAQ: switching no longer touches plugins, hooks and other shared
  settings (replaces the common-config snippet answer); a model changed
  in the client resets on switching back; routing keeps the direct
  provider and writes it back on exit; the device-local files
  (live-state.json, the Codex login stash, first-write backups) and the
  restart note now covering Gemini CLI.
- Manual: the editor section (what it shows, global vs per-provider
  fields, edit conflicts, inactive fields) replaces backfill; the add
  dialog follows the same rules; quick toggles are marked global or
  per-provider; the keys each app's switch changes; the config ownership
  and malformed-file sections; routing writes back the direct provider;
  the Codex login is restored when switching back to an official card;
  Gemini auth follows the provider type.
2026-09-27 22:38:42 +08:00
Jason 1ee2fdc3a7 docs(user-manual): refresh the zh/en/ja manual for v3.20.4
- Cover Grok Build, Pi and MiniMax Code across install, interface,
  settings, presets, MCP, Skills, prompts, sessions, local routing,
  config files and env conflict pages
- Rename proxy/takeover wording to local routing and update settings
  paths to the Routing / Auth / Usage Statistics tabs
- Rewrite 4.5 as the connectivity check that replaced model test in
  v3.16.3 (no real model request, no test model to configure)
- Fix stale facts: official subscription quota is opt-in via the
  Official Subscription template since v3.16.2, Codex keys live only in
  config.toml experimental_bearer_token, deep link content/config must
  be Base64, SQL export includes usage logs, onboarding skip writes
  hasCompletedOnboarding in ~/.claude.json
- Backfill the website-only Codex preset section (native Responses vs
  Chat Completions) and align UI labels with the v3.20.4 locales
- Retranslate en/ja from the approved zh master, keeping all three
  languages line-aligned with matching anchors
2026-09-26 15:36:19 +08:00
Jason e0f70019b2 docs(guides): refresh Codex guides for native Responses presets and the renamed auth toggle
- Backfill website-only edits: Kimi direct-connection section, desktop FAQ cross-links, stray </content>
- Retitle the DeepSeek guide around Chat-format providers; v4-pro, Kimi, GLM and MiniMax now connect directly
- Rename the toggle to "Keep official login for direct switches"; document auth.json removal and takeover preservation
- Prefill gpt-5.6-sol, mention the Kimi Global presets, and use routing takeover terminology
- Remove the outdated, unreferenced proxy-guide-zh.md
2026-09-26 12:06:52 +08:00
Jason 43e1d99084 docs(release): add v3.20.4 release notes 2026-09-22 22:17:05 +08:00
时瑾 c715ee2b2d fix(claude): hide session URL attribution (#7053)
* fix(claude): hide session URL attribution

* docs(claude): document session URL attribution
2026-09-22 16:22:29 +08:00
Jason 060099d72a docs(user-manual): point Chat-only Codex examples at plan endpoints
Baidu Qianfan and StepFun now ship native Responses presets for their
pay-as-you-go APIs, so the Chat-only examples name the offerings that
still route through Chat: Baidu Qianfan Coding Plan and StepFun Step
Plan. Synced across the zh/en/ja manuals.
2026-09-21 21:45:23 +08:00
Jason 7f39d88584 test(claude-desktop): run Linux path tests on unix hosts and cover Linux in provider sync tests
Follow-up to #7331 (Claude Desktop 3P configuration on Linux):

- Compile the Linux config-dir resolver and its three unit tests under
  any unix test build so they run on macOS as well as CI ubuntu. The
  gate is unix rather than test because the assertions use POSIX
  absolute paths, which are not absolute on Windows.
- Open the provider -> Claude Desktop profile sync integration tests to
  Linux: add the Linux profile path helper and pin XDG_CONFIG_HOME under
  the temporary home (saved on construction, restored on drop).
- Update the support-scope table in the en/zh/ja user manuals to list
  Linux and note that the Flatpak build always uses the host ~/.config.
2026-09-21 21:45:23 +08:00
Railgun 42ac174dbc feat(claude-desktop): support 3P configuration on Linux (#7331)
Add Claude Desktop 3P configuration support on Linux. Resolve the config root from an absolute XDG_CONFIG_HOME, falling back to ~/.config; when CC Switch itself runs as a Flatpak, use the host ~/.config instead of the sandbox-private XDG_CONFIG_HOME. Update the en/zh/ja user manuals with Linux paths and the Flatpak boundary.

Fixes #4855
2026-09-14 17:09:18 +08:00
Jason d695a2d77f docs(release): add v3.20.3 release notes 2026-09-11 23:23:51 +08:00
Jason f874803f27 feat(presets): rename DouBaoSeed preset to localized Volcengine Doubao
Rename the DouBaoSeed provider preset across all seven app preset files
and localize its display name: zh/zh-TW show "火山 豆包AI", en/ja show
"Volcengine Doubao" via the new providerForm.presets.doubaoseed key.

Following the existing Qiniu/Compshare convention, the top-level name
holds the latin fallback (so the preset stays searchable in both
scripts) and the localized name lives in the locale files. OpenCode and
Pi settingsConfig.name, which is written into the client config files,
keeps the ASCII form.

Live-config identifiers are deliberately untouched: the Codex TOML
provider name, the Hermes node key doubao_seed, Pi's providerKey, the
OpenClaw model-ref prefix, partnerPromotionKey and icon.
2026-09-11 16:47:47 +08:00
Jason deb0e874ff feat(claude): add "Disable Artifact Tool" quick toggle to provider editor
Some third-party Anthropic-compatible gateways (e.g. DeepSeek) validate
tool JSON Schemas with a strict regex checker and reject the Unicode
property escapes (\p{Cc}...) that Claude Code's Artifact tool emits when
its str_replace db capability is rolled out, failing every request with
400 "Invalid schema for function 'Artifact'". The failure is independent
of the model selected.

Add a sixth checkbox next to the existing Claude quick toggles that sets
env.CLAUDE_CODE_DISABLE_ARTIFACT="1" on the provider, which keeps the
Artifact tool out of the tools array entirely. Unchecking removes the key
like the other toggles do. Labels added for zh/en/ja/zh-TW and the user
manual toggle table updated in zh/en/ja.
2026-09-11 16:47:47 +08:00
Jason 08984ba591 feat(codex): switch Kimi presets to native Responses direct-connect
Both Kimi open platform (api.moonshot.cn/v1) and Kimi For Coding
(api.kimi.com/coding/v1) now serve /v1/responses natively and their
official Codex guides require wire_api = "responses", so the two presets
move from openai_chat (proxy Responses->Chat conversion, routing takeover
required) to openai_responses (Codex connects directly). Verified against
both endpoints with real keys using the exact Codex 0.153.4 request shape
(include reasoning.encrypted_content, reasoning.summary, hosted web_search,
replayed reasoning items) and with codex exec end-to-end tool loops.

- kimi-k3 becomes the default open-platform model and first catalog row;
  kimi-k2.7-code stays as a second row (it also answers on /v1/responses,
  although the OpenAPI only lists kimi-k3)
- drop codexChatReasoning (Chat-conversion only) from both presets and
  promptCacheRouting from Kimi For Coding (Codex sends prompt_cache_key
  itself on the native path; the proxy auto-detects the host anyway)
- declare supportsParallelToolCalls on every Kimi row, mirroring the
  official Kimi Code models.json
- no reasoning default is declared: config.toml model_reasoning_effort
  wins over the catalog default, which only marks the /model picker
- move the two presets from the Chat list to the native list in the
  preset tests; invert the prompt-cache-routing assertion
- refresh the user manual (zh/en/ja) so the "Chat-only" examples name
  providers that still use Chat routing, and correct the stale
  userAgentPresets note about Kimi Code rejecting codex-cli

No backend change. Existing Kimi cards keep their stored openai_chat
format and continue to work through routing; switch a card's upstream
format to Responses (or re-add the preset) to connect directly.
2026-09-11 16:47:46 +08:00
Jason f3b18df120 docs(release): add v3.20.2 release notes 2026-09-07 21:54:01 +08:00
Jason 3217f72596 docs(release): add v3.20.1 release notes 2026-08-28 08:19:45 +08:00
yovinchen bd15ea1193 feat(terminal): add Otty support with tab-aware launching (#6620) 2026-08-26 15:55:13 +08:00
Jason 0b5da51016 docs(release): add v3.20.0 release notes 2026-08-18 16:48:03 +08:00
Jason d1c550bac3 feat(codex): drop Goal mode toggle now that upstream enables goals by default
codex-cli 0.147.0 reports `goals` as a stable feature that defaults to
true, verified against a clean CODEX_HOME with no config.toml: the flag
is on whether or not `[features].goals` is present. The toggle was added
in #3089 against codex 0.134.0, when the flag still had to be opted into.

The toggle had also become actively misleading. Unchecking it deleted the
`goals` line rather than writing `goals = false`, which used to fall back
to the old default of off but now falls back to on -- so the box read
unchecked while the feature stayed enabled.

Removes the two helpers, their TOML patterns, the now-unused
hasTomlSectionBodyContent, the checkbox, the enableGoalMode key in all
four locales, the covering tests, and the user-manual entries. Release
notes for v3.16.0 keep their original text as a historical record.
2026-08-18 11:13:52 +08:00
wuzhenyuandzhuanzhi bdeaac7591 fix(proxy): support Codex Alpha Search and Claude hosted WebSearch (#5681)
Two independent web-search paths behind the CC Switch local proxy:

- Register POST /alpha/search and its local aliases as a semantic passthrough
  to the selected Codex provider, reusing provider selection, model mapping,
  auth, retry/failover, and logging. Full-URL providers derive the sibling
  /alpha/search endpoint only from unambiguous /responses URLs and fail
  closed otherwise.
- Bridge Claude Code's hosted WebSearch tool onto OpenAI Responses and the
  Codex OAuth backend: request translation with fail-closed semantics for
  unrepresentable constraints (blocked_domains, non-direct callers,
  response_inclusion, unverified versions), paired server_tool_use /
  web_search_tool_result blocks, citation preservation, max_uses enforcement,
  multi-turn replay, and usage.server_tool_use.web_search_requests.

Fixes #5363
Fixes #5378

Co-authored-by: zhuanzhi <zaz92537@126.com>
2026-08-16 20:56:37 +08:00
SaladDayandJason 84e75ad24a feat(pi): add native coding agent support (#6064)
* feat(pi): add native coding agent support

* refactor(pi): align native provider management

* fix(pi): allow removing global default provider

* feat(pi): refine provider creation experience

* refactor(pi): align prompt management UI

* feat(pi): refine native prompt and provider UX

* fix(pi): size config preview to content

* feat(pi): refine native provider management

* refactor(pi): remove unused integration paths

* fix(pi): address review feedback

* test(pi): align model picker assertions

* fix(pi): preserve AGENTS.md during restore sync

---------

Co-authored-by: Jason <farion1231@gmail.com>
2026-08-14 17:57:45 +08:00
Jason 43eaf07355 docs(release): add v3.19.2 release notes 2026-08-06 12:21:00 +08:00
Jason fbf52cff73 docs(release): correct the v3.19.1 pointer to the DeepSeek routing guide
The Usage Guides entry told readers the guide's DeepSeek sections no
longer applied to this release. That was true when v3.19.1 shipped, but
the guide has since been rewritten for it, so the warning now steers
people away from an accurate document.

Replace it with what the guide actually says: presets created after
3.19.1 connect directly, while providers saved earlier and
deepseek-v4-pro still need routing. Also drop MiniMax from the
Chat-format list — it moved to native Responses too — and name Zhipu GLM
instead.

The published release body on GitHub was updated to match.
2026-08-01 10:29:39 +08:00