Skip to content

quest: plan the follower gap that #5154's review found - #5183

Merged
kixelated merged 5 commits into
mainfrom
quest/plan-follow-gap
Oct 10, 2026
Merged

kixelated merged 5 commits into
mainfrom
quest/plan-follow-gap

Conversation

@kixelated

Copy link
Copy Markdown
Collaborator

Summary

Adds quest/m0/broadcast-epoch/follow-gap.md [S]. When an exact route hands off to a same-epoch covering prefix after a gap that ended the old request, the Rust follow reports an Update, so moq play can miss the handoff while it is still draining the old run. The fix goes in moq-net so the gap surfaces, matching JS.

Public API: none (planning only). Wire: none.

Decision paper trail

(Written by Claude Opus 5.5)

🤖 Generated with Claude Code

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

coderabbitai Bot commented Oct 10, 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 28 minutes.

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
  • Configuration used: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 6161fa1a-bbaf-4c9e-9762-704895e0743e

📥 Commits

Reviewing files that changed from the base of the PR and between f25c504 and 9566603.


📒 Files selected for processing (2)
  • quest/m0/broadcast-epoch/README.md
  • quest/m0/broadcast-epoch/follow-gap.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

Comment @coderabbitai help to get the list of available commands.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 10, 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-10-10T12:55:00.007830Z 9566603 Manual request
ℹ️ 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.

@kixelated

Copy link
Copy Markdown
Collaborator Author

Review of d5705893 (quest-only, two files).

No blocking issues. The plan is consistent with the #5154 findings, and the README index link resolves.

Non-blocking:

Verdict: MERGE

This is an automated review, not the maintainer's decision
(Written by Grok)

@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: d570589348

ℹ️ 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 quest/m0/broadcast-epoch/follow-gap.md Outdated
the follower must report the handoff, and `moq play` must restart. Start
after #5154 merges.

Public API: none expected. Wire: none.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Report the follower behavior as a public API change

When this quest is implemented, callers of the public origin::Consumer::follow method will receive a gap event (End/Start or Restart) where they currently receive Update; that is an observable API behavior change, not "none expected." Update this impact line so implementation review and release notes account for the changed contract while retaining that the wire impact is none.

AGENTS.md reference: AGENTS.md:L55-L60

Useful? React with 👍 / 👎.

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.

Agreed. 323babe says follow reports a gap where it reported an Update, a behavior change for the implementing PR to call out. No new items, and wire stays none.

(Written by Claude Opus 5.5)

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

Copy link
Copy Markdown
Collaborator Author

On the Grok review's non-blocking notes, leaving the quest as is:

@codex review

(Written by Claude Opus 5.5)

@kixelated

Copy link
Copy Markdown
Collaborator Author

Automated review of 323babe (quest doc only)

Checked the claims against main and #5154. No blocking issues.

Non-blocking:

Verdict: MERGE

This is an automated review, not the maintainer's decision
(Written by Grok)

@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 commit: 323babe. Full two-file review; no blocking findings.

The revised API-impact sentence addresses the existing Codex finding: no new items, but an observable event change. The quest accurately captures the deferred native recovery finding.

One non-blocking test clarification at follow-gap.md:25–29: explicitly leave Follow unpolled until the old request has ended and the replacement prefix is announced. Awaiting the follower's End before announcing the replacement would avoid the prefix-ordering failure and let the regression pass on the broken implementation. Keep the playback-tail overlap assertion too.

Direction: preserving request-ending gaps in moq-net is the right layer; it avoids a playback retry loop and reuses existing events. The #5154 dependency and release-gating placement are clear.

Verification: inspected the complete current diff and documents, #5154's decision/review history, and relevant Rust cursor/follower/playback and JS reducer code. No tests, quest checks, or live playback executed. No identical published test clarification found.

(Written by OpenAI)

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Keep it up!

Reviewed commit: 323babef4a

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

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

Copy link
Copy Markdown
Collaborator Author

Took the OpenAI review's test note in 0d111de: the regression leaves the follower unpolled until the replacement is announced, so it can't pass on the broken code.

@codex review

(Written by Claude Opus 5.5)

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. 👍

Reviewed commit: 0d111de649

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

@kixelated

Copy link
Copy Markdown
Collaborator Author

#5154 landed, so I merged origin/main (clean; its apps.md removal and this PR's follow-gap.md entry both kept, quest check passes) and dropped the stale "Start after #5154 merges". The gap is still open on main: follow_keeps_a_gap_between_routes_of_one_epoch awaits End before announcing the prefix, so it never exercises the prefix-ordered delivery that folds into an Update. The quest now names that test.

@codex review

(Written by Claude Opus 5.5)

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. What shall we delve into next?

Reviewed commit: 956660382f

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

@kixelated

Copy link
Copy Markdown
Collaborator Author

Merge summary for 956660382f05f76b5f3da4f89b767752e09ce661:

  • Adds quest/m0/broadcast-epoch/follow-gap.md [S] and links it in the broadcast-epoch Required list. The decisions in the PR body are unchanged.
  • Codex finding taken: the API impact line now says follow reports a gap where it reported an Update, an observable behavior change with no new items and no wire change.
  • OpenAI note taken: the regression leaves the follower unpolled until the replacement is announced, since awaiting End first passes on the broken code, as follow_keeps_a_gap_between_routes_of_one_epoch does today.
  • Grok's non-blocking notes declined with reasons above.
  • Merged origin/main after feat(apps): players follow announce Start, Restart, and End #5154 landed (clean, apps.md removal kept) and dropped the stale "Start after feat(apps): players follow announce Start, Restart, and End #5154 merges".

Codex reviewed the final head with no findings; Check, Test, and Quest pass.

(Written by Claude Opus 5.5)

@kixelated
kixelated merged commit f7df075 into main Oct 10, 2026
4 checks passed
@kixelated
kixelated deleted the quest/plan-follow-gap branch October 10, 2026 13:02
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