Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
169 changes: 0 additions & 169 deletions quest/m1/route-stale-copies.md

This file was deleted.

23 changes: 12 additions & 11 deletions quest/m2/cache-routing-proof.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,13 +29,18 @@ second trip to the maintainer for choosing lite-07.

Reopened 2026-11-11 (maintainer, /quest-plan on the route redesign, epic
Plan item 8): a warm route propagates, and the rule that keeps it free of
loops and stale copies is
[the prototype](/quest/m1/route-stale-copies.md)'s to pick.
The eligibility rule and the fixtures below are for the one-hop warm route
first decided, which [moq-dev/moq#8457](https://github.com/moq-dev/moq/pull/8457)
proves. Once the prototype's pick is recorded, rewrite both for it: the
fixtures keep their meshes, and gain a relay that joins a copy at a neighbour
farther from the publisher than itself.
loops and stale copies is the route's path
([routes epic](/quest/m2/cluster-routing/routes/README.md) Plan item 27,
picked 2026-11-11 on
[moq-dev/moq#8533](https://github.com/moq-dev/moq/pull/8533)). The eligibility rule
and the fixtures below are for the one-hop warm route first decided, which
[moq-dev/moq#8457](https://github.com/moq-dev/moq/pull/8457) proves. Rewrite
both for the pick: the fixtures keep their meshes, and gain a relay that
joins a copy at a neighbour farther from the publisher than itself. Start
from `rs/moq-net/src/route/tests/copies.rs`, which runs that join, two
relays that start carrying together, and a copy that goes, on the prototype
router. It ranks carriers by a hash of the broadcast and the carrier; the
proof settles whether that rank is the rule.

Build on the sans-IO `Router` in `rs/moq-net/src/route/`, which each
origin's `route::Node` drives, and the harness behind its handoff sweeps,
Expand Down Expand Up @@ -80,10 +85,6 @@ Route ID, and the instance, and say which stream carries it and how a peer
that never sends one behaves. Size it against lite-07 and an additive SETUP
extension and record the choice and its reason in the epic's Plan.

## Required

- [A prototype settles what keeps a route free of stale copies](/quest/m1/route-stale-copies.md) - the rule a propagating warm route rests on, which replaces the one this proved

## Related

- [Routes and announces](/quest/m2/cluster-routing/routes/README.md) - the feasibility rules and handoff sweeps this extends
19 changes: 11 additions & 8 deletions quest/m2/cluster-routing/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,16 +39,19 @@ Decided with the maintainer, 2026-10-13:
detection, additional routing recovery, and total interruption separately.
Reopened 2026-11-11 (maintainer, /quest-plan after
[moq-dev/moq#8487](https://github.com/moq-dev/moq/pull/8487)'s reviews):
whether Babel's distance stays is
[the prototype](/quest/m1/route-stale-copies.md)'s to
measure, against paths alone with a withdrawal that names the hop that
died. The distance refuses a longer way round until the publisher advances
its seqno, and refuses a cached copy at a neighbour no closer to the
the distance refuses a longer way round until the publisher advances its
seqno, and refuses a cached copy at a neighbour no closer to the
publisher, which [cache-aware routing](/quest/m3/cache-routing/README.md)
wants to join. Decided the same day: a route is shared per publisher and
per scope, and a relay believes a route by that route's own path, whichever
rule wins. Rejected: link-state among relays, and routes to relays in
place of publishers.
per scope, and a relay believes a route by that route's own path. Rejected:
link-state among relays, and routes to relays in place of publishers.
Decided 2026-11-11 (maintainer, on the measurements of
[moq-dev/moq#8533](https://github.com/moq-dev/moq/pull/8533)): Babel goes. A route is
kept free of loops by its path, a withdrawal that names the hop that died,
holds, and a timed doubt
([routes epic](/quest/m2/cluster-routing/routes/README.md) Plan item 27). A
detour no longer waits on the publisher, and today's router keeps Babel
until [the router quest](/quest/m2/cluster-routing/routes/scope.md) lands.
- An origin declares its own routing identity, fresh per process or tab
restart and shared across its live sessions. It is unverified. Decided 2026-11-02 (maintainer, /quest-unblock): no
key proof is planned; if a use case needs a provable identity, moq-lite-07's
Expand Down
Loading