Skip to content

rfc(0008): vendor agent event I/O contract as pinned base#1

Merged
Marvinthebored merged 1 commit into
Marvinthebored:0008-provider-stream-grammarfrom
ragesaq:add-agent-event-io-contract-0008
Jun 15, 2026
Merged

rfc(0008): vendor agent event I/O contract as pinned base#1
Marvinthebored merged 1 commit into
Marvinthebored:0008-provider-stream-grammarfrom
ragesaq:add-agent-event-io-contract-0008

Conversation

@ragesaq

@ragesaq ragesaq commented Jun 15, 2026

Copy link
Copy Markdown

Posting the agent event I/O contract into RFC 0008 as a pinned, in-tree base, per our discussion about giving it a durable home to develop further.

What this does

  1. Adds rfcs/0008/agent-event-io-contract.md — the full contract (provider input contract, gateway session-mirror contract, channel output contract, test contract, and the hidden-ClickClack-commentary regression example) as a doc sidecar, matching the rfcs/0007/ precedent.
  2. Repoints the RFC's base reference from docs/channels/agent-event-io-contract.md (which 404s on openclaw main) to the now-real 0008/agent-event-io-contract.md, so the four [AMENDS BASE] points have a target that actually exists.

Branch is based on this RFC's head, so the diff is just the contract file (+351) and that one reference line.

Why it lives here

The contract was extracted from openclaw/openclaw #92216. The upstream maintainer asked that it be split out of that behavior PR so it could be owned and edited separately from runtime code — which is exactly why the docs/channels/... path isn't on main. An RFC sidecar is that separately-ownable home, so reviving it here satisfies the original split-out request rather than working around it.

What this resolves

This closes the base half of the two base-contract review findings:

  • "base-contract path / #92216 do not contain the claimed base contract" — the base now exists in-tree and is pinned with the RFC.
  • "normative contract lives in a mutable personal companion repo" — the contract half is now vendored into the durable RFC tree (the wire-capture evidence + harness can stay in the companion repo as design evidence).

Still yours to drive

  • Fold the four [AMENDS BASE] amendments into the contract text. Right now they're called out in the RFC narrative; your Unresolved-questions note is right that an implementer of the base alone should see them. I left the contract as the as-split baseline so we reconcile the four amendments against it together rather than my guessing the deltas.
  • Harness count (P3): RFC says 35 passing; companion STATUS.md says 37/28. Your call which to sync/pin.

Happy to adjust path, framing, or co-authorship however reads best to you — this is meant to give your grammar a solid base to amend, not to redraw it.

Add the agent event I/O contract that RFC 0008's [AMENDS BASE] points
extend, as the in-tree sidecar rfcs/0008/agent-event-io-contract.md, and
repoint the RFC's base-contract reference from the dead
docs/channels/agent-event-io-contract.md path to it.

The contract was extracted from openclaw/openclaw #92216; the upstream
maintainer asked that it be split out of that behavior PR so it could be
owned and edited separately from runtime code. This RFC sidecar is that
separately-ownable home, and gives the four [AMENDS BASE] points a real,
pinned target instead of a path that 404s on openclaw main.

Resolves the two base-contract review findings (wrong/missing base path;
normative contract living in a mutable external repo) for the base half.
Copilot AI review requested due to automatic review settings June 15, 2026 17:01

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Note

Copilot was unable to run its full agentic suite in this review.

Adds a standalone “Agent Event I/O Contract” document as the base contract for RFC 0008, and updates the RFC narrative to reference this vendored contract file.

Changes:

  • Introduces rfcs/0008/agent-event-io-contract.md defining normalized provider→runtime→gateway→channel event semantics.
  • Updates RFC 0008 to link to the vendored base contract and describe its provenance.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 3 comments.

File Description
rfcs/0008/agent-event-io-contract.md New base contract doc specifying normalized event envelope, stream semantics, and mirroring rules.
rfcs/0008-provider-stream-grammar.md Updates RFC text to reference the new vendored base contract path.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +140 to +141
- `stream: "command_output"`, `patch`, `approval`, `plan`, and `compaction` for their typed
activity surfaces.
Comment on lines +171 to +172
- Use `suppressChannelProgress: true` only when another sibling event already carries the channel
progress for the same item.
Comment on lines +235 to +236
Live progress events may use `dropIfSlow: true` because they are incremental. Final user-visible
answer delivery must not depend on a drop-if-slow event path.
@Marvinthebored
Marvinthebored merged commit 5d04a48 into Marvinthebored:0008-provider-stream-grammar Jun 15, 2026
Marvinthebored pushed a commit that referenced this pull request Jun 15, 2026
…act; sync harness count

Addresses ragesaq's two follow-ups on #1 and clawsweeper's P3:
- Fold §3.2 (thinking emission unconditional, never dropped), §3.3 (item start at
  earliest id+name), §5.1 (thinking mirrored on its own stream, not as commentary),
  §7.3 (stable/composite idempotency ids, no synthesized counters) into
  rfcs/0008/agent-event-io-contract.md, each marked inline "[RFC 0008 amendment]"
  so the as-split #92216 baseline stays distinguishable.
- Repoint the RFC Unresolved note: amendments folded (no longer pending).
- Sync harness count 35 -> 37 tests / 28 goldens to match companion STATUS.md.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants