Repository navigation
v2.9.3 "Handset" -- the old review threads closed, and the mobile run prepared - #572
Conversation
… prepared The release cut for v2.9.3, on top of #571 (462e23d) and #570 (d8b02d2). Workspace and rustynes-cosim move to 2.9.3 (both lockfiles), the libretro .info's display_version with them, and every current-release anchor the three anchor audits cover: README (badge, Current Release, the two hardware paragraphs), AGENTS.md, ARCHITECTURE.md, OVERVIEW.md, ROADMAP.md, SECURITY.md, SUPPORT.md, VERSION-PLAN.md (header and a new (current) row), docs/STATUS.md and to-dos/ROADMAP.md. CHANGELOG [Unreleased] becomes [2.9.3] with a summary paragraph; .github/release-notes/v2.9.3.md is the body release-auto.yml publishes. The release carries one maintainer decision that is not a routine cut (2026-09-29): the mobile device runs, the SuperStation One board session and the fixes each produces move AFTER v3.0.0, and v2.9.3 ships without its device run. That contradicts ADR 0041, whose Decision defines v3.0.0 as the release in which a bitstream is verified on real hardware, and the v3.0.0 plan's gate (every bring-up row PASS). This commit records the move and the conflict without resolving it: - ADR 0041 gets a dated amendment stating both, and that what v3.0.0 ships is open for the maintainer. ADR 0042's API break would make v3.0.0 MAJOR on its own, so the number does not force an answer. - The v3.0.0 plan is marked "under revision" with its text kept; the v2.9.x line plan notes that v2.9.4+ ("whatever the board finds") will not happen in this line; the plans index, to-dos/ROADMAP.md and the run sheet say the same. The "no hardware has run any bitstream" anchors stay unflipped. - The v2.9.3 plan gains an Outcome section: what shipped (run sheet, emulator pre-run, CI for the Kotlin tests and the iOS renderer, #570, the sibling pin, the ten review fixes) and what is not established (every Swift change since v2.7.4 uncompiled, no Android row on a device). `release_anchor_audit` caught one site the transform missed: the release-line chain in to-dos/ROADMAP.md still ended "v2.9.2 ..., the current release". The first test-roms run stopped at that binary (2,811 passed, 1 failed); the chain now ends at v2.9.3 and the run was repeated with --no-fail-fast. No code changes here besides the version strings. The Android versionName (2.0.4) is not a release anchor and was not moved by v2.9.2 either. Verified on this tree: `cargo test --workspace --features test-roms --release --no-fail-fast` 2,887 passed, 0 failed, 20 ignored; release_anchor_audit, release_state_prose_audit, release_notes_render_audit, cosim_manifest_audit, libretro_info_audit and contribution_checklist_audit pass; pinned markdownlint clean on every edited file. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014qfTKi2M3swo7qnwvYCkDj
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configurationConfiguration used: Repository: doublegate/RustyNES/.coderabbit.yaml Review profile: ASSERTIVE Plan: Advanced Run ID: 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 |
|
Docs7 for doublegate/rustynes
Commit |
Antigravity review (Gemini via Ultra)This PR updates documentation, release notes, and workspace manifests for the v2.9.3 release, but completely omits the actual code and dependency changes it describes. Blocking issues
Suggestions
Nitpicks
Automated first-pass review by Earlier review rounds (newest first)Round reviewed at 2026-09-29 07:08 UTCAntigravity review (Gemini via Ultra)This PR bumps documentation and workspace crate versions to v2.9.3 and adds release notes, but completely omits the code changes and dependency updates it claims to deliver. Blocking issues
Suggestions
Nitpicks
Automated first-pass review by |
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
Several release claims overstate CI and emulator coverage, and VERSION-PLAN still labels shipped lines as unreleased.
Review effort: Balanced
Findings: 14
Open (14)
Correct pull request scope for Android tests and iOS type-check · New Describe completed emulator runs instead of claiming full coverage · New Narrow every-PR claim to configured workflow scopes · New Correct release summary's broader-than-configured CI coverage claim · New Align release coverage claims with workflow path filters · New Narrow mobile check wording to actual workflow filters · New Describe emulator validation as a partial pre-run · New Narrow checked-on-every-PR claim to workflow filters · New Make Android and iOS CI scopes explicit · New Update release table to reflect shipped versions and open v3.0.0 scope · New Align every-PR claim with Android and iOS workflow conditions · New Limit mobile check claims to configured pull request scopes · New Correct inaccurate every-PR coverage claim · New Correctly classify unrun emulator rows and incomplete A8 run · New
What changed in this PR
Cuts v2.9.3 “Handset,” synchronizes release metadata, documents completed work, and records the post-v3.0.0 deferral of device and hardware testing.
Changes:
- Bumps workspace, co-simulation, lockfile, and libretro versions.
- Adds release notes and updates current-release documentation.
- Amends plans and ADR 0041 for deferred hardware/device runs.
| File | Description |
|---|---|
.github/release-notes/v2.9.3.md |
Adds release notes. |
AGENTS.md |
Updates release guidance. |
ARCHITECTURE.md |
Updates applicable version. |
CHANGELOG.md |
Adds v2.9.3 entry. |
Cargo.lock |
Updates workspace package versions. |
Cargo.toml |
Bumps workspace version. |
OVERVIEW.md |
Updates release overview. |
README.md |
Updates badge and release details. |
ROADMAP.md |
Updates project status. |
SECURITY.md |
Updates supported release. |
SUPPORT.md |
Updates current-version guidance. |
VERSION-PLAN.md |
Adds v2.9.3 release record. |
crates/rustynes-cosim/Cargo.lock |
Updates co-simulation package versions. |
crates/rustynes-cosim/Cargo.toml |
Bumps co-simulation version. |
crates/rustynes-libretro/rustynes_libretro.info |
Updates displayed core version. |
docs/STATUS.md |
Updates authoritative release status. |
docs/adr/0041-hardware-release-is-v3.0.0.md |
Records the hardware-plan conflict. |
docs/mobile-v2.9.3-run-sheet.md |
Records the deferred device run. |
to-dos/ROADMAP.md |
Updates release and replanning status. |
to-dos/plans/README.md |
Updates plan statuses. |
to-dos/plans/v2.9.3-handset-plan.md |
Adds release outcome. |
to-dos/plans/v2.9.x-final-audit-and-hardware-plan.md |
Records the revised v2.9.x scope. |
to-dos/plans/v3.0.0-superstation-core-plan.md |
Marks v3.0.0 scope under revision. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Copilot on #572 (14 threads, all correct): the v2.9.3 release prose said the Android unit tests and the iOS renderer are "checked on every pull request". Neither is. `android.yml`'s `kotlin-unit-tests` runs on `main` pushes and on PRs whose diff matches the `kotlin` filter (`android/**`, `crates/rustynes-mobile/**`, the workflow itself); `ci.yml`'s lint job, which runs `scripts/ios-host-typecheck.sh`, is skipped when `changes` reports no code change. The tagline now says "added to CI" in all eight anchor copies; README, the release notes and the CHANGELOG Testing entry state the scopes. Also corrected: - The release notes and README said every emulator-reachable Android row ran. A2 (switch games and back) is emulator-reachable and was not run, and A8 has a 30 s reading against a one-minute step. Both now list what ran. The v2.9.3 plan's Outcome no longer calls every unrun row device-only. - VERSION-PLAN's "Planned next (not yet released)" table still listed the shipped v2.8.x and v2.9.x lines and described v3.0.0 as the hardware- verified core. The shipped rows are gone; v3.0.0 is "scope under revision" (ADR 0041's 2026-09-29 amendment), and an "after v3.0.0" row holds the hardware work. Verified: release_anchor_audit, release_state_prose_audit, release_notes_render_audit pass; pinned markdownlint clean. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014qfTKi2M3swo7qnwvYCkDj
|
Replying to the Antigravity review of Blocking: "the diff contains no Rust source, CI or dependency changes." Refuted. That is by design, not an omission: this PR is the release cut, and the work it releases is already on
The release notes describe the difference between That lists the source, the workflows and the lockfiles. v2.9.2 was cut the same way (release commit Copilot's 14 findings on the same commit were all correct: the CI-scope wording, the emulator pre-run claims, and VERSION-PLAN's stale "Planned next" table. They are fixed in 🤖 Generated with Claude Code |

The release cut for v2.9.3 "Handset", on top of #571 (
462e23d8) and #570 (d8b02d2f). On merge,release-auto.ymltagsv2.9.3and publishes.github/release-notes/v2.9.3.mdwith the desktop binaries.This diff is only the version bump, the docs and the re-plan. The code and dependency changes the notes describe are already on
main, in #570 and #571;git diff v2.9.2 6f70b89e --statshows them (110+ files).What it changes
rustynes-cosim(both lockfiles), and the libretro.info'sdisplay_version.[Unreleased]becomes[2.9.3], with a summary paragraph.A maintainer decision recorded here
The mobile device runs, the SuperStation One board session, and the fixes each produces move after v3.0.0 (2026-09-29). v2.9.3 ships without its device run.
That contradicts ADR 0041, which defines v3.0.0 as the hardware-verified core. The conflict is recorded, not resolved:
The v2.9.3 plan gains an Outcome section.
Verification
cargo test --workspace --features test-roms --release --no-fail-fastrelease_anchor_audit,release_state_prose_audit,release_notes_render_audit,cosim_manifest_audit,libretro_info_audit,contribution_checklist_auditrelease_anchor_auditcaught one missed site on the first run: the chain in to-dos/ROADMAP.md still ended at v2.9.2. It is fixed, and the run above is the repeat.🤖 Generated with Claude Code
https://claude.ai/code/session_014qfTKi2M3swo7qnwvYCkDj