Skip to content

v2.9.3 "Handset" -- the old review threads closed, and the mobile run prepared - #572

Merged
doublegate merged 2 commits into
mainfrom
release/v2.9.3
Sep 29, 2026
Merged

doublegate merged 2 commits into
mainfrom
release/v2.9.3

Conversation

@doublegate

@doublegate doublegate commented Sep 29, 2026 •

Copy link
Copy Markdown
Owner

The release cut for v2.9.3 "Handset", on top of #571 (462e23d8) and #570 (d8b02d2f). On merge, release-auto.yml tags v2.9.3 and publishes .github/release-notes/v2.9.3.md with 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 --stat shows them (110+ files).

What it changes

  • Version 2.9.3. Workspace and rustynes-cosim (both lockfiles), and the libretro .info's display_version.
  • Every current-release anchor: README (badge, Current Release, the hardware paragraphs), AGENTS.md, ARCHITECTURE.md, OVERVIEW.md, ROADMAP.md, SECURITY.md, SUPPORT.md, VERSION-PLAN.md, docs/STATUS.md and to-dos/ROADMAP.md.
  • CHANGELOG. [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:

  • ADR 0041 gets a dated amendment saying that what v3.0.0 ships is open.
  • The v3.0.0 plan is marked "under revision", with its text kept.
  • The v2.9.x plan, the plans index, to-dos/ROADMAP.md and the run sheet say the same.
  • The "no hardware has run any bitstream" anchors stay as they are.

The v2.9.3 plan gains an Outcome section.

Verification

Check Result
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, contribution_checklist_audit pass
markdownlint (pinned) on every edited file clean

release_anchor_audit caught 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

… 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
Copilot AI balanced review requested due to automatic review settings September 29, 2026 06:53
@coderabbitai

coderabbitai Bot commented Sep 29, 2026 •

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration

Configuration used: Repository: doublegate/RustyNES/.coderabbit.yaml

Review profile: ASSERTIVE

Plan: Advanced

Run ID: 9d67a27e-4ae6-4abc-9e83-a611d6ef47e0


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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@context7

context7 Bot commented Sep 29, 2026 •

Copy link
Copy Markdown

Docs7 for doublegate/rustynes

Result Status Action
Deployment ➖ Not used —
Content review ➖ Did not run. This site has no agent runs available this month. Wait for the monthly reset or check your Docs7 plan. —

Commit 6f70b89

@github-actions

github-actions Bot commented Sep 29, 2026 •

Copy link
Copy Markdown

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

  • Missing implementation: The PR description and documentation (CHANGELOG.md, AGENTS.md) claim multiple code fixes—such as rebuilding mapper 28, correcting the ROM header editor, and fixing the Bisqwit NTSC filter—but the diff contains exclusively Markdown files and version bumps. No Rust code is modified.
  • Missing dependency updates: The release notes claim updates to egui (0.36), wgpu (30), rcheevos (12.5.0), and UniFFI (0.32.2), but Cargo.toml and Cargo.lock only bump the internal rustynes-* workspace crates to 2.9.3.

Suggestions

  • Include the actual Rust implementation files and the third-party dependency updates in the manifests before merging.
  • If this PR is strictly meant to be a documentation and version bump, update the PR title and description to accurately reflect what is in the diff.

Nitpicks

  • The current diff is trivial as it only bumps text and version strings.

Automated first-pass review by agy on a self-hosted runner -- not a human review.

Earlier review rounds (newest first)
Round reviewed at 2026-09-29 07:08 UTC

Antigravity 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

  • Missing implementation: The release notes (CHANGELOG.md, .github/release-notes/v2.9.3.md) claim updates to egui, wgpu, and rcheevos, hardware emulation fixes for mapper 28 and NSF open bus, ROM header editor bug fixes, and new Android/iOS CI checks. However, the diff contains no Rust source code changes, no CI workflow changes, and no external dependency updates in Cargo.toml/Cargo.lock. The PR as submitted does not implement its own changelog.

Suggestions

  • Stage and commit the missing .rs files, .github/workflows/ modifications, and external dependency updates that correspond to the v2.9.3 release notes before merging.

Nitpicks

  • None found.

Automated first-pass review by agy on a self-hosted runner -- not a human review.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 Low severity

Open (14)
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.

Comment thread .github/release-notes/v2.9.3.md Outdated
Comment thread .github/release-notes/v2.9.3.md Outdated
Comment thread AGENTS.md Outdated
Comment thread OVERVIEW.md Outdated
Comment thread README.md Outdated
Comment thread VERSION-PLAN.md Outdated
Comment thread VERSION-PLAN.md Outdated
Comment thread docs/STATUS.md Outdated
Comment thread to-dos/ROADMAP.md Outdated
Comment thread to-dos/plans/v2.9.3-handset-plan.md Outdated
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
@doublegate

Copy link
Copy Markdown
Owner Author

Replying to the Antigravity review of cd221a78.

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 main.

The release notes describe the difference between v2.9.2 and this PR's head, and GitHub's diff only shows this PR against today's main. To check:

git diff v2.9.2 cd221a78 --stat

That lists the source, the workflows and the lockfiles. v2.9.2 was cut the same way (release commit 0f97ea0b on top of its own feature commits).

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 6f70b89e, and every thread is answered and resolved.

🤖 Generated with Claude Code

https://claude.ai/code/session_014qfTKi2M3swo7qnwvYCkDj

@doublegate
doublegate merged commit 432d831 into main Sep 29, 2026
37 checks passed
@doublegate
doublegate deleted the release/v2.9.3 branch September 29, 2026 07:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants