deepseek-harness/docs
imccyu 0d0f0204f2 workflow: meta rides the seam as data — the engine never evaluates it
P1 review finding: extractMeta timed only the literal's vm evaluation;
materializing the RESULT then read properties ordinarily on the HOST
stack, so a meta literal smuggling a getter (get name() { while(true){} })
could wedge the host outside any timeout — defeating the exact spin
isolation the worker thread exists for.

Rather than harden the evaluator (descriptor walks, AST validation),
delete the mechanism: the workflow's identity now reaches the seam as a
plain JSON field (WorkflowStartRequest.meta), carried by the tool as a
schema-validated `meta` object parameter the model fills directly. The
engine only shape-validates data (validateMeta, every violation named)
and pre-parses the body; the scanner, the vm evaluation, and the
host-side materialization are gone, and with them the hole. A body
still opening with a Claude Code-style `export const meta` statement
gets a pointed SCRIPT_PARSE message (the likeliest authoring slip; a
CC script's body stays drop-in, only its meta header moves into the
parameter). syncTimeoutMs now governs exactly one thing: the initial
synchronous slice inside the worker.

The RFC's decision section is rewritten in place (implemented-RFC
rule); the embedded-meta format moves to alternatives-considered with
the hole as the reason. Tool description, presentation (title now reads
meta.name directly — the textual sniff is gone), seam vocabulary docs,
and catalogs follow.
2026-07-09 20:09:10 +08:00
..
cookbook docs: the governing principle — every LLM request is reconstructable from the session log 2026-07-06 03:49:35 +08:00
cordis-catalog docs: describe the workflow engine as worker-thread first 2026-07-09 19:31:56 +08:00
core-data-structures workflow: meta rides the seam as data — the engine never evaluates it 2026-07-09 20:09:10 +08:00
i18n docs: equal-authority pairing with sidecar consistency records 2026-07-03 07:41:24 -07:00
postmortem fix(docs): address Codex review round 3 — last three moved-policy citations 2026-07-04 16:02:39 +08:00
rfc workflow: meta rides the seam as data — the engine never evaluates it 2026-07-09 20:09:10 +08:00
agent-lifecycle.md docs: address graph review placement 2026-07-05 02:54:01 +08:00
AGENTS.md docs: flatten single-file catalog dirs to docs/tool-catalog.md and docs/persistence-catalog.md 2026-07-06 22:26:06 +08:00
architecture.md Merge branch 'structured-output-subagent-seam' into worktree-dynamic-workflows 2026-07-07 22:21:44 +08:00
capability-seams.md workflow: rename dsh-workflow-vm to dsh-workflow-workerthread 2026-07-09 19:33:08 +08:00
config-catalog.md workflow: meta rides the seam as data — the engine never evaluates it 2026-07-09 20:09:10 +08:00
cordis-primer.md docs: split cordis primer from architecture map 2026-07-05 19:07:34 +08:00
defensive-patterns.md docs(AGENTS): rewrite the root standing orders to the 1,500-word budget 2026-07-04 14:22:47 +08:00
development.i18n.yaml Merge remote-tracking branch 'origin/master' into worktree-export-jsdoc-gate 2026-07-06 22:25:39 +08:00
development.md Merge remote-tracking branch 'origin/master' into worktree-export-jsdoc-gate 2026-07-06 22:25:39 +08:00
development.zh.md Merge remote-tracking branch 'origin/master' into worktree-export-jsdoc-gate 2026-07-06 22:25:39 +08:00
event-producer-consumer.md docs: describe the workflow engine as worker-thread first 2026-07-09 19:31:56 +08:00
graph-atlas.md docs: flatten single-file catalog dirs to docs/tool-catalog.md and docs/persistence-catalog.md 2026-07-06 22:26:06 +08:00
module-graph.md workflow: rename dsh-workflow-vm to dsh-workflow-workerthread 2026-07-09 19:33:08 +08:00
persistence-catalog.md Merge remote-tracking branch 'origin/master' into worktree-export-jsdoc-gate 2026-07-07 09:34:12 +08:00
testing.md Pin request-header content in one snapshot scenario 2026-07-06 23:41:20 +08:00
tool-catalog.md workflow: meta rides the seam as data — the engine never evaluates it 2026-07-09 20:09:10 +08:00
tool-execution-pipeline.md docs: address graph review placement 2026-07-05 02:54:01 +08:00