deepseek-harness/docs
imccyu adbba0deb2 fix(system-prompt): reject a toolOrder that names an unregistered tool
Review follow-up (#196): a listed name with no registered tool was silently
ignored; misconfiguration must block work instead. The check lives in the
assembly — the earliest moment the registered tool set exists (tool plugins
register after the service constructs) and the only universal one (cordis has
no "all plugins loaded" event; registrations change at any time). assemble()
is now async so the throw surfaces as a rejection rather than a synchronous
escape from a Promise-returning method.

Blast radius, pinned by a loop-level test: the rejection reaches the turn's
outer catch — the turn closes balanced with an `error` reason, agent/error
mirrors it, no step opens, no request/header is logged, no request reaches
the adapter, and the agent returns to idle; every turn fails identically
until the config is fixed. A boot-time validation pass was considered and
rejected (recorded in the RFC). The general principle — misconfiguration
fails loud, never a silent skip — is added to AGENTS.md.
2026-07-07 20:49:42 +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 fix(system-prompt): reject a toolOrder that names an unregistered tool 2026-07-07 20:49:42 +08:00
core-data-structures Merge branch 'master' into worktree-llm-tool-order 2026-07-07 17:01:32 +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 fix(system-prompt): reject a toolOrder that names an unregistered tool 2026-07-07 20:49:42 +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 Inline session fork parameters 2026-07-07 09:04:49 +08:00
capability-seams.md docs: address graph review placement 2026-07-05 02:54:01 +08:00
config-catalog.md fix(system-prompt): reject a toolOrder that names an unregistered tool 2026-07-07 20:49:42 +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 ci: keep measured e2e worker cap 2026-07-06 03:20:08 +08:00
development.md ci: keep measured e2e worker cap 2026-07-06 03:20:08 +08:00
development.zh.md ci: keep measured e2e worker cap 2026-07-06 03:20:08 +08:00
event-producer-consumer.md docs: the governing principle — every LLM request is reconstructable from the session log 2026-07-06 03:49:35 +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 fix: fold session fork into session store 2026-07-06 12:35:34 +08:00
persistence-catalog.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
testing.md Pin request-header content in one snapshot scenario 2026-07-06 23:41:20 +08:00
tool-catalog.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
tool-execution-pipeline.md docs: address graph review placement 2026-07-05 02:54:01 +08:00