Files
deepseek-harness/apps/web/tests/snapshots/subagent-conversation/ui.expected.md
creatixchu de96087923 feat(web): name context sources and mark steering in the transcript
Every logged non-user user/message collapsed into one identical
「上下文注入」 row, and mid-turn steering rendered in exactly the bubble a
turn-opening prompt uses, so the transcript could not say what had been
added or which message interrupted a running turn.

TranscriptAdapter and the history fold now attach a provenance view to
each context node, computed by contextProvenance() from the durable
source alone: a role (inject, or recall for a cross-session snapshot)
and a producer name read out of the log — instruction paths for
workspace-instructions, session titles for session-reference, the plugin
id for a plugin source, and the bare kind for any other. No client-side
table of producer names, so a renamed or newly mounted producer stays
identifiable without a client release and a foreign log projects like a
live one. ContextInjectionRow titles itself from the role and shows the
name beside it; MessageItem captions durable and pending steering
bubbles.

The caption reverses one clause of the no-interjection-chrome decision,
which removed it because the composer could not steer; composer steering
shipped afterwards without amending that note, so this change supplies
the product decision its reintroduction clause required and corrects the
stale facts left in it.

Fixes #1291
2026-08-04 17:44:18 +08:00

2.6 KiB

  • banner:
    • navigation "Session hierarchy":
      • button "Ask a research subagent to"
      • text: /
      • button "event-sourcing researcher" [disabled]
    • button "1 subagent":
      • text: 1 subagent
      • img
    • tablist:
      • tab "Chat" [selected]
      • tab "Trajectory"
  • text: Explain event sourcing in one sentence. {{clock}}
  • button "Copy":
    • img
  • button "Branch into a new conversation" [disabled]:
    • img
  • text: Available only on the last message of a completed turn
  • button "Context injection · @deepseek-ai/dsh-system-prompt":
    • img
    • img
    • text: Context injection · @deepseek-ai/dsh-system-prompt
  • button "Think The user is asking for a one-sentence description of event sourcing. This is a straightforward knowledge question that doesn't require any skill loading or tool calls.":
    • img
    • img
    • text: Think The user is asking for a one-sentence description of event sourcing. This is a straightforward knowledge question that doesn't require any skill loading or tool calls.
  • paragraph: Event sourcing is a pattern where all changes to an application's state are stored as an immutable, append-only sequence of events, rather than persisting only the current state, enabling full auditability, temporal queries, and event-driven architectures.
  • button "Copy":
    • img
  • button "Branch into a new conversation":
    • img
  • text: {{clock}}Ran for {{duration}} Now give the same explanation to a human reader. {{clock}}
  • button "Copy":
    • img
  • button "Branch into a new conversation" [disabled]:
    • img
  • text: Available only on the last message of a completed turn
  • button "Think The user is asking for a one-sentence description of event sourcing. This is a straightforward knowledge question that doesn't require any skill loading or tool calls.":
    • img
    • img
    • text: Think The user is asking for a one-sentence description of event sourcing. This is a straightforward knowledge question that doesn't require any skill loading or tool calls.
  • paragraph: Event sourcing is a pattern where all changes to an application's state are stored as an immutable, append-only sequence of events, rather than persisting only the current state, enabling full auditability, temporal queries, and event-driven architectures.
  • button "Copy":
    • img
  • button "Branch into a new conversation":
    • img
  • text: {{clock}}Ran for {{duration}}
  • textbox "Message the agent"
  • button "Commands":
    • img
  • 'button "Access mode, current: Workspace Write"': Workspace Write
  • button "Send message" [disabled]
  • text: 2 turns · 2 steps Context 6% of 128K Cache hit 99% Input 15.6K tok · Output 158 tok