docs: multi-harness design + runtime-binding contract amendments (#92) - #93
docs: multi-harness design + runtime-binding contract amendments (#92)#93ashwin-pc wants to merge 1 commit into
Conversation
- docs/multi-harness-design.md: agent-neutral session contract, AgentAdapter seam, ACP-first bindings with per-harness escalation, two-tier differentiator rule (union variants vs contribution-kernel panels), side-channel shapes, delivery plan and validation strategy. - docs/runtime-binding-design.md: record the #92 amendments (typed event union, capabilities block, interaction channel, {runtimeId, harnessId} bindings) at the Stage-2/3 contract seam.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 7a467df163
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| ``` | ||
|
|
||
| Bindings map `sessionId -> RuntimeRef`. Cwd history is runtime-relative. The drawer may render cached locator rows immediately and reconcile in the background, but a successful authoritative runtime listing is required before removing stale rows. | ||
| Bindings map `sessionId -> { runtime: RuntimeRef, harnessId: HarnessId }` (amendment #4; harness routing may land after runtime routing, but the store schema reserves the field). Cwd history is runtime-relative. The drawer may render cached locator rows immediately and reconcile in the background, but a successful authoritative runtime listing is required before removing stale rows. |
There was a problem hiding this comment.
Unify the binding-store value shape
When Stage 4 implementers follow this runtime-model definition, they will persist { runtime: RuntimeRef, harnessId }, while the amendment at line 5 and the companion contract/delivery sections specify { runtimeId, harnessId }. These formats are incompatible—the former retains kind, cwd, and sandboxId, while the latter names only an identifier—so separate tracks could implement mutually unreadable binding stores. Choose one canonical schema and use it throughout both documents.
Useful? React with 👍 / 👎.
|
Closing per repo workflow: plans live in issues, PRs only when explicitly requested. Full design doc content moved to #92. |
Summary
Documentation-only PR for #92: adds
docs/multi-harness-design.md(companion todocs/runtime-binding-design.md) and records the #92 contract amendments in the runtime design doc so the two tracks share one seam definition before Stage 3 freezes the runner wire protocol.What's in the design doc
AgentSessionEventtypes mapped — disposition table in the #92 Track-0 comment),capabilitiesDTO block, generic interaction request/respond channel,{runtimeId, harnessId}binding schema, plus thenever-ratchet and replay-fixture loss-prevention mechanics.AgentAdapterseam replacingPiWebSession(interface sketch; pi adapter contains all pi coupling; mock becomes a real contract test double).plan_update,subagent_*, interactions, compaction/usage) become union variants; harness-unique surfaces (Hermes memory/skills/automations, Claude task control/rewind/context breakdown, Codex review/quota/aggregate diff) ride the contribution kernel via per-harness side channels. Documents the three structurally different side-channel shapes (Hermes: side server; Claude:Query-bound → SDK-direct flip; Codex: same server, upstream adapter enhancements first).Runtime doc amendment
Surgical: an amendments callout under the title, the event-boundary sentence updated (typed union instead of raw pi events verbatim), and the Stage-4 binding map extended to
{runtimeId, harnessId}. Everything else in the reviewed plan is unchanged.Related
Docs only — no code changes; typecheck/tests unaffected.