Skip to content

feat(docs): replay the Relay tutorial from its page - #1609

Merged
jeremi merged 5 commits into
mainfrom
feat/tutorial-runner-relay
Sep 27, 2026
Merged

jeremi merged 5 commits into
mainfrom
feat/tutorial-runner-relay

Conversation

@jeremi

@jeremi jeremi commented Sep 27, 2026

Copy link
Copy Markdown
Member

Fourth product on the page-as-spec runner (after BReg #1572, Casework #1573, Evidence #1602). Replaces check-relay-tutorial.sh with node scripts/run-tutorial.mjs --gate relay.

Runner

  • test-append: a titled block the page asks the reader to add to the end of a file. The Relay contract is written across eleven blocks: the first is test-file, the other ten are test-append. Same error discipline as the other annotations (not on sh fences, needs title=, no diff blocks, one role per block).
  • relay toolset (relay, relayctl; RELAY_BIN/RELAYCTL_BIN, RELAY_TUTORIAL_CARGO_PROFILE), with pattern tests against paths like cd work/relay and relay.yaml.
  • gate.test.mjs fixtures use the [^\w./-] command boundary from feat(docs): replay the Evidence tutorials with the page runner #1602.

Page (publish-governed-sqlite-registry)

  • The schema fingerprint and the classification inventory digest are deterministic for this page's SQL and contract, so the page shows the literal values instead of sha256:<...> placeholders the old gate substituted. The prose says what to do when a reader's value differs.
  • The record answer is shown in full as test-expect (it was abridged), so the absence of registeredAddress is checked, not just stated. The narrowed answer checks domainData exactly; the widen and unknown-record problems are test-expect.
  • The audit line is a test-excerpt with the full record object, which proves no field value is in it.
  • The starter review file is an excerpt of the generated file; the prose names the generatedIdentification block it leaves out.
  • Relay is served from a test-background fence on the page's own port.

Other pages

  • query-relay-client runs relay, so the gate requires a declaration. It is skipped with a reason: it installs the released client package at the running Relay's version and needs the Relay from the first tutorial still serving. Making it replayable needs the Evidence-style client-wheel setup plus a cross-page background service; worth its own change.

CI

  • The relay-v2-contracts job gets Node, npm ci, the runner tests, the dry run, a toolset build, and the replay.
  • RELAY_TUTORIAL_INPUTS now lists the runner and uses glob matching, with a frontmatter parity test like Evidence's.
  • Deletes check-relay-tutorial.sh, its test, and evidence-tutorial-fence.sh (Relay was its last user).

Verification

  • node scripts/run-tutorial.mjs --gate relay locally (macOS, debug binaries): PASS. With registeredAddress added to the shown record, it fails at $.data.domainData: missing key "registeredAddress".
  • Runner tests 90/90; npm test 621/621; check:markdown, check:content, check:style, check:draft-links; check-evidence-anchors; dry runs for every gate; test_ci_changes 121/121; actionlint.

A page that builds one file across several blocks, like the Relay
contract, can now mark each later block test-append instead of asking
the runner to substitute or assemble it. Adds the relay toolset the
Relay tutorial replays against.

Signed-off-by: Jeremi Joslin <jeremi@joslin.fr>
The page is now the specification: the contract blocks append to
registry.yaml, the fingerprint and inventory digest it shows are the
values a reader's run prints, and the full record answer and audit
line prove the address and field values never leave. Retires
check-relay-tutorial.sh and the fence helper it was the last user of.
query-relay-client is skipped until a replay can serve the client
package and a running Relay.

Signed-off-by: Jeremi Joslin <jeremi@joslin.fr>
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 27, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-09-27T10:04:02.992986Z fd671f9 New commits
ℹ️ 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" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 8cd81f886b

ℹ️ 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".

Signed-off-by: Jeremi Joslin <jeremi@joslin.fr>
@jeremi
jeremi enabled auto-merge September 27, 2026 09:17

@chatgpt-codex-connector chatgpt-codex-connector Bot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 3f43352108

ℹ️ 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".

Comment thread docs/site/src/content/docs/tutorials/publish-governed-sqlite-registry.mdx Outdated
…the replay

A subset excerpt passed even when Relay also returned legalForm, and it never checked meta.selectedFields. The narrowed answer is now a full expectation, like the full answer above it.

Signed-off-by: Jeremi Joslin <jeremi@joslin.fr>
Appending with >> creates a missing file, so a block aimed at a misspelled path passed while the later command read the file the page meant.

Signed-off-by: Jeremi Joslin <jeremi@joslin.fr>
@jeremi
jeremi added this pull request to the merge queue Sep 27, 2026
Merged via the queue into main with commit 7b9c012 Sep 27, 2026
55 checks passed
@jeremi
jeremi deleted the feat/tutorial-runner-relay branch September 27, 2026 10:57
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.

1 participant