Repository navigation
chore(deps): consolidate dependency bumps (egui 0.37, wgpu 30, zip 9, Rust 1.99) - #49
Conversation
… Rust 1.99) - Bump pinned toolchain and workspace MSRV from Rust 1.96 to Rust 1.99 across rust-toolchain.toml, Cargo.toml, workflows, and docs - Upgrade egui, egui-winit, and egui-wgpu to 0.37.0 (enabling monochrome_emoji_fonts to preserve default UI and debugger icon fonts) and migrate textures_delta and Id::unique call sites - Upgrade wgpu and naga to 30.0.1 across native, wasm32, and dev-dependencies and migrate RequestAdapterOptions, SurfaceConfiguration, and Queue::present - Upgrade zip to 9.0.5 and migrate ZipFile::name() Result return in rom_archive.rs - Upgrade wasm-bindgen (0.2.129), wasm-bindgen-futures (0.4.79), js-sys (0.3.106), web-sys (0.3.106), and transitive crates - Fix Rust 1.99 clippy lints (assert_is_empty, chunks_exact_to_as_chunks, suboptimal_flops) and dependabot.yml commit-message scope duplication Supersedes #42, #43, #44, #45, #46, #47, #48.
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. |
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
Antigravity review (Gemini via Ultra)[agy] print timeout after 5m0s with turn in progress; returning partial output Automated first-pass review by Earlier review rounds (newest first)Round reviewed at 2026-10-20 05:50 UTCAntigravity review (Gemini via Ultra)[agy] print timeout after 5m0s with turn in progress; returning partial output Automated first-pass review by Earlier review rounds (newest first)Round reviewed at 2026-10-20 05:41 UTCAntigravity review (Gemini via Ultra)Consolidates workspace toolchain and dependency upgrades to Rust 1.99, Blocking issuesNone found. Suggestions
Nitpicks
Automated first-pass review by |
There was a problem hiding this comment.
🟡 Changes recommended
The egui upgrade leaves two scripting tests dropping unapplied texture deltas, triggering debug assertions.
1 open issue
What changed in this PR
Consolidates dependency updates from #42–#48 and migrates Rusty2600’s frontend and build tooling to the updated stack.
Changes:
- Raises Rust/MSRV to 1.99 across tooling, workflows, and documentation.
- Upgrades egui, wgpu/naga, zip, and web bindings, adapting frontend APIs.
- Updates lint-sensitive code and groups coupled Dependabot updates.
| File | Description |
|---|---|
| rust-toolchain.toml | Pins Rust 1.99. |
| README.md | Updates Rust badge. |
| crates/rusty2600-script/src/engine.rs | Updates empty-log assertion. |
| crates/rusty2600-netplay/Cargo.toml | Aligns web bindings. |
| crates/rusty2600-mobile/src/lib.rs | Preserves audio arithmetic with lint allowance. |
| crates/rusty2600-frontend/tests/hd_pack_splice.rs | Updates pixel chunk iteration. |
| crates/rusty2600-frontend/src/wasm.rs | Adds targeted lint allowances and error documentation. |
| crates/rusty2600-frontend/src/shell.rs | Migrates egui identifiers. |
| crates/rusty2600-frontend/src/rom_archive.rs | Handles fallible ZIP filenames. |
| crates/rusty2600-frontend/src/input.rs | Updates empty-result assertions. |
| crates/rusty2600-frontend/src/gfx.rs | Adapts wgpu initialization. |
| crates/rusty2600-frontend/src/emu_thread.rs | Preserves audio arithmetic with lint allowances. |
| crates/rusty2600-frontend/src/debugger/memory_compare_panel.rs | Updates empty-diff assertion. |
| crates/rusty2600-frontend/src/debugger/callstack.rs | Updates empty-stack assertions. |
| crates/rusty2600-frontend/src/app.rs | Migrates texture handling, presentation, and identifiers. |
| crates/rusty2600-frontend/examples/dump_frame.rs | Updates pixel chunk iteration. |
| crates/rusty2600-frontend/Cargo.toml | Upgrades frontend dependencies. |
| crates/rusty2600-cheevos/src/lib.rs | Updates empty-list assertions. |
| CONTRIBUTING.md | Documents Rust 1.99. |
| Cargo.toml | Raises workspace MSRV. |
| Cargo.lock | Refreshes resolved dependencies. |
| .github/workflows/singlestep-full.yml | Updates test toolchain. |
| .github/workflows/release.yml | Updates release toolchain. |
| .github/workflows/pages.yml | Updates web-build toolchain. |
| .github/workflows/ci.yml | Updates CI toolchains. |
| .github/dependabot.yml | Groups graphics updates and fixes commit prefixes. |
Review effort: Balanced
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.
Bugbot Autofix prepared a fix for the issue found in the latest run.
- ✅ Fixed: Zip name errors abort ROM search
extract_first_romnow skips entries whose name fails to decode (like it already skips directories and non-ROM extensions) instead of returningMalformed, so a later valid ROM entry is still found.
Or push these changes by commenting:
@cursor push de2886a0dc
Preview (de2886a0dc)
diff --git a/crates/rusty2600-frontend/src/rom_archive.rs b/crates/rusty2600-frontend/src/rom_archive.rs
--- a/crates/rusty2600-frontend/src/rom_archive.rs
+++ b/crates/rusty2600-frontend/src/rom_archive.rs
@@ -102,10 +102,9 @@
if entry.is_dir() {
continue;
}
- let name = entry
- .name()
- .map_err(|e| RomArchiveError::Malformed(e.to_string()))?
- .into_owned();
+ let Ok(name) = entry.name().map(std::borrow::Cow::into_owned) else {
+ continue;
+ };
if !ROM_EXTENSIONS.contains(&extension_of(&name).as_str()) {
continue;
}You can send follow-ups to the cloud agent here.
Reviewed by Cursor Bugbot for commit df2cbec. Configure here.
…p undecodable zip names - Call full_output.drop_without_applying_deltas() in scripting overlay tests for egui 0.37 debug assertion compatibility - Skip non-decodable entry names and check ROM_EXTENSIONS before allocating owned String in rom_archive::extract_first_rom - Replace [] as [T; 0] slice assertions with .as_slice(), &[] and update wgpu version note in docs/frontend.md
Adjudication of Antigravity (
|
|
/agy-review |
|



Summary
Consolidates all 7 open Dependabot PRs (#42, #43, #44, #45, #46, #47, #48) and aligns the graphics stack and Rust toolchain with
RustyNESv3.4.0:rust-toolchain.toml, workspacerust-version, all GitHub Actions workflows (ci.yml,pages.yml,release.yml,singlestep-full.yml), and documentation badges from1.96to1.99, resolving the Rust 1.99 clippy lints (assert_is_empty,chunks_exact_to_as_chunks,suboptimal_flops).egui0.37.0 +wgpu/naga30.0.1 (chore(deps)(deps): bump egui-wgpu from 0.35.0 to 0.36.2 #43, chore(deps)(deps): bump wgpu from 29.0.4 to 30.0.1 #44, chore(deps)(deps): bump zip from 8.6.0 to 9.0.0 #45, chore(deps)(deps): bump egui-winit from 0.35.0 to 0.36.2 #47, chore(deps)(deps): bump the production-dependencies group across 1 directory with 2 updates #48):egui,egui-wgpu, andegui-winitfrom0.35to0.37.0(withfeatures = ["monochrome_emoji_fonts"]oneguisoepaint_default_fontsand the monochrome emoji fallback fonts remain bundled).wgpuandnagafrom29to30.0.1across all 3 target tables (base, native, andwasm32) plus[dev-dependencies].RequestAdapterOptions(apply_limit_buckets: false),SurfaceConfiguration(color_space: wgpu::SurfaceColorSpace::Auto),Queue::present(frame),textures_deltaiteration, andegui::Id::unique.egui-wgpuDependabot group in.github/dependabot.ymland removesinclude: "scope"to fix duplicatechore(deps)(deps):prefixes.zip9.0.5 (chore(deps)(deps): bump egui from 0.35.0 to 0.36.2 #46): Upgradeszipfrom8.5to9.0.5and handlesZipFile::name() -> Result<&str, ZipStringError>inrom_archive.rs.wasm-bindgen(0.2.129, matchingTrunk.toml),wasm-bindgen-futures(0.4.79),js-sys(0.3.106),web-sys(0.3.106), and all compatible workspace dependencies.Supersedes #42, #43, #44, #45, #46, #47, #48.
Note
Medium Risk
Large dependency and graphics-stack upgrade touches rendering, zip ROM loading, and wasm builds; emulator core logic changes are minimal but UI presentation paths need regression testing.
Overview
Bumps the workspace to Rust 1.99 and refreshes CI, docs, and Dependabot (including an
egui-wgpudependency group and dropping Dependabotinclude: "scope"to avoid duplicate commit prefixes).Upgrades the desktop/web UI stack:
egui/egui-wgpu/egui-winit0.37,wgpu/naga30, andzip9, withCargo.lockfollowing. The frontend is adjusted for those APIs—wgpu adapter/surface/present paths, egui texture deltas andId::unique, and zip entry names asResultin ROM archive loading.Pins wasm bindings (
wasm-bindgen,js-sys,web-sys, etc.) to match the lockfile. Clippy 1.99 fixes land across the repo (empty checks,as_chunks, DC-blockersuboptimal_flopsallows, egui test cleanup viadrop_without_applying_deltas).Reviewed by Cursor Bugbot for commit cba66f0. Bugbot is set up for automated code reviews on this repo. Configure here.