rfc(0008): vendor agent event I/O contract as pinned base#1
Merged
Marvinthebored merged 1 commit intoJun 15, 2026
Conversation
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.
There was a problem hiding this comment.
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.mddefining 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
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]>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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
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 therfcs/0007/precedent.docs/channels/agent-event-io-contract.md(which 404s on openclawmain) to the now-real0008/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 onmain. 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:
Still yours to drive
[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.STATUS.mdsays 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.