Files
qwen-code/docs
jinyeandQwen-Coder a142aa6668 fix(web-shell): Load models for fresh standalone sessions (#10719)
* fix(web-shell): load models for fresh standalone sessions

Co-authored-by: Qwen-Coder <[email protected]>

* docs(serve): document standalone_session_options_v1 capability

* fix(sdk): complete the standalone session-options surface

- declare visionModelId on DaemonWorkspaceProviderCurrent (the validator
  already accepts it and the daemon emits it)
- pin the remaining malformed-payload gates: acpChannelLive leakage,
  errors[] shape, status/approvalMode enums, current field types

* fix(cli): harden the standalone options catalog edge cases

- treat a non-positive contextWindowSize as unset so one misconfigured
  model cannot make the SDK reject the whole options payload
- pin getOptions() failing closed when the runtime is quarantined
  mid-read

* fix(web-shell): keep late standalone hydration from clobbering in-flight interactions

- never publish the standalone options response over a session that was
  attached while the request was in flight (it previously reset
  sessionId/transcript state through the clear-state spread)
- keep the model and approval-mode sync effects from overwriting a
  pending welcome selection when the options publish lands late
  (undefined -> value), while still hydrating when nothing is pending
- share one isStandaloneModelPickerUnavailable predicate across the
  toolbar filter, the StatusBar entry, and the /model command so the
  picker gates cannot drift; the /model gate now also filters hidden
  catalog ids like the other entry points
- document that the standalone create route applies modelServiceId
  best-effort instead of claiming a fail-closed guarantee

* test(cli): expect standalone_session_options_v1 in the capabilities envelope

The integration assertion snapshots the full conditional feature list;
the new capability registered for the session-options route was missing
from it.

* fix(serve): surface the spawn-time model apply outcome as modelApplied

The standalone create route applies modelServiceId best-effort: a failed
unstable_setSessionModel leaves the session on the agent default model
with only a model_switch_failed bus event, and the Web Shell skipped the
post-attach setModel that used to observe such failures — a first prompt
could run on a model the user did not select while the composer showed
the selection.

The spawn result now reports modelApplied (absent unless the create
carried a modelServiceId), surfaced through the standalone create
response and the SDK session type. The Web Shell treats a not-applied
model like the workspace setModel failure: with a model-bound reasoning
effort it rejects and releases the session; otherwise it warns and keeps
the session, which stays operational per the existing #3889 contract.

Tests pin every link: bridge (true/false/absent), service passthrough,
SDK parse validation, and sessionPreparation acceptance cases that go
red when the verification is removed.

---------

Co-authored-by: Qwen-Coder <[email protected]>
2026-09-02 09:25:44 +00:00
..
2025-12-05 10:51:57 +08:00
2025-12-19 15:52:11 +08:00