Repository navigation
Conversation
Quest-Claim: cd6ce8f06d2b131e
Record sweep_handoff and sweep_scoped_handoff under the path rule as traces of RouteHandoff.tla and check each with TLC (RouteTrace.tla, sh/tla-trace.py, test route-trace). The model grows where the router had drifted from it: a route goes to a stream only while a claim meets it, timers due together fire in one update, and an ended stream forgets what it reflected. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…o m3 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Collaborator
Author
|
Closing per the maintainer's pick (2026-11-15, /quest-complete). #8764 settled route-trace-validation the other way: the exhaustive route search takes over (Written by Claude Opus 5.5) |
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.
Paused: the milestone audit (moq-dev/moq#8637) moved this quest to
quest/m3/route-trace-validation.md, after this session's m0-m2 scope. The work is complete and validated locally; what is left is listed under Waiting and in the quest's Plan.Summary
Every run of
sweep_handoffandsweep_scoped_handoffunder the path rule can be checked as a behaviour ofRouteHandoff.tla(TLA+ trace validation):route::tests::Simrecords a run as newline-delimited JSON (rs/moq-net/src/route/tests/trace.rs, on whenMOQ_ROUTE_TRACEnames a directory): each step is a model action with its arguments, the messages it sent, and each touched relay's route and shown claims.rs/moq-net/verify/route/trace/RouteTrace.tlafollows a trace through the model's own actions and compares every message and state (Agrees), plus the model's rules exceptStable.sh/tla-trace.pyruns TLC per trace (reusable for the resume, reconnect, and subscribe models;rs/moq-net/verify/README.mdTrace validation).test route-traceruns it in Nightly on a fresh window of 150 scenarios per sweep (MOQ_ROUTE_TRACE_FROM).sh/tla.shskipstrace/directories.Meets, theemptywant,Withdraw), timers due together fire in one update (TimeoutreplacesLift/Expire), and an ended stream forgets what it reflected (Collectprunessrc, which made the model hold for a stale child the router ignores).Decisions
All taken by the agent under /quest-afk, for the maintainer's review:
sweep_handoffrunschurn's newShape::Model: one origin whose every claim change changes a claim, with no restart and no collection.the_rules_agree_on_every_scriptkeepsShape::Full, which already ran the same checks under the path rule. The client, a leaf that offers no route, is dropped from the traces with its grant and interest edits. Rejected: growing the model to several publishers, restarts, grants, and interest edits (XL, and four open PRs editRouteHandoff.tla).Stableout of the trace check and file stable-repath. Rejected: failingtest route-traceuntil the rule changes.Follow-ups
quest/m2/cluster-routes/stable-repath.md[M]:sweep_handoffscenario 139 is accepted by the model and breaksStable. A relay drops available claims offline when its next hop re-paths through a session it knows closed. Open decision: hold under that next hop (recommended) or narrowStable.Validation
RouteTrace.tlaon the pinned TLC 1.8.0 and CommunityModules 202311011627 jars, before and after merging main. Before the three model fixes, 20 failed.select's tie-break fails 9 traces, and a hold turned into an end fails 101, while both sweeps pass. Dropping the withdrawal batch from a DEAD report, and not forwarding an advanced floor, fail none: the sweeps never reach those paths.rs/moq-net/verify/route/*.cfgpasses on the grown model with itsSimulate:line.RouteHandoff.cfgnow has 29,229 distinct states, down from 476,515, because routes no longer flow before a claim exists.just rs test -p moq-net --lib -E 'test(/route::/)': 211 passed.just fixandjust check, andtest route-tracethroughsh/tlc.py. This host's Nix daemon hung fetchingtla2tools.jar, so TLC ran from the same jars by hand.Impact
Public API: none. Wire: none. Test-only additions in
moq-net:Simhooks,path::Router::session(test) anddue.Waiting
just fix/just check, refresh the state-count table in.claude/skills/verify-route/SKILL.md, runjust test route-tracethroughsh/tlc.py,/quest-review, mark ready.Models
Size: L
Implementer: Claude Code, claude-opus-5-5, unknown effort
🤖 Generated with Claude Code
(Written by Claude Opus 5.5)