Skip to content

quest: record 2026-11-04 /quest-unblock decisions and clear resolved waits - #7919

Merged
kixelated merged 2 commits into
mainfrom
quest-unblock/2026-11-04
Nov 4, 2026
Merged

kixelated merged 2 commits into
mainfrom
quest-unblock/2026-11-04

Conversation

@kixelated

@kixelated kixelated commented Nov 4, 2026 •

Copy link
Copy Markdown
Collaborator

Problem

The 2026-11-04 /quest-unblock run settled maintainer decisions and found several outside waits already cleared. Quest files still recorded them as waiting.

Changes

Cleared waits

  • quest/m2/usage-unknown-env.md, quest/m2/usage-settings-once.md: usage-lib 7.2.0 (2026-11-03) ships both asks (jdx/usage#1609, jdx/usage#1610). The Waiting sections are removed, so both quests are ready to implement.
  • quest/m0/ci/five-minutes.md: moq-dev/moq#7632 merged, so the default FFI re-measurement is no longer blocked.
  • quest/m1/crates-trusted-publisher.md: the maintainer finished all 31 published crates. The wait now covers only the 7 crates that need a first publish by token.

Maintainer decisions recorded (each with the options shown, in the quest Plans)

  • Routing identity (routes/session.md, which unblocks 62 quests): ✅ scoped peers prove a route key once per announce stream, before the lite-07 cut. A new quest, Scoped peers prove a route key ([M], m1, under the routes epic and so gating the cut), specifies it:

    • the key comes from a per-operator key file;
    • browsers prove through exportKeyingMaterial when it's available, detected at setup;
    • ROUTE keeps a u64 identity derived from the key.

    This reverses the 2026-10-25 and 2026-11-02 "no identity proof gates the cut" notes in lite07-finalize.md and the routing epics. Design research found that a proven key cannot remove qualification, since forwarded identities and cost lies remain. What it does is make the qualification key unforgeable and work without tokens.

  • Bench calibration (bench-ci.md): the maintainer authorized a one-time agent dispatch of the two A/A Nightly runs. The first is run 41921320690; the second is queued behind it, because Nightly cancels an in-progress run. The slowed-bench run stays with the maintainer.

  • Release cuts (ffi-shutdown-backport.md, publish-release-only.md): ✅ the combined patch cut on release comes soon, after docs(quest): finish release hardening backport #7596's ports and fix(net): backport the joined-head FETCH race fix to release #7680. Merging main into release follows separately.

Milestone choice: the new proof quest joins m1 without a question, because it gates the lite-07 cut, which is m1.

Decision prompts

  1. Routing key: ✅ a proven key before the cut / a route label in the grant now, with the key later / a per-session key now.
  2. Key source: ✅ a key file shared per operator / a fresh key per process.
  3. Browser proof: ✅ the exporter where available / browsers stay unproven.
  4. Identity width: ✅ a u64 derived from the key / the full 32-byte key.
  5. A/A dispatch: ✅ authorize the agent / maintainer dispatches / skip.
  6. Release cuts: ✅ patch cut soon and main later / both together / not this week.

Impact

Quest tree only. Public API: none. Wire: none (the proof quest plans a lite-07 wire change).

Validation

  • quest check --base origin/main: 591 documents ok.
  • CHECK_MODULES=markdown just check: pass.

Review

Round 2: quest review (Codex gpt-6.1-sol, medium) at db6fc2a0a4: 0 findings. Responses to the online review of b44105818c:

  • P2, a relay's own route across the other uplink: fixed. Every identity a scoped, proven peer sends is now qualified, its own included, matching the 2026-10-26 rule. Relays sharing a key file therefore fail over as one, and proof.md asks for the two-uplink fixture to cover l1's own broadcast.
  • P2, the second A/A dispatch: fixed. bench-ci.md now records it as pending, with the dispatch command.

Round 1 at b44105818c: 0 findings.

🤖 Generated with Claude Code

(Written by Claude Opus 5.5)

…waits

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@kixelated
kixelated marked this pull request as ready for review November 4, 2026 22:52
@coderabbitai

coderabbitai Bot commented Nov 4, 2026 •

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 1 minute.

Check out review usage here.

View limit details

Limit details: You’ve used all 4 included reviews currently available.

Learn how review limits work.

Review configuration:

Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 5a3b09fb-7dcb-4957-a054-9898ea91dea9
Commits

Reviewing files that changed from the base of the PR and between 0eee916 and db6fc2a.

Files selected for processing: 12
  • quest/m0/ci/five-minutes.md
  • quest/m0/ci/publish-release-only.md
  • quest/m0/ffi-shutdown-backport.md
  • quest/m1/bench-ci.md
  • quest/m1/cluster-routing/README.md
  • quest/m1/cluster-routing/routes/README.md
  • quest/m1/cluster-routing/routes/proof.md
  • quest/m1/cluster-routing/routes/session.md
  • quest/m1/crates-trusted-publisher.md
  • quest/m1/lite07-finalize.md
  • quest/m2/usage-settings-once.md
  • quest/m2/usage-unknown-env.md
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

@kixelated kixelated left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Automated review by review (OpenAI)

Reviewed head b44105818c49a637cd0ea2a245eb781aed06b7d4 against base 0eee916849a57335effff60213d0c473b0193848.

P2: Preserve a relay's own route across the other uplink — quest/m1/cluster-routing/routes/proof.md:7-10, 23-27. The new rule files a directly proven peer's own identity bare but qualifies every identity it forwards. In the cited two-uplink topology, relay L1's own origin 20 reaches C1 directly as bare 20, while L2 forwards that same origin to C2 as qualified(K, 20), even though L1 and L2 share K. If L1's direct uplink fails, a reader of its own broadcast cannot move to the qualified alternate as the same route. The named fixture currently checks failover for external origin 9, but only checks that L1's own 20 exists on C1. Settle how the same own origin is represented through a sibling without letting a scoped peer forge somebody else's identity, and extend the failover fixture to serve L1's own broadcast and lose its direct uplink.

P2: Keep the second A/A dispatch as outstanding until it happens — quest/m1/bench-ci.md:14-17, 21-25. The plan says the second run was dispatched after the first finished and leaves only reading both artifacts. At review, the linked first run 41921320690 is still in_progress, so that sequence has not completed. Someone following the waiting item could search indefinitely for a second run rather than dispatch it after the first ends. Record it as pending (or link the actual second run once dispatched) and retain the instruction to dispatch after the first finishes.

Verification: GitHub-only review of the plans, route fixture and current Actions run state. I did not implement the proof, run routing tests, or inspect benchmark artifacts.

(Written by review (OpenAI))

@pullfrog pullfrog Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

✅ No new issues found.

Reviewed changes

This run reviewed the single commit b44105818 that records the 2026-11-04 /quest-unblock decisions and clears resolved waits across 12 quest documents.

  • New proof quest: quest/m1/cluster-routing/routes/proof.md ([M]) specifies scoped peers proving a route key once per announce stream before the lite-07 cut, with a nonce in ANNOUNCE_REQUEST and a session-bound signature in ANNOUNCE_OK; linked from the routes quest list and the routing epics.
  • Reversed prior decisions: lite07-finalize.md, cluster-routing/README.md, and routes/README.md now record the 2026-11-04 reversal of the 2026-10-25/2026-11-02 "no identity proof" notes; the proof quest gates the cut and joins m1.
  • Cleared waits: usage-settings-once.md and usage-unknown-env.md (usage-lib 7.2.0 ships both asks), m0/ci/five-minutes.md (#7632 merged 2026-11-04), and m1/crates-trusted-publisher.md (31 published crates done; wait narrowed to the 7 crates needing a first publish by token).
  • Recorded decisions: bench-ci.md authorizes a one-time agent dispatch of the two A/A Nightly runs; publish-release-only.md and ffi-shutdown-backport.md record the combined patch cut on release soon, with main merged into release separately later.
  • session.md: replaces the long "What the key is for" analysis with a pointer to proof.md, listing the four options shown and the research conclusion.

The new quest is linked from every relevant README and the epic; the cleared waits match the PR body's evidence; no dangling identifiers or broken links were found in the changed quest tree. The plan's browser-support claim has a per-session-key fallback, so a stale compatibility note would not block the design. Minor wording and chronology observations in the decision logs are low-stakes documentation polish rather than behavioral findings.

Pullfrog  | View workflow run | Using deepseek-v4.1-flash-1017 (free via Pullfrog for OSS) | 𝕏

…atch pending

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@kixelated

Copy link
Copy Markdown
Collaborator Author

Both P2 findings are fixed in db6fc2a: a scoped, proven peer's own identity is now qualified like the identities it forwards (the 2026-10-26 rule), and bench-ci.md keeps the second A/A dispatch pending with its command.

(Written by Claude Opus 5.5)

@kixelated
kixelated added this pull request to the merge queue Nov 4, 2026

@kixelated kixelated left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Automated review by review (OpenAI)

Reviewed head db6fc2a0a41aa36d1e92f789cfeccc07edb5c313 against base 0eee916849a57335effff60213d0c473b0193848, incrementally from b44105818c49a637cd0ea2a245eb781aed06b7d4.

Both prior findings are addressed in the plan. Every identity from a scoped proven peer, including its own, is now qualified by the shared key, and the two-uplink fixture is to exercise an L1-owned broadcast losing its direct uplink. The benchmark quest now leaves the second A/A dispatch pending until the first completes; the linked first run was still in progress when checked. No new actionable finding in this delta.

Verification: GitHub-only static plan comparison and Actions run-state inspection. I did not implement or run the routing fixture or inspect benchmark artifacts.

(Written by review (OpenAI))

@pullfrog pullfrog Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

✅ No new issues found.

Reviewed changes

This run incrementally re-reviewed commit db6fc2a0a, which fixes both P2 findings from the prior external review of b44105818; no new concerns.

  • Own identity qualified — proof.md, cluster-routing/README.md, routes/README.md, and session.md now state that every identity a scoped, proven peer sends, its own included, is filed under H(domain, proven key, id), and proof.md records why (bare ids on one path and qualified keys on the other would not fail over).
  • Failover fixture extended — the proof plan adds extending the two-uplink fixture so relay l1 serves its own broadcast, loses its direct uplink, and the reader fails over through l2.
  • Second A/A dispatch kept pending — bench-ci.md now records run 41921320690, marks the second A/A dispatch as not yet done as of 2026-11-04, and keeps the after-the-first-finishes instruction with the gh workflow run nightly.yml --ref main -f bench-base=<main's head> command, verified against the workflow's bench-base input.

Pullfrog  | View workflow run | Using deepseek-v4.1-flash-1017 (free via Pullfrog for OSS) | 𝕏

Merged via the queue into main with commit 4bba7f7 Nov 4, 2026
8 of 9 checks passed
@kixelated
kixelated deleted the quest-unblock/2026-11-04 branch November 4, 2026 23:19
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