Repository navigation
docs(quest): settle 30 s authored max-age defaults - #7567
Conversation
Quest-Claim: 79cd6109c477b5ee
…ntion Co-Authored-By: GPT-6.1 Sol <noreply@openai.com>
The maintainer accepted the audit's three proposals on 2026-11-01: 30 s for raw and media authored retention, no change to the relay's unset ceiling, and defaults applied at construction with explicit unlimited. Rewrite the quest into the implementation that remains. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
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 7 minutes. 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. |
kixelated
left a comment
There was a problem hiding this comment.
Automated review by review (OpenAI)
Reviewed commit: d94ad2c.
No actionable bugs found in this quest-only change. The direction is sound: apply the authored 30 s policy at construction, preserve received absence and explicit unlimited, and keep relay eviction separate. Reusing the existing media policy is simpler than introducing a retention type throughout every binding; the plan explicitly covers the conversion traps and archive exception.
Verification: static review of the plan and sampled pinned Rust/JS raw defaults, mux, UniFFI, relay, and archive source. No builds or tests run; the future implementation and its cross-language behavior are not validated by this review.
(Written by OpenAI)
There was a problem hiding this comment.
✅ No new issues found.
Reviewed changes
- Quest rewritten as the implementation record (
quest/m1/max-age-defaults.md): retitled from an[S]audit to[L] Authored tracks default to a 30 s max-age, with explicit unlimited, with the three settled decisions, a 63-anchor audit of current defaults, concrete consequences, an Implementation section, and a subscriber/wire-absence section. - Milestone index updated (
quest/m1/README.md): the bullet now mirrors the new title and summary.
I verified the load-bearing claims against the pinned revision c95a9b1201: hang::container::MAX_AGE is 30 s and track_info sets it; track::Info::default().max_age is None; mux Config.max_age = None and with_max_age(None) inherit hang's 30 s; IDLE_LINGER and cache::DEFAULT_EXPIRY are 30 s; a relay's unset duration keeps a Duration::MAX ceiling with a 30 s LRU expiry; the archive defaults (2 s / 4 s / 10 s / dvr = None); the UniFFI if let Some and C if max_age_present conversions; and JS CACHE_WINDOW. The eight cited overlapping PRs exist and match their described scopes, and the slug's only referrer (the milestone README) was updated. Source anchors point at the enclosing declaration or doc comment rather than always the exact literal, which is fine for a plan.
deepseek-v4.1-flash (free via Pullfrog for OSS) | 𝕏

Problem
Raw Rust/JS/FFI publisher retention defaults to no limit, while media helpers use 30 seconds. The quest needed an audit before the maintainer chose a finite policy.
Approach
quest/m1/max-age-defaults.mdrecords the audit: 63 pinned source anchors covering raw/media/catalog producers, gateways, FFI/C/Python, relay pool/ceiling, JS cache, audio history, archive/DVR, and wire absence, plus what zero and finite retention mean for late join, direct fetch, segmented playback, recording, and archive replay.The maintainer settled the audit's proposals, so this PR now rewrites the quest into the implementation that remains (retitled "[L] Authored tracks default to a 30 s max-age, with explicit unlimited"). The quest scoped its own work as audit-and-propose with "a follow-up implements it", so the runtime change is that quest's next PR, not this one.
Decisions
Settled 2026-11-01 by the maintainer, who accepted every recommendation:
Choices I made while recording them, open to review:
Config.max_age/with_max_ageis 30 s,Noneis unlimited. That changes today'swith_max_age(None)from "inherit 30 s" to unlimited, so the implementation is breaking there. The audit had flagged an unlimited-media option as needing a decision; explicit unlimited across the authoring API answers it.nullis unlimited at producer construction, matching moq-dev/moq#7403's max-delaynull. The audit listed it as the candidate; decision 3 picked nullable authoring options over a new type.[L]: it touches Rust, JS, and every binding, with tests and interop.Impact
Checks
On
d94ad2c5ea0aec7c1bdde5c5f693db7332fbab83(quest-only diff,origin/mainmerged):quest check --base origin/main: pass, 613 documents.git diff --check: pass.Review
Skipped the local
quest reviewunder the simple-review rule (moq-dev/quest#364): this PR touches only quests. Relying on the online reviewers; no online-reviewer findings were posted on the earlier headf0e56ead32.The earlier audit head had a Codex / GPT-6.1 Sol high-effort self-review with no unresolved factual finding.
Follow-ups
quest start quest/m1/max-age-defaults.mdafter this merges).just cifail inRecipeTest.test_unexecuted_bench_is_not_compiled(mbxcould not launch Cargo,Argument list too long). If it isn't tracked yet, plan it separately.🤖 Generated with Claude Code
(Written by Claude Opus 5.5)