Repository navigation
feat(lite): mark initial announcements with ordered SYNCED - #6029
Conversation
Preserve insertion-order collapse for stalled announcement readers and retain Active Count on published drafts. Existing Rust and JS synced signals consume the new empty lite-07 boundary. Checkpoint: JS net suite 2220 passed, 2 skipped; targeted Rust boundary/order suite 19 passed before final additions; draft syntax check passed. Full frozen Rust net suite and remaining branch/interoperability gates are running or pending. Co-Authored-By: GPT-6.1-Sol <noreply@openai.com>
Co-Authored-By: GPT-6.1-Sol <noreply@openai.com>
Regrant growth and withdrawals now reuse the lite-07 cursor queue instead of bypassing its insertion order. Insert SYNCED at the exact emitted-event boundary, including buffered bursts. Both gated regressions failed before their fixes. The final focused sync, initial-set, and grant suite passes all 95 tests. Earlier broad check and interop runs were stopped with exit 143 before changing production source; frozen-head replacements follow. Co-Authored-By: GPT-6.1-Sol <noreply@openai.com>
|
Final checkpoint: Required Existing synced APIs are unchanged. Wire changes apply only to unpublished lite07-wip; published versions retain Active Count bytes. No TRACKS API or unresolved policy decision. All owned validation processes ended and the shared interop slot was released. This PR remains draft. (written by GPT-6.1-Sol) |
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.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. |
|
Warning Review limit reachedYou'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. View limit details
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. Comment |
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Resolve against refresh demand (#6030), announce SYNCED (#6029) and the ietf extension (#6058): TRACKS_ADD now carries TRACK_INFO's Refresh, the draft shares one SYNCED section between the Announce and Tracks streams, and the ietf draft keeps the Track Stream for listed tracks since TRACKS_ADD has no TRACK_PROPERTIES. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Problem
A numeric initial Active Count cannot reliably mark discovery completion while removals and live churn change the announcement queue. lite07-wip needs an ordered completion boundary that cannot be starved by churn or overtaken by authorization changes.
Approach
Replace lite07-wip ANNOUNCE_OK Active Count with one empty SYNCED event, sent after the first drained queue or N emitted snapshot events. Rust and JS collapse pending changes by key while retaining insertion order. Rust pending storage is bounded by pending keys using hashlink 0.12.2. Regrant additions and withdrawals use that same queue so they cannot overtake remaining initial entries. Older versions retain their count-based behavior and bytes.
Keep the existing public synced APIs. Add deterministic gated Rust/JS tests for initial removals, churn, relay discovery, exactly one marker and legacy behavior, plus Rust regrant growth/shrink regressions and bounded pending-key churn. Update the lite draft and existing nightly fanout benchmarks.
Retires the Announce SYNCED quest (
quest/m1/announce-synced.md) and removes its references from the m1 README,lite07-finalize.mdRequired, and the TRACKS archive note.Impact
Decisions
Validation
Head after merging
origin/main(conflicts were import lists only: main droppedhasStreamCount, this PR addshasSynced):just check: passed.just drafts check: passed.just test interop --all: all checks passed, including the browser (Chromium) cells, rust-denied rows, CLI FETCH, finite tails and lite-05/06/07-wip drop checks.quest check: 425 documents ok.Benchmark sweeps from the previous round (paths unchanged by the merge): Rust pending-churn over routes 10/1000 x readers 1/100, about 2.5 us for one reader to 352 us for 1000 routes/100 readers; JS stalled-sender over routes 8/32/128 x readers 1/8/32, 128 routes/32 readers about 2100 us per churn pair. No speedup claim.
Alternatives
Retaining a frozen count leaves discovery completion vulnerable to queue changes. Buffering a full snapshot delays incremental delivery. An insertion-ordered keyed queue keeps collapse semantics while placing the agreed N-event boundary on the stream.
Follow-ups
None required. TRACKS reuses the SYNCED shape when it is picked up.
(Written by Claude Opus 5.5)
🤖 Generated with Claude Code