test(protocol): publish context graph golden fixtures - #35
Merged
Conversation
There was a problem hiding this comment.
Sorry @macanderson, you have reached your weekly rate limit of 500000 diff characters.
Please try again later or upgrade to continue using Sourcery
macanderson
marked this pull request as ready for review
July 22, 2026 00:32
macanderson
added a commit
that referenced
this pull request
Jul 22, 2026
Resolves the 12 conflict hunks across 7 files. Every conflict was additive — main's consent/egress-scope track (#35, #36, #37) versus this branch's normative sweep — so the resolution is a union in each case, with main's newer normative wording kept where both sides described the same rule. Resolutions: - contextgraph-types/src/lib.rs — union of both module sets and re-exports. - contextgraph-conformance/src/lib.rs — keeps this branch's check_budget (§B1/§B3/§B4, strictly stronger than main's inline respects_budget) and adds main's check_consent_scopes; the runner already calls both. - contextgraph-example-docs — union of imports and of the misbehave modes, so scope-lie joins the branch's eleven. - schema — main's egress_scopes + EgressScope $def, rewritten in the expanded JSON style this branch normalized the file to. - host.rs / host consent.rs / reference-messages.json — main's newer text. Also repairs breakage that predates this merge: the previous merge commit (10808ed) silently dropped ContextFrame::identity() while keeping the content_digest field it feeds, so PR 33's head did not compile against its own tree. identity() is restored and the reference provider now declares a content_digest. rustfmt applied to main's frame_representation_witness.rs, which arrived unformatted. Verified: cargo check/clippy -D warnings clean, fmt clean, schema examples validate, conformance green 6/6 and red 12/12 misbehave modes caught, cargo test 136 passing. Known-red, pre-existing on main and not addressed here: frame_representation_witness::reference_frame_without_inline_content_deserializes fails identically on origin/main — ContextFrame.content is a required String, so a content-less reference frame cannot deserialize. Making it optional is a normative decision that interacts with §B3 canonical token accounting, so it is left for the maintainer.
macanderson
added a commit
that referenced
this pull request
Aug 1, 2026
…og, and backfill the gaps (#73) CHANGELOG.md relied on every PR remembering to write its own [Unreleased] entry. An audit of the 22 merges since v0.1.0 whose numbers never appear in the file found 9 user-visible changes with no entry at all — including the OCP -> CGP rename itself, the repo's biggest breaking change. The Unreleased section had also accumulated duplicate category headings (two '### Added', two '### Changed', two '### Fixed') from PRs appending their own blocks. Go-forward: .github/workflows/changelog.yml watches pushes to main. When a merge lands without touching CHANGELOG.md, it drafts the missing entries from the merge's actual diff (.github/scripts/changelog-ai.sh, Vercel AI Gateway, degrade-open: no key or a failed call is a log line, never a red check) and proposes them as a bot/changelog PR — a draft for human review, never a direct push. The gap is measured from the last commit that touched CHANGELOG.md, so merging the bot PR resets it, and each run regenerates the whole current gap, so a superseded bot PR loses nothing. Backfill: entries for the rename (#1), frame identity/composition/usage reports (#32), golden wire fixtures (#35), ADR 0007 (#61, #27), composition conformance + the canary scheduled-run gate (#70) — written from each PR's diff, in the file's existing voice. Three further audit hits (#68, #69, #71) turned out to be already covered by newer entries and were left alone. Duplicate category headings merged: one heading per category, Keep-a-Changelog order.
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.
Summary
contextgraph/1.0-draftgolden fixture profile for cross-language consumerscontextgraph-conformanceThis is PR 0A of the governed run-evidence implementation described in Oxagen PR #1088. It intentionally does not change the forward-compatible general CGP wire types. Strictness applies only to the pinned evidence-digest profile.
Contract
provenance,relations,kinds, andanchorsmaterialize as empty arrays before JCS hashingVerification
cargo test -p contextgraph-conformance --test golden_fixtures— 7 passedcargo test -p contextgraph-conformance— 18 passedcargo clippy -p contextgraph-conformance --tests -- -D warnings— passedcargo package -p contextgraph-conformance --list --allow-dirty— includes all profile fixtures and the golden testFollow-up
Oxagen PR 0B and Stella PR 0C will vendor these exact bytes and pin the merged upstream revision before their own merges.