docs(readme): enumerate the 17 releases the Roadmap had collapsed - #274
Conversation
The v1.25.0 cut left the Roadmap listing v1.5.0-v1.8.0 individually and then compressing everything after into three range bullets. That reads as if the project did four releases and then some unspecified amount of work, when it in fact shipped seventeen more, several of which changed what the emulator IS (mobile shells, the per-dot compositor, the completed NEC coprocessor family). All seventeen (v1.9.0 "Marionette" through v1.25.0 "Workbench") now appear in the same one-bullet-per-release style as the rungs above them, grouped by the three arcs they actually form: - v1.9.0-v1.13.0 — the remaining RustyNES-parity items (scripting bus width, HD packs on emu-thread, the RetroAchievements load path that was never called, xBRZ + the shader-source crate extraction, accessibility themes). - v1.14.0-v1.20.0 — the mobile ladder (Phases 1-5), the PGO/BOLT rung, and the UI/UX-parity pass, with an explicit statement that this whole span left the accuracy dashboard byte-identical. - v1.21.0-v1.24.0 — the accuracy rungs, introduced as "the ones that move them" so the contrast with the span above is the point rather than an accident. - v1.25.0 — the current release, given its own lead-in. Summaries are drawn from each version's own CHANGELOG header, not from memory, and every codename was cross-checked against `## [X.Y.Z] "Name"` in CHANGELOG.md — all 22 release references in the section verify. Docs only; no code, no behaviour change. markdownlint clean on README (the residual MD060 is the newer-linter rule the project's docs note is ungated). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
📜 Recent review details⏰ Context from checks skipped due to timeout. (1)
🧰 Additional context used📓 Path-based instructions (3)**/*.{rs,md}📄 CodeRabbit inference engine (CONTRIBUTING.md)
Files:
**/*📄 CodeRabbit inference engine (CONTRIBUTING.md)
Files:
**/*.md⚙️ CodeRabbit configuration file
Files:
🔇 Additional comments (1)
WalkthroughThe README roadmap expands v1.9.0–v1.24.0 into individual release milestones covering frontend, mobile, optimization, rendering, DSP, and accuracy work, then transitions to the current frontend-focused release. ChangesRoadmap documentation
Estimated code review effort: 1 (Trivial) | ~3 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 10✅ Passed checks (10 passed)
Comment |
Antigravity review (Gemini via Ultra)This PR expands two collapsed version ranges ( Blocking issuesNone found. Suggestions
Nitpicks
Automated first-pass review by |
Review response — no changes; both points declined with evidenceNo blocking issues. Neither suggestion holds up when checked against the project's own text, so nothing changed. Suggestion 1 — "free-runs on the master-clock scheduler": not a conflict; it is the project's own term, and it means the opposite of the concernThe worry is that "free-run" reads as un-clocked, contradicting the lockstep mandate. In this codebase it means precisely the reverse: continuously clocked off the master scheduler, as opposed to the thing it replaced — a lazy catch-up on host access model that resolved each handshake in zero emulated time. Free-running is the lockstep end of that contrast, not the loose end. It is also verbatim the project's own wording, not my paraphrase.
and the same sentence names the subsystems that set the precedent:
The proposed rephrase ("advances on its clock divisor via the master-clock scheduler") is accurate in substance, but it would move the README away from the vocabulary the CHANGELOG, Nitpick 2 — the unbulleted introductory linesDeliberate, and load-bearing rather than decorative. There are two, and each marks a real discontinuity in the list:
That second line is the most important sentence in the section — twelve consecutive releases that changed no emulation behaviour, followed by four that did. As a bullet among bullets it would read as another release; as a lead-in it frames the ones beneath it. The section already opens with prose paragraphs before its first list, so prose between groups is consistent with the surrounding style rather than a break from it, and State
|
What
The
v1.25.0cut left the README's Roadmap section listingv1.5.0–v1.8.0one-by-one and then compressing everything after into three range bullets. That reads as if the project did four releases and then an unspecified amount of work — when it actually shipped seventeen more, several of which changed what the emulator is (mobile shells, the per-dot PPU compositor, the completed NEC coprocessor family).All seventeen —
v1.9.0 "Marionette"throughv1.25.0 "Workbench"— now appear in the same one-bullet-per-release style as the rungs above them.Grouped by the arcs they actually form
v1.9.0–v1.13.0emu-thread, the RetroAchievements load path that was never called, xBRZ + the shader-source crate extraction, accessibility themesv1.14.0–v1.20.0v1.21.0–v1.24.0v1.25.0Two transitions are stated rather than left implicit, because they carry the actual meaning of the list: that the
v1.9.0–v1.20.0span left the accuracy dashboard, per-suite pass counts, and coprocessor matrix byte-identical, and that the next four rungs are "the ones that move them".Accuracy
Summaries are drawn from each version's own CHANGELOG header rather than from recollection, and every codename was cross-checked programmatically against
## [X.Y.Z] "Name"inCHANGELOG.md— all 22 release references in the section verify.Docs only: no code, no behaviour change.
markdownlintclean onREADME.md(the residualMD060is the newer-linter rule the project's own docs note is ungated in CI).🤖 Generated with Claude Code
The README claims that releases v1.9.0–v1.20.0 completed parity, mobile, optimization, and UI/UX work without changing accuracy metrics; v1.21.0–v1.24.0 then improved accuracy; and v1.25.0 is the current frontend-focused release. The claim would be false if the CHANGELOG codename mapping or development-arc classification is incorrect, or if the stated accuracy transition is unsupported. No AccuracySNES dossier assertions or coverage denominator were changed.