Files
deepseek-harness/apps/web/tests/snapshots/subagent-interrupt/offline-composer.expected.md
Yichen Jiang 2f481fa352 fix(apiproxy): echo the preset a created session runs, not its header
`session.create` also adopts an already-live session, and the preceding
commit newly allows adopting one under the preset it switched to while
blank. Its response still echoed `header.agentPreset`, so that adoption
answered with the preset the session had just left — contradicting the
request it had accepted and the row `session.list` serves for the same
session from `resolveSessionPreset()`. The echo now resolves the same way.

The `assertPresetUnchanged` parameter doc said `existing` was the preset
the session was created under; both callers now pass what it runs.

`composeFrom()` was documented as "infallible" and "cannot fail" beside two
`@throws`. It has no composition failure mode — no roster read, no mount, no
file — but it does reject a caller error, and the wording now says which.

The package-level "switched preset" test re-linked to the same preset id,
so it could not tell reading the parent's live scope chain from reading its
creation header. A second fixture preset makes the switch real.

The Web browser lane's subagent goldens gain the preset badge a child now
shows, which is the visible consequence of recording its composition. That
lane runs only under DSH_EXAMPLE_MODE=lib and was missed before.

The Agent Note records two limits found in review: a cold-resumed
continuable child joins its parent's current composition rather than the one
its header names, and `toolFilter` does not constrain a joined child. The
latter is a regression from the agent-plane move rather than anything this
change introduces — with the same tools in the global layer the filter
applies normally — and is tracked in #2185.

Refs #2185
2026-08-10 19:28:40 +08:00

796 B

  • banner:
    • navigation "Session hierarchy":
      • button "Ask a research subagent to"
      • text: /
      • button "event-sourcing researcher" [disabled]
    • img
    • text: 标准模式
    • tablist:
      • tab "Chat" [selected]
      • tab "Trajectory"
  • text: Explain event sourcing in one sentence. {{clock}}
  • button "Copy":
    • img
  • button "Context injection @deepseek-ai/dsh-system-prompt":
    • img
    • img
    • text: Context injection @deepseek-ai/dsh-system-prompt
  • paragraph: partial
  • status: Deep diving...
  • textbox "Parent session offline; sending is unavailable but you can still stop the run" [disabled]
  • button "Commands" [disabled]:
    • img
  • 'button "Access mode, current: Workspace Write" [disabled]': Workspace Write
  • button "Stop generating"
  • button "Send message" [disabled]