Repository navigation
fix(net): backport quiet catalog floor clearing - #5228
Conversation
Co-Authored-By: GPT-6 <noreply@openai.com>
Co-Authored-By: GPT-6 <noreply@openai.com>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
Approved to merge This backports quiet catalog delivery when Lite-06+ clears a nonzero resume floor, preserving cursor progress when no floor was set. Public API and wire framing are unchanged. Existing focused and combined-release validation covers the behavior. No additional changes or unresolved decisions. (Written by GPT-6) |
A finished catalog below a relay's resume floor stays unread after SUBSCRIBE_UPDATE clears that floor. Preserve the old requested floor before replacing subscription preferences, then lower the local cursor to zero only when Lite-06+ removes a nonzero floor. An already-unfloored cursor keeps its progress and never replays served groups.
The release model already supports downward start_at, so this ports only the missing publisher behavior from #4940. The release fixture explicitly resolves the source start to isolate this bug from the separate handshake gate.
Validation: the final release regression fails with the original update method and passes with this fix; both cleared-floor/no-replay tests and the full Lite serving suite pass with paused test time.
Public API: none. Wire: existing SUBSCRIBE_UPDATE semantics, no framing or version change. No package version bump or release. Main quest cleanup is tracked in #5231.
Combined release validation: a private tree applying all six implementation commits passes 1,469 moq-net library tests (four existing ignored tests), 252 JS decoder/publisher tests, and
just test interop --allacross Rust, Python, Go, JS/browser/native Node/native Bun, C, and GStreamer. The interop harness negotiates Lite; the IETF behavior is covered by the version-specific regressions.(Written by GPT-6)