deepseek-harness/docs
Yichen Jiang 43f3324a7b fix(tools): restrict what a scope inherits, not just the global layer
A restriction was compiled against the global tool layer alone: only
global-layer tools were tested against `admits()`, and every chain-layer
tool was overlaid unfiltered afterward. That read the exempt set as "the
global layer" when what it means is "what this scope registers itself" —
two descriptions of the same set only while every model-facing tool sat in
the host composition.

Moving those rows onto the agent plane separated them. A preset's tools are
an ANCESTOR contribution to a joined agent, so a subagent's `toolFilter`
stopped constraining anything it was given; and with the global layer empty
`restrict()` rejected every name it received as unknown, failing the child
outright. With the same tools in the global layer the filter still admits
and applies normally, which is what makes this a regression of the move
rather than a standing limitation.

`view()` now filters everything a scope inherits — the global layer and
every ancestor layer on its chain — and exempts only the layer the scope
owns. That exemption is load-bearing rather than incidental: the delegation
runtime registers a child's `report` and structured-output tools into the
child's own layer, and a filter naming the capabilities the child may use
must not strip the machinery it answers through. Tool order, and with it
prefix-cache reuse, is unchanged: inherited names keep their global-then-
ancestor position and own-layer names still come last.

The diagnostic said "unknown global tool" while listing what is really the
inherited surface; it now names the surface it checks and says why an
own-layer name is not restrictable.

Fixes #2185
2026-08-10 20:34:45 +08:00
..
cookbook docs: make technical prose concrete 2026-08-10 16:34:20 +08:00
cordis-api docs: fix review findings — residual ordinals, hypothetical IPC row, citation-rule amendments 2026-08-09 21:10:59 +08:00
cordis-tutorial docs: make technical prose concrete 2026-08-10 16:34:20 +08:00
i18n docs: make routine translation lightweight 2026-08-10 17:58:09 +08:00
postmortem docs: make technical prose concrete 2026-08-10 16:34:20 +08:00
subsystems fix(tools): restrict what a scope inherits, not just the global layer 2026-08-10 20:34:45 +08:00
user docs: make technical prose concrete 2026-08-10 16:34:20 +08:00
agent-lifecycle.i18n.yaml docs: make technical prose concrete 2026-08-10 16:34:20 +08:00
agent-lifecycle.md docs: make technical prose concrete 2026-08-10 16:34:20 +08:00
agent-lifecycle.zh.md docs: make technical prose concrete 2026-08-10 16:34:20 +08:00
AGENTS.md fix(skill): enforce manual invocation policy 2026-08-10 18:04:26 +08:00
api-gateway.i18n.yaml docs: make technical prose concrete 2026-08-10 16:34:20 +08:00
api-gateway.md docs: make technical prose concrete 2026-08-10 16:34:20 +08:00
api-gateway.zh.md docs: make technical prose concrete 2026-08-10 16:34:20 +08:00
architecture.i18n.yaml docs: make technical prose concrete 2026-08-10 16:34:20 +08:00
architecture.md docs: make technical prose concrete 2026-08-10 16:34:20 +08:00
architecture.zh.md docs: make technical prose concrete 2026-08-10 16:34:20 +08:00
capability-seams.i18n.yaml docs: make technical prose concrete 2026-08-10 16:34:20 +08:00
capability-seams.md docs: make technical prose concrete 2026-08-10 16:34:20 +08:00
capability-seams.zh.md docs: make technical prose concrete 2026-08-10 16:34:20 +08:00
config-catalog.i18n.yaml Merge latest master into PR branch 2026-08-10 02:10:57 -07:00
config-catalog.md Merge latest master into PR branch 2026-08-10 02:10:57 -07:00
config-catalog.zh.md Merge latest master into PR branch 2026-08-10 02:10:57 -07:00
cordis-paper.pdf docs: add cordis paper 2026-07-31 15:54:36 +08:00
cordis-primer.i18n.yaml docs: make technical prose concrete 2026-08-10 16:34:20 +08:00
cordis-primer.md docs: make technical prose concrete 2026-08-10 16:34:20 +08:00
cordis-primer.zh.md docs(i18n): standardize contract terminology 2026-08-09 11:33:14 +08:00
defensive-patterns.i18n.yaml docs: make technical prose concrete 2026-08-10 16:34:20 +08:00
defensive-patterns.md docs: make technical prose concrete 2026-08-10 16:34:20 +08:00
defensive-patterns.zh.md docs: make technical prose concrete 2026-08-10 16:34:20 +08:00
development.i18n.yaml docs: make technical prose concrete 2026-08-10 16:34:20 +08:00
development.md docs: make technical prose concrete 2026-08-10 16:34:20 +08:00
development.zh.md docs: make technical prose concrete 2026-08-10 16:34:20 +08:00
event-producer-consumer.i18n.yaml Merge remote-tracking branch 'origin/master' into worktree/web-theme-settings-integration-fde706 2026-08-10 17:05:18 +08:00
event-producer-consumer.md Merge remote-tracking branch 'origin/master' into worktree/web-theme-settings-integration-fde706 2026-08-10 17:05:18 +08:00
event-producer-consumer.zh.md Merge remote-tracking branch 'origin/master' into worktree/web-theme-settings-integration-fde706 2026-08-10 17:05:18 +08:00
glossary.i18n.yaml docs: reserve seam for complete capabilities 2026-08-09 17:26:57 +08:00
glossary.md docs: reserve seam for complete capabilities 2026-08-09 17:26:57 +08:00
glossary.zh.md docs: reserve seam for complete capabilities 2026-08-09 17:26:57 +08:00
graph-atlas.i18n.yaml docs: make technical prose concrete 2026-08-10 16:34:20 +08:00
graph-atlas.md docs: make technical prose concrete 2026-08-10 16:34:20 +08:00
graph-atlas.zh.md docs: make technical prose concrete 2026-08-10 16:34:20 +08:00
module-graph.i18n.yaml Merge remote-tracking branch 'origin/master' into worktree/subagent-missing-tools-fb2359 2026-08-10 20:32:58 +08:00
module-graph.md Merge remote-tracking branch 'origin/master' into worktree/subagent-missing-tools-fb2359 2026-08-10 20:32:58 +08:00
module-graph.zh.md Merge remote-tracking branch 'origin/master' into worktree/subagent-missing-tools-fb2359 2026-08-10 20:32:58 +08:00
persistence-catalog.i18n.yaml docs: make technical prose concrete 2026-08-10 16:34:20 +08:00
persistence-catalog.md docs: make technical prose concrete 2026-08-10 16:34:20 +08:00
persistence-catalog.zh.md docs: make technical prose concrete 2026-08-10 16:34:20 +08:00
testing.i18n.yaml docs: make technical prose concrete 2026-08-10 16:34:20 +08:00
testing.md docs: make technical prose concrete 2026-08-10 16:34:20 +08:00
testing.zh.md docs: make technical prose concrete 2026-08-10 16:34:20 +08:00
tool-catalog.i18n.yaml Merge branch 'feat/windows-pwsh-default' into feat/windows-acl-sandbox 2026-08-09 23:19:14 +08:00
tool-catalog.md Merge branch 'feat/windows-pwsh-default' into feat/windows-acl-sandbox 2026-08-09 23:19:14 +08:00
tool-catalog.zh.md Merge branch 'feat/windows-pwsh-default' into feat/windows-acl-sandbox 2026-08-09 23:19:14 +08:00
tool-execution-pipeline.i18n.yaml docs: make technical prose concrete 2026-08-10 16:34:20 +08:00
tool-execution-pipeline.md docs: make technical prose concrete 2026-08-10 16:34:20 +08:00
tool-execution-pipeline.zh.md docs: make technical prose concrete 2026-08-10 16:34:20 +08:00
web-styling.i18n.yaml docs: make technical prose concrete 2026-08-10 16:34:20 +08:00
web-styling.md docs: rescan rebased documentation hierarchy 2026-08-05 16:16:57 +08:00
web-styling.zh.md docs: make technical prose concrete 2026-08-10 16:34:20 +08:00