S1: contracts (wire, plugin/action, shim, bootstrap) #10

Closed
opened 2026-10-05 15:32:06 +00:00 by kayg · 4 comments
Owner

Write the contracts before S1 code. Claude writes them. The owner reviews anything that changes behavior.

  • contracts/wire.md: frame layout, stream multiplexing, sequence numbers and resume, flow control, versioning, the frozen upgrade handshake (decisions 11, 12, 17)
  • contracts/plugin.md: the plugin interface (agent, server and UI parts), its versioning, and the format of an action definition: schema, permission, handler, dry-run, adapters (decisions 15, 16, 29)
  • contracts/shim.md: the shim ↔ agent interface (frozen), PTY ownership, reattach, the snapshot for resume (decision 13)
  • contracts/bootstrap.md: SSH in, detect the mode, install, enroll, auto-upgrade and rollback (decisions 17, 18)
Write the contracts before S1 code. Claude writes them. The owner reviews anything that changes behavior. - [ ] `contracts/wire.md`: frame layout, stream multiplexing, sequence numbers and resume, flow control, versioning, the frozen upgrade handshake (decisions 11, 12, 17) - [ ] `contracts/plugin.md`: the plugin interface (agent, server and UI parts), its versioning, and the format of an action definition: schema, permission, handler, dry-run, adapters (decisions 15, 16, 29) - [ ] `contracts/shim.md`: the shim ↔ agent interface (frozen), PTY ownership, reattach, the snapshot for resume (decision 13) - [ ] `contracts/bootstrap.md`: SSH in, detect the mode, install, enroll, auto-upgrade and rollback (decisions 17, 18)
Author
Owner

Started by Claude. Branch s1-contracts, base 4560d9d (main). Order: shim.md and plugin.md first (they do not depend on the spikes), then wire.md (it waits for the numbers from #12), then bootstrap.md.

Started by Claude. Branch `s1-contracts`, base `4560d9d` (`main`). Order: shim.md and plugin.md first (they do not depend on the spikes), then wire.md (it waits for the numbers from #12), then bootstrap.md.
Author
Owner

Progress on branch s1-contracts (head 004277f):

  • contracts/shim.md (8111d1d): the frozen v1 framing, VT state in the shim, exactly-once resume by byte offset, survival through systemd scopes plus KillMode=process, SO_PEERCRED.
  • contracts/plugin.md (004277f): the PluginDescriptor and the ActionDef. Adapters (HTTP, CLI, MCP, search capsule) are generated from contracts/generated/actions.json. Destructive actions need a dry run, a passkey tap or --yes. Calls follow one path: authorize → audit. One event bus.
    What remains: wire.md (waits for the numbers from #12) and bootstrap.md.
Progress on branch `s1-contracts` (head `004277f`): - `contracts/shim.md` (`8111d1d`): the frozen v1 framing, VT state in the shim, exactly-once resume by byte offset, survival through systemd scopes plus KillMode=process, SO_PEERCRED. - `contracts/plugin.md` (`004277f`): the PluginDescriptor and the ActionDef. Adapters (HTTP, CLI, MCP, search capsule) are generated from `contracts/generated/actions.json`. Destructive actions need a dry run, a passkey tap or `--yes`. Calls follow one path: authorize → audit. One event bus. What remains: `wire.md` (waits for the numbers from #12) and `bootstrap.md`.
Author
Owner

All four contracts are drafted on s1-contracts (head d731975): shim.md, plugin.md, bootstrap.md, wire.md. They are ready for the owner to review. Blocking for S1: the TLS/certificate strategy (WebTransport and passkeys both need a trusted HTTPS page). It is raised in the S1 grill.

All four contracts are drafted on `s1-contracts` (head d731975): shim.md, plugin.md, bootstrap.md, wire.md. They are ready for the owner to review. Blocking for S1: the TLS/certificate strategy (WebTransport and passkeys both need a trusted HTTPS page). It is raised in the S1 grill.
Author
Owner

Closed by the orchestrator during the 2026-10-28 handover (#254), on the owner's request to close finished issues. Evidence: Contracts (shim, plugin, bootstrap, wire) drafted at d731975 which is in dev and prod; wire.md updated for D63 and implemented by the merged lanes. Reopen if anything is still missing.

Closed by the orchestrator during the 2026-10-28 handover (#254), on the owner's request to close finished issues. Evidence: Contracts (shim, plugin, bootstrap, wire) drafted at d731975 which is in dev and prod; wire.md updated for D63 and implemented by the merged lanes. Reopen if anything is still missing.
kayg closed this issue 2026-10-28 17:52:05 +00:00
Sign in to join this conversation.
No labels
launch-qa
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
kayg/infraternal#10
No description provided.