Files
deepseek-harness/packages/client/ui-workflow-run
Tianyi Cui 9dcc8fa985 Merge master into unified subagent activations
Integrate master 78ae4fc2d4d8ecaebb4b674028f781a358b92cc9 after the four
independent review fixes. Keep this base update separate from those fixes
and from subsequent review changes so the integration is independently
reviewable and the observed-master checkpoint remains preserved.

Retain activation-owned execution, caller-independent local discovery,
and unconditional parent final-answer delivery. Preserve master's preset
scoped scheduling tools and all delegated-child schedule deny rules. Move
the new scheduling regression from the removed driver package into the
surviving subagent package and run it through a real Spawn activation.

Preserve master's removal of runtime invariant plugins, dependencies,
exports, and test mounts. Keep context disposal before fixture directory
cleanup. Combine Python workflow ordering with activation/catalog events
without inventing unsupported source-plane import paths.

Keep all frozen Agent Note archives byte-for-byte identical to master;
do not accept Git's automatic edits to renamed archived notes. Retain
current lifecycle and delivery facts in active documentation, repair its
links, and regenerate catalogs/persistence schemas from merged source.
All 62 master persistence roots remain; only subagent/catalog gains the
PR's external membership extension. Keep master's third-party lock graph
and update only workspace dependency changes.

Validation before this checkpoint: 683 focused tests passed, seven
Windows-only cases skipped; 2,772 archived artifacts verified. Generated
catalog and active-pair checks passed. Fresh artifact build and remaining
build-dependent documentation checks continue before publication.
2026-10-05 23:49:47 +08:00
..
2026-10-03 10:46:11 +08:00

description, kind
description kind
Durable workflow-run Conversation Node for the dsh web client: reconstructs top-level workflow runs as independent chat nodes with nested member disclosure. package-reference

@deepseek-ai/dsh-client-ui-workflow-run

English | 中文

Summary

Use dsh-client-ui-workflow-run to inspect each durable top-level workflow run as an independent Chat node. Expand a run to see its phases and expand a phase to see members; running, failed, cancelled, and interrupted levels open by default, while completed levels remain closed. A running member can open its child Session only when it belongs to the current Session and is available locally. The node shows identities and statuses only; scripts, outputs, errors, logs, usage, topology, and controls remain outside this surface.

Table of Contents


Use this package

A top-level workflow run through dsh-tool-workflow appears in the conversation as its own node: expand the run to see its phases, and expand a phase to see its members. Phase groups come only from members that started, and settlement changes status without removing or reordering members.

Navigating the node

Run and phase headers keep 6px gaps between their title, count, and status fields, with the status aligned to the right. The run uses a 32-pixel row with persistent chevrons, an inline state dot, and status text; phases use disclosure rows with title and member count in the main area and a fixed aggregate-status tail; members use a 16-pixel dot slot, a truncating name area, and a fixed status column. Opening a member's child Session requires both member and child to be running, with the current Session recorded as its parent and an available child identity projection. Navigation uses the child's own mode for both continuable and historical one-shot children; external executions have no local Session to open. Child activity uses the unified UI status, falling back to the Session summary when unknown. Workflow events establish membership; missing child identity, a different parent, or a terminal member keeps the row non-interactive.

State and completion

Completion updates the visible status immediately but delays its automatic close while focus remains inside the content. A closed Turn or Step with missing terminal events presents the affected run or members as interrupted without changing the tool result.


Understand the implementation

Implementation internals — click to expand

The node is a deterministic replay of durable session events: tool-workflow/run-start creates one Context keyed by runId, and member starts, member endings, and the run ending update that Context in log order. A history tail containing only updates remains pending until an older page supplies the unique start, after which prepend, complete replay, and live append produce the same state.

Disclosure choices

Ordinary running updates preserve the current choice, the first abnormal edge opens once, normal completion closes once, and a completed phase plus the outer run open again when a new running member starts under the same phase key. If an entire new clean cycle arrives in one render while the run remains active, the phase finishes folded but the outer run opens once to expose its updated summary. WorkflowRunPanel owns the phase choices, so closing and reopening the outer run does not reset them; a renderer remount reconstructs every initial choice from durable facts.

Composition

The package registers its Definition, locale dictionary, and workflow-run renderer as Cordis effects; removing the client entry retracts all three contributions. The shipped Web bundle includes the plugin after ui-conversation and ui-tool.


Further Exploration

These pages cover the tool seam, the conversation host, and the tool presentation layer.

  • tool-workflow — the tool that owns the four tool-workflow/* Session events.
  • ui-conversation — the chat surface hosting the conversation.chat.node slot.
  • ui-tool — the tool-call presentation layer this node sits beside.
  • Conversation subsystem — how a business-owned feature registers a Conversation node.

Model Experience

None, as the package is a browser-side UI plugin layer that renders durable workflow records without changing model context.

KV Cache effect

None; this package neither assembles nor sends a provider request.

Known Limitations and Deferred Work

These limits define which runs produce records and what the node exposes; they are current package constraints.

  • Only top-level calls through dsh-tool-workflow produce these records — nested PTC mode calls and direct WorkflowEngine consumers do not.
  • Navigation is intentionally live-only — terminal members remain visible for review but never expose a cold-session opener from this node.
  • The node shows run, phase, member identity, and status only — scripts, outputs, errors, logs, usage, static topology, and controls remain outside this surface.

Dev Note

Working context for maintainers — click to expand

None.