deepseek-harness/docs/rfc/implemented/feature
imccyu 3e9527278a fix(tool-cordis): gate façade services on inject, and make tools.get read-only
Two review findings (#220) on the sandbox context façade:

- Undeclared services were reachable: the façade resolved any live global via
  ctx.get(name), so ctx.bash worked without inject: ['bash']. A cross-mount
  consumer could then depend on a provider cordis never saw — unmounting the
  provider would neither park the consumer nor unwind its registered tools,
  leaving a model-visible tool that fails only at execution. The façade now
  reads ctx.fiber.inject and refuses any service the mount did not declare
  (with a teaching error naming the inject fix), so the dependency is always
  visible to cordis and its activation/unload semantics bind.

- ctx.tools.get returned the live ToolDefinition, including execute — mount
  code could call another tool directly and bypass ToolRegistry.execute and
  its pre/post-execute hooks and accounting. get now returns the same
  read-only name/description/parameters view as schemas(), never an invocable.

Adds inject-gate and schema-view regression cases to sandbox-context.spec.ts
(undeclared property/get denied, declared allowed, the cross-mount zombie-tool
scenario refused at call time, get exposes no execute). Package stays at
per-file 100% coverage. RFC, mount description, and tool-catalog updated.
2026-07-09 13:57:03 +08:00
..
2026-06-17-filesystem-tool-schemas.md docs(rfc): define and enforce a uniform RFC format; adopt it across the corpus 2026-07-05 22:58:25 +08:00
2026-06-18-acp-terminal-and-tool-rendering.md docs(rfc): define and enforce a uniform RFC format; adopt it across the corpus 2026-07-05 22:58:25 +08:00
2026-06-18-compaction-capability-seam.md docs(rfc): define and enforce a uniform RFC format; adopt it across the corpus 2026-07-05 22:58:25 +08:00
2026-06-21-subagent-capability-seam.md docs(rfc): define and enforce a uniform RFC format; adopt it across the corpus 2026-07-05 22:58:25 +08:00
2026-06-22-acp-subagent-backend.md docs(rfc): define and enforce a uniform RFC format; adopt it across the corpus 2026-07-05 22:58:25 +08:00
2026-06-29-todo-write-tool.md docs(rfc): define and enforce a uniform RFC format; adopt it across the corpus 2026-07-05 22:58:25 +08:00
2026-06-30-hook-bridges.md docs(rfc): define and enforce a uniform RFC format; adopt it across the corpus 2026-07-05 22:58:25 +08:00
2026-06-30-hook-protocol-lib.md docs(rfc): define and enforce a uniform RFC format; adopt it across the corpus 2026-07-05 22:58:25 +08:00
2026-06-30-interception-seams.md docs(rfc): define and enforce a uniform RFC format; adopt it across the corpus 2026-07-05 22:58:25 +08:00
2026-06-30-session-store-fork-api.md Inline session fork parameters 2026-07-07 09:04:49 +08:00
2026-06-30-subagent-observe-enrich.md docs(rfc): define and enforce a uniform RFC format; adopt it across the corpus 2026-07-05 22:58:25 +08:00
2026-07-06-explicit-tool-order.md feat: add assembly-time validation rejects placeholder 2026-07-07 22:03:12 +08:00
2026-07-08-repeat-tool-guard.md fix review finding: cap the detailed reminder's argument payload 2026-07-08 14:40:08 +08:00
2026-07-08-self-referential-cordis-toolset.md fix(tool-cordis): gate façade services on inject, and make tools.get read-only 2026-07-09 13:57:03 +08:00