Context
M9-A0 rerun #114 stopped again at source/type/contract inspection. Result PR #115 contains direct evidence.
The revised design requires two trusted seams:
TrustedModelCallBoundary: a Tiangong-owned pre-provider boundary that verifies immutable Package/bootstrap/authority/session input and prevents the provider request on failure;
TrustedToolExecutionBoundary: a wrapper around every allowed top-level tool executor that synchronously closes ToolResult to control spool before ordinary result release.
Pinned source facts
Against OpenClaw 2026.4.14:
- provider/session execution reaches
activeSession.prompt(effectivePrompt, ...);
- no Trusted boundary implementation or plugin contract exists;
before_prompt_build failure continues to the model path;
before_model_resolve has no block result;
tool_result_persist is synchronous-only and default fail-open;
- no native
before_tool_call timeout enforcement exists;
- current Tiangong capture remains native hook plus local append.
Decision required
Choose exactly one reviewed path:
- an explicit, versioned OpenClaw source patch against the pinned upstream tag that exposes/proves both seams; or
- a different public, version-pinned integration seam with the same direct machine contract; or
- revise the M9 design to reject this pinned OpenClaw integration.
Any patch must record the exact upstream tag, patch ref/digest, license, source inspection, and security impact. No silent upgrade, prompt/Skill workaround, or native observation-hook promotion is allowed.
Exit criteria
- decision reviewed before implementation;
- a source/type/contract rerun passes layer 1;
- only then may layers 2–4 run serially;
- M9-A formal implementation remains blocked until all four layers pass.
Refs #114
Related: #115
Context
M9-A0 rerun #114 stopped again at source/type/contract inspection. Result PR #115 contains direct evidence.
The revised design requires two trusted seams:
TrustedModelCallBoundary: a Tiangong-owned pre-provider boundary that verifies immutable Package/bootstrap/authority/session input and prevents the provider request on failure;TrustedToolExecutionBoundary: a wrapper around every allowed top-level tool executor that synchronously closes ToolResult to control spool before ordinary result release.Pinned source facts
Against OpenClaw
2026.4.14:activeSession.prompt(effectivePrompt, ...);before_prompt_buildfailure continues to the model path;before_model_resolvehas no block result;tool_result_persistis synchronous-only and default fail-open;before_tool_calltimeout enforcement exists;Decision required
Choose exactly one reviewed path:
Any patch must record the exact upstream tag, patch ref/digest, license, source inspection, and security impact. No silent upgrade, prompt/Skill workaround, or native observation-hook promotion is allowed.
Exit criteria
Refs #114
Related: #115