Files
deepseek-harness/docs/event-producer-consumer.md
Hypatia May 85dd22fd4f feat(subagent): deliver continuable child settlement to parents
A continuable child that stopped without reporting — an error, a token
ceiling, cancellation, teardown — left its parent nothing to act on.
The continuation manager now delivers an unconditional settlement
notice to the durable direct parent before releasing ownership, folding
consumed work (foldConsumedWork supersedes findLastMessageTurnEnd) so a
claimed-but-unrun prompt reads as aborted rather than completed, waking
an idle parent, steering a busy one, and never waking a closing tree.
2026-08-11 12:31:49 +08:00

18 KiB

Event Producer And Consumer Matrix

This matrix shows which packages dispatch each harness-owned event and which packages listen to it. Events are many-to-many, so the dense relation data is presented as a table rather than one large graph. Receiver and event-name types also cover contained dispatch sites that deliberately bypass ctx.emit, such as subagent lifecycle containment.

Event Mode Declared in Dispatchers Listeners
agent-loop/config-start-failed emit packages/core/agent-loop/src/index.ts:182 agent-loop (events.dispatch) -
agent/created emit packages/core/agent/src/runtime-types.ts:159 agent (events.dispatch) goal-session
agent/disposed emit packages/core/agent/src/runtime-types.ts:168 agent (events.dispatch) agent-loop, goal-session, subagent
agent/error emit packages/core/agent/src/runtime-types.ts:290 agent-loop (emit) acp, apiproxy, goal-session, session-telemetry
agent/inbox/claimed emit packages/core/agent/src/runtime-types.ts:197 agent-loop (emit) acp, goal-session, subagent
agent/inbox/discarded emit packages/core/agent/src/runtime-types.ts:205 agent-loop (emit) goal-session, subagent
agent/inbox/inserted emit packages/core/agent/src/runtime-types.ts:186 agent-loop (emit) goal-session
agent/pre-step waterfall packages/core/agent/src/runtime-types.ts:231 agent-loop (waterfall) compact-basic, goal-session, hooks-claude, hooks-codex, plan-mode, repeat-tool-guard, session-checkpoint-policy, subagent-inprocess, time-context, tmux-context, tool-skill, workspace-context
agent/request waterfall packages/core/agent/src/runtime-types.ts:244 agent-loop (waterfall) agent
agent/request-error waterfall packages/core/agent/src/runtime-types.ts:260 agent-loop (waterfall) compact-basic, llm-retry
agent/session-start emit packages/core/agent/src/runtime-types.ts:217 agent-loop (emitAgentEvent) goal, goal-session, hooks-claude, hooks-codex
agent/status emit packages/core/agent/src/runtime-types.ts:178 agent-loop (emit) agent, apiproxy, compact-basic, goal-session, server
agent/turn-stopping serial packages/core/agent/src/runtime-types.ts:278 agent-loop (serial) hooks-claude, hooks-codex
approval/request waterfall packages/interaction/user-approval/src/index.ts:30 user-approval (waterfall) acp, apiproxy
commands/change emit packages/interaction/commands/src/index.ts:134 commands (events.dispatch) apiproxy
credentials/updated emit packages/credentials/credentials/src/index.ts:67 credentials (events.dispatch) apiproxy, credentials
domain/changed emit packages/storage/storage-domain/src/events.ts:46 storage-domain (emit) apiproxy, storage-domain, workspace
fs/edit-intent waterfall packages/fs/fs/src/index.ts:66 tool-fs (waterfall), tool-str-replace-editor (waterfall) fs-policy
fs/observed emit packages/fs/fs/src/index.ts:76 tool-fs (emit), tool-str-replace-editor (emit) fs-policy, skill-local
fs/write-intent waterfall packages/fs/fs/src/index.ts:58 tool-fs (waterfall), tool-str-replace-editor (waterfall) fs-policy
goal/changed emit packages/goal/goal/src/domain.ts:114 goal (emit) goal-session
llm/adapters-updated emit packages/llm/llm/src/index.ts:75 llm (events.dispatch) apiproxy, llm
llm/stream waterfall packages/llm/llm/src/index.ts:64 llm (waterfall) agent-loop, llm, llm-replay, session-checkpoint-policy, session-title
session/created emit packages/core/session/src/index.ts:54 session (events.dispatch) apiproxy, compact, goal, hook-protocol, llm-retry, permission, plan-mode, server, session, session-persistence, session-telemetry, tools, user-approval
session/disposed emit packages/core/session/src/index.ts:64 session (events.dispatch) agent-loop, apiproxy, session-persistence, session-projection-cache, session-telemetry, session-title
session/event emit packages/core/session/src/index.ts:76 session (events.dispatch) acp, agent-loop, apiproxy, compact, compact-basic, goal, goal-session, hook-protocol, loader-smoke, server, session, session-persistence, session-projection, session-projection-cache, session-telemetry, session-telemetry-otel, session-title, token-meter, tools, user-approval, workspace-context
session/flush parallel packages/core/session/src/index.ts:85 session (events.dispatch) session-persistence, session-telemetry
settings/document-updated emit packages/settings/settings/src/index.ts:170 settings (events.dispatch) apiproxy
settings/updated emit packages/settings/settings/src/index.ts:157 settings (events.dispatch) settings
skills/change emit packages/skill/skill/src/index.ts:297 skill (events.dispatch) -
subagent/end emit packages/subagent/subagent/src/index.ts:166 subagent (events.dispatch) hooks-claude, server, subagent
subagent/provider-added emit packages/subagent/subagent/src/index.ts:140 subagent (emit) subagent, tool-subagent
subagent/provider-removed emit packages/subagent/subagent/src/index.ts:146 subagent (events.dispatch) subagent, tool-subagent
subagent/start emit packages/subagent/subagent/src/index.ts:157 subagent (events.dispatch) hooks-claude, subagent
system-prompt/assemble waterfall packages/core/system-prompt/src/index.ts:31 system-prompt (waterfall) agent, system-prompt
system-prompt/change emit packages/core/system-prompt/src/index.ts:37 system-prompt (emit) -
telemetry/record waterfall packages/session/session-telemetry/src/index.ts:43 session-telemetry (waterfall) -
tools/change emit packages/core/tools/src/index.ts:193 tools (emit) -
tools/code-dispatch-log waterfall packages/core/tools/src/index.ts:175 tools (waterfall) spill-policy
tools/execute waterfall packages/core/tools/src/index.ts:149 tools (waterfall) session-checkpoint-policy, timeout-policy
tools/post-execute waterfall packages/core/tools/src/index.ts:161 tools (waterfall) hooks-claude, hooks-codex, repeat-tool-guard, spill-policy, tool-fs-search
tools/pre-execute waterfall packages/core/tools/src/index.ts:138 tools (waterfall) hooks-claude, hooks-codex, tool-tasks
tools/result emit packages/core/tools/src/index.ts:183 tools (events.dispatch) subagent-inprocess, workspace-context
workflow/agent-end emit packages/workflow/workflow/src/index.ts:81 workflow (events.dispatch) workflow
workflow/agent-start emit packages/workflow/workflow/src/index.ts:70 workflow (events.dispatch) workflow
workflow/end emit packages/workflow/workflow/src/index.ts:91 workflow (events.dispatch) workflow
workflow/log emit packages/workflow/workflow/src/index.ts:60 workflow (events.dispatch) -
workflow/phase emit packages/workflow/workflow/src/index.ts:53 workflow (events.dispatch) -
workflow/start emit packages/workflow/workflow/src/index.ts:45 workflow (events.dispatch) workflow

Non-harness or undeclared event strings seen in package source

Event string Dispatchers Listeners
commands/changed runtime (emit) ui-command
connection/reset runtime (emit) runtime, ui-command, ui-models, ui-permission, ui-settings-general
credentials/changed runtime (emit) ui-models
internal/dispatch - commands, compact, fs, goal, goal-session, hook-protocol, llm-retry, permission, plan-mode, pty-local, runtime, sandbox-policy, scope, session, session-title, subagent, time-context, tool-todo, tools, user-approval, workflow
internal/plugin - hmr, loader, lsp-local, modules, webserver
internal/service - agent-presets, gateway
internal/status - agent
locale/change locale (emit) locale
models/changed runtime (emit) ui-models
session/preset-changed runtime (emit) ui-command
settings/changed runtime (emit) runtime, ui-models, ui-permission, ui-settings-general
slash/input-begin-command - ui-conversation
slash/input-consume-token - ui-conversation
slash/input-insert-reference - ui-conversation
slash/input-insert-text - ui-conversation
slots/changed runtime (emit) -
theme/change ui-theme (emit) ui-layout, ui-theme

Maintenance mode: generated: Cordis event declarations and producer/listener edges are resolved from the repository TypeScript Program.