Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
108 commits
Select commit Hold shift + click to select a range
472929b
docs(plan): v3.2.0 scope decisions -- Datach in, FFE 6 and 17 added
doublegate Oct 8, 2026
77f96e3
docs(plan): correct the Doraemon note; restate item 4's gap
doublegate Oct 8, 2026
7b1c241
feat(mappers): add mapper 172/173 (TXC JV001 and 05-00002-010 boards)
doublegate Oct 8, 2026
8b4b407
feat(mappers): add mapper 114/182 (SuperGame / Hosenkan MMC3 scramble)
doublegate Oct 8, 2026
57731e4
test(mappers): boot Boogerman as mapper 114 submapper 1
doublegate Oct 8, 2026
0242af8
feat(mappers): add mapper 215 (Sugar Softec UNL-8237 / UNL-8237A)
doublegate Oct 9, 2026
7fd7368
feat(mappers): add mapper 158 (Tengen 800037, RAMBO-1 with CHR A17 on…
doublegate Oct 9, 2026
dcc1b05
fix(mappers): mapper 290's 32 KiB PRG mode maps both halves in order
doublegate Oct 9, 2026
3621db6
test(harness): arbitrary single-frame presses; reach mapper 47's seco…
doublegate Oct 9, 2026
1727eb9
feat(mappers): promote 47, 121, 154, 191 and 243 to Curated under D23
doublegate Oct 9, 2026
9bb3d5e
feat(mappers): add mapper 197 (MMC3 with 2 / 4 KiB CHR banks)
doublegate Oct 9, 2026
c87ea6d
feat(mappers): add mapper 157 (Bandai Datach) with its barcode reader
doublegate Oct 9, 2026
c20a855
feat(core): Nes::scan_barcode for the Datach, with boot and scan evid…
doublegate Oct 9, 2026
c797775
feat(mappers): add mapper 207 (Taito X1-005 with CHR A17 on CIRAM A10)
doublegate Oct 9, 2026
df12898
feat(mappers): add mapper 165 (MMC3 + MMC2-style CHR latch)
doublegate Oct 9, 2026
495576a
feat(frontend): scan a Datach barcode from the Emulation menu
doublegate Oct 9, 2026
1da22ed
test(harness): boot ten "blank" dumps as a Famicom; KNOWN_BLANK 52 -> 41
doublegate Oct 9, 2026
fce5238
merge: mapper 157 (Bandai Datach) and its barcode reader into v3.2.0
doublegate Oct 9, 2026
9795e94
test(harness): record why Gradius II (VC) and Chu Liu Xiang stay blank
doublegate Oct 9, 2026
530708f
feat(mappers): add mapper 116 (SOMARI-P, VRC2 / MMC3 / MMC1 multi-mode)
doublegate Oct 9, 2026
ba20c32
fix(mappers): a 24C02 keeps its word address across a START on mapper…
doublegate Oct 9, 2026
7a43780
fix(mappers): read the VRC4 IRQ mode bit as the wiki gives it
doublegate Oct 9, 2026
f7bbcc7
merge: mappers 114/182, 215, 197, 165 and 116 into v3.2.0
doublegate Oct 9, 2026
3a4aba5
docs(changelog): v3.2.0's Unreleased entries so far
doublegate Oct 9, 2026
e12b32d
docs(plan): record item 5's region placeholder, the VRC4 IRQ finding,…
doublegate Oct 9, 2026
ac10b03
feat(cosim): export goldens with a Four Score, a Vaus or Game Genie c…
doublegate Oct 9, 2026
ffef40d
feat(mappers): add mapper 252 (Waixing VRC4 clone, CHR-RAM pages 6 an…
doublegate Oct 9, 2026
da9d0e5
feat(mappers): add mapper 230 (reset-switched 22-in-1 multicart)
doublegate Oct 9, 2026
571b67a
feat(mappers): add mapper 235 (Golden Game address-latch multicart)
doublegate Oct 9, 2026
4050d2e
feat(mappers): add mappers 6, 8 and 17 (FFE Magic Card / Super Magic …
doublegate Oct 9, 2026
2385f5c
merge: mappers 6/8/17, 158, 172/173, 207, 230, 235, 252 and the VRC4 …
doublegate Oct 9, 2026
c922ed4
docs(adr): amend ADR 0011 with D23 and the notes-only tier ruling
doublegate Oct 9, 2026
bb66f0a
chore: import the agy/Codex audit-remediation code from codex_sec, as is
doublegate Oct 14, 2026
9c8539a
fix(mappers): revert the MMC5 nametable-snoop IRQ detector from the i…
doublegate Oct 14, 2026
97fbc11
fix(mappers): restore the FDS output rounding the import changed
doublegate Oct 14, 2026
4410d32
fix(mappers): revert the N163 output cache, which mixed inactive slots
doublegate Oct 14, 2026
5a38c02
fix(core): keep the PRG-window open-bus shortcut, gated on a board flag
doublegate Oct 14, 2026
37102eb
fix(mappers): recompute GxROM's cached bank offsets on load_state
doublegate Oct 14, 2026
c712609
fix(mappers): mask MMC3 bank numbers in the cached offset tables
doublegate Oct 14, 2026
298a2cb
fix(mappers): make ppu_peek required and exact; fix mapper 209's peek
doublegate Oct 14, 2026
8588119
fix(gamedb): document and pin the import's header-correction changes
doublegate Oct 14, 2026
23da71a
fix(mappers): mark flash save data dirty on every path that changes it
doublegate Oct 14, 2026
3fb6bc5
docs(apu,core): restore the comments the import dropped, and correct …
doublegate Oct 14, 2026
ea8752c
fix(mappers): pin the VRC2 and Fire Hawk accuracy changes, from nesdev
doublegate Oct 14, 2026
fcd22cf
perf(apu): find and remove the import's 47% external-audio regression
doublegate Oct 14, 2026
c752446
feat(netplay)!: protocol 8 -- decode input batches; fix the import's …
doublegate Oct 14, 2026
ddfc5f2
fix(frontend): one thread advances the core during netplay
doublegate Oct 14, 2026
e222720
fix(frontend): review the import's audio, present and save-file changes
doublegate Oct 14, 2026
3b88005
fix(wasm): revert the import's piccolo heap cap and wasm_cheevos rewrite
doublegate Oct 14, 2026
9273fe7
fix(wasm): browser cheevos read memory through a safe stack closure
doublegate Oct 14, 2026
fa425ca
feat(libretro): slim save states (16 KB), tested; drop unmeasured rew…
doublegate Oct 14, 2026
c04da0c
feat(mobile): FDS disk saves under the pristine identity; fix the import
doublegate Oct 14, 2026
0a6a08d
fix(cheevos): pin the import's token redaction; clarify the callback …
doublegate Oct 14, 2026
ac78f41
fix(cosim): keep the unaligned-output copy; drop the one catch_unwind
doublegate Oct 14, 2026
7857f27
docs(shaders): keep the import's WGSL changes; fix a stale reference
doublegate Oct 14, 2026
7086ae3
fix(ios): make the zero-copy render shim compile; restore its SAFETY …
doublegate Oct 14, 2026
993dbc7
chore: restore the lost 2026-10-09 salvage record; ignore salvaged_tmp/
doublegate Oct 14, 2026
b3c204e
docs(audits): file the agy Round 2 report and its disposition ledger
doublegate Oct 14, 2026
27301f3
merge: the v3.2.0 input-device and cheat exporter flags (item 8, orac…
doublegate Oct 14, 2026
3d13e18
test(coverage): baseline 25 newly staged dumps, with title-screen cap…
doublegate Oct 14, 2026
75e4e37
build(deps): move to zip 9 and port its fallible name() (#601)
doublegate Oct 14, 2026
adaadc4
chore(ci): bump taiki-e/install-action from 2.87.26 to 2.87.27
dependabot[bot] Oct 13, 2026
3d6b983
build(deps): bump cc from 1.6.0 to 1.7.0 (#600)
doublegate Oct 14, 2026
5ec5f22
build(android): Gradle wrapper 9.8.1, LF gradlew.bat kept (#602)
doublegate Oct 14, 2026
1734e52
build(android): Compose compiler plugin 2.4.21 (#603)
doublegate Oct 14, 2026
f3fcfd2
docs(audits): re-derive the seven Round 2 RTL findings; six refuted
doublegate Oct 14, 2026
3f8a555
feat(cosim): commit the sprite-limit exporter flags the MiSTer golden…
doublegate Oct 14, 2026
89df4ef
docs(changelog): complete v3.2.0's Unreleased from both branch logs
doublegate Oct 14, 2026
3ead07a
docs: 208 mapper families, 181 accuracy-gated, in README, STATUS, map…
doublegate Oct 14, 2026
5eddcec
docs(roadmap): v3.2.0's slotted tickets, and seven follow-ups minted
doublegate Oct 14, 2026
d02670a
docs(agents): three v3.2.0 findings, with their evidence
doublegate Oct 14, 2026
00c355a
test(harness): list prg_may_unmap as board identity in the schema audit
doublegate Oct 14, 2026
5a7d8b2
build(scripts): promote the local gate runner, containment check, A/B…
doublegate Oct 14, 2026
d98a678
test(fuzz): fuzz the five foreign-movie importers
doublegate Oct 14, 2026
bf3582f
docs(plans): keep the three surveys the v3.1-to-v4.0 plan came from
doublegate Oct 14, 2026
3974c23
docs(perf): the import's speed claims, re-measured against its own base
doublegate Oct 14, 2026
975826f
chore(release): v3.2.0 "Confluence"
doublegate Oct 14, 2026
7b97778
build(deps): rustls 0.23.46 for RUSTSEC-2026-0346 to 0349
doublegate Oct 14, 2026
228935d
fix(ci): mirror the zero-copy iOS render in the host typecheck stub
doublegate Oct 14, 2026
4c4c7e1
fix(ci): give bindgen a versioned Android triple for NDK 30
doublegate Oct 14, 2026
2d6cec6
docs: the counts the cut missed, from the #606 review
doublegate Oct 14, 2026
10d0b02
fix(mappers)!: Bandai FCG save states carry the EEPROM's protocol state
doublegate Oct 14, 2026
97e4ae1
fix(mappers): refuse corrupt states and impossible images before muta…
doublegate Oct 14, 2026
409aff2
fix(frontend): four review findings (netplay, Datach, save-file mode)
doublegate Oct 14, 2026
b40859f
fix(mobile): FDS saves on Android and iOS, and the saved-disk boot guard
doublegate Oct 14, 2026
8b8ecb4
fix(cosim): refuse --fb-every-frame without a frame run, up front
doublegate Oct 14, 2026
4f9cac8
fix(scripts): the promoted tools did less than their docs claimed
doublegate Oct 14, 2026
d53644f
docs: the review round's records -- changelog, tickets and stale counts
doublegate Oct 14, 2026
7d2bf0a
fix(mappers): refuse an EEPROM state the chip cannot reach, and mask …
doublegate Oct 14, 2026
4d8f063
fix(android): let only the running controller write an FDS save
doublegate Oct 14, 2026
c6f0fe9
perf(cosim): stream --fb-every-frame captures instead of holding them
doublegate Oct 14, 2026
fe29539
fix(scripts): compare untracked symlinks by target, not by opening them
doublegate Oct 14, 2026
ac32844
docs: v3.2.0 is the current release in to-dos/README; label S2's split
doublegate Oct 14, 2026
c28cc6d
docs(mappers): the Datach tail comment named the old save-state version
doublegate Oct 14, 2026
9303c23
docs(ios): the v3.2.0 Swift compiles; record the run that shows it
doublegate Oct 14, 2026
1c492c8
fix(android): move FDS save ownership synchronously, keep a retiring …
doublegate Oct 14, 2026
e502339
fix(scripts): quiet_ab queue writes its marker before dequeuing
doublegate Oct 14, 2026
6e1ad93
fix(scripts): make the quiet_ab queue append-only, locked, and honest
doublegate Oct 14, 2026
f447669
fix(scripts): quiet_ab's marker says whether the queue moved past it
doublegate Oct 15, 2026
4f011f1
docs: close the v3.2.0 sprint table; record two review-ceremony traps
doublegate Oct 15, 2026
1cb841a
docs(plan): item 6 says what shipped beside what was planned
doublegate Oct 15, 2026
7646075
fix(scripts): quiet_ab names its queue sidecars from the real path
doublegate Oct 15, 2026
6125621
fix(scripts): an unresolvable A/B base fails; the queue marker is O_EXCL
doublegate Oct 15, 2026
87ffc23
docs: v3.2.0's final MiSTer figures: ladder totals, seed 4, md5s
doublegate Oct 15, 2026
5971611
docs: v3.2.0's test counts from the last full run, in notes and STATUS
doublegate Oct 15, 2026
2dff9a1
docs(release): name v3.1.x as the refused range; count five fixes
doublegate Oct 15, 2026
7de8a4c
fix(mappers): a debugger peek no longer disarms the FFE trainer boot
doublegate Oct 15, 2026
0ee43e3
docs(roadmap): ticket the two follow-ups #604's last agy round left
doublegate Oct 15, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
63 changes: 63 additions & 0 deletions .github/release-notes/v3.2.0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
# RustyNES v3.2.0 — "Confluence"

Every v3.2.0 branch, both repositories, brought into one release. It adds 17 mapper families (191 to 208), among them the Bandai Datach with its barcode reader, and five more families are Curated on local-dump evidence. Five emulation defects are fixed: the VRC4's IRQ mode was read inverted, VRC2 mirroring had settings the chip does not have, *Fire Hawk* lost its single-screen mirroring on an iNES 1.0 header, mapper 290 did not boot, and a 24C02 EEPROM lost its word address across a START. An AI-made remediation branch was audited change by change before anything was kept: its byte-identical speed-ups are kept, and measured against the tree it joined: the APU mixes 2-6% faster and an MMC3 read about 9% faster, while its larger claims did not hold and two cartridge reads got slower for a reason not yet found; a 47% audio slowdown it introduced was found and removed; four of the five features it broke are fixed and kept, and Android audio is back on its blocking write, with the non-blocking version a ticket. Netplay moves to protocol 8, libretro save states shrink from 260 KB to about 16 KB, and new save files are owner-only. The MiSTer core gains sixteen boards, the Four Score, the Arkanoid controller, Game Genie cheats, more than eight sprites per line and custom palettes. **Movies and netplay from v3.1.x are refused, and so are v3.1.x save states of Bandai FCG games.**

## Breaking changes

- **Movies and netplay from v3.1.x are refused**: `EMULATION_EPOCH` rises from 3 to 4, because the mapper 290, 24C02, VRC4 IRQ, VRC2 and *Fire Hawk* fixes change what the bus sees. Save states are not affected by the epoch.
- **v3.1.x save states of Bandai FCG games are refused** (mappers 16, 153, 157 and 159): their state now carries each serial EEPROM's protocol position, so a state taken mid-transaction resumes it instead of leaving the chip idle, which could make rewind, run-ahead and netplay rollback diverge. Other boards' states are unchanged.
- **Netplay protocol 8 (`"RNE8"`)**: lost inputs are resent as one datagram per run of frames. A v3.1.x peer is refused as another emulator version.
- **The `Mapper` trait requires `ppu_peek`** (a side-effect-free PPU read for the debugger), so a mapper implemented outside this repository must add it. `cpu_peek`, `may_unmap_prg_rom`, `is_save_data_dirty`, `clear_save_data_dirty` and three barcode-reader methods are added with defaults.

## Fixed

- **The VRC4's IRQ runs in the mode the game asks for** (mappers 21, 23 and 25): bit 2 of the IRQ control register was read inverted, so a raster split got a counter about 114 times too fast.
- **VRC2 mirroring has two settings, not four**, and mappers 23 and 25 with NES 2.0 submapper 3 are built as the VRC2.
- ***Fire Hawk* gets its single-screen mirroring from an iNES 1.0 header** (mapper 71, submapper 0, at the first `$9000` write).
- **Mapper 290 (*Asder 20-in-1*) boots**, and **a 24C02 EEPROM keeps its word address across a START** (mappers 16 and 157).
- **FDS disk games keep their saves on Android and iOS**, and **the Android screen stays on during play**.

## Added

- **Mapper 157, the Bandai Datach Joint ROM System**, with a barcode reader for the games that read cards.
- **16 more families**: the MMC3-derived 114, 116, 165, 182, 197 and 215; FFE 6, 8 and 17; Tengen 158; TXC 172 and 173; Taito 207; the 235 multicarts and Waixing 252 (all Curated), and the 230 multicart (BestEffort). Mappers 47, 121, 154, 191 and 243 move to Curated. The split is now 51 Core, 130 Curated and 27 BestEffort: 181 of 208 families are accuracy-gated.
- **Famicom-only carts boot as a Famicom in the coverage sweep**, so ten dumps listed as blank now draw.

## Changed

- **Libretro save states are about 16 KB instead of 260 KB**: the framebuffer is no longer stored, and a full-size state still loads.
- **New save files are owner-only on Linux and macOS** (`0o600`).
- **rustls 0.23.46**, for four TLS advisories published during the release (RUSTSEC-2026-0346 to 0349), in the netplay WebSocket and HTTP clients.
- **The APU mixes 2-6% faster with expansion audio and 2-3% faster without**, byte-identical, in two independent A/B runs.
- **An MMC3 cartridge read is about 9% faster, and run-ahead on an MMC3 game about 5%**, from cached bank offsets; byte-identical, two independent runs. Whole-frame time and the PPU do not change measurably. MMC5 and Sunsoft FME-7 reads measure 4.7% and 6% slower although neither read function changed; the cause is not established (`docs/performance.md`, "v3.2.0 import").

## The AI remediation branch, audited

An unpushed agent branch arrived with 61 audit findings already applied. Nothing was merged as is. Every change was read against the code it replaced, and each defect found has a test that fails without the fix. Kept: 20 as written, 14 corrected. Reverted: 4, the audio ring write behind the 47% slowdown, an MMC5 IRQ change under which the IRQ stopped firing in real play, and two unmeasured libretro rewrites; an FDS audio formula change inside a kept finding was reverted too, because it moved every FDS game's audio. Rejected: 10, including six of its seven FPGA findings, which did not hold when re-derived in simulation and synthesis. The ledger is `docs/audits/v3.2.0-round2-audit-disposition.md`; the report's "certified" and "100% bit-accurate" claims are recorded as unverified, and two of them were tested and are false.

## The MiSTer core

- **Release candidate, not hardware-verified.** No hardware has run either bitstream.
- **Sixteen more boards**: UN1ROM, Nichibutsu UNROM, CPROM, J87, CNROM 185, GxROM, Jaleco JF-11/14, Color Dreams, NINA-03/06, Camerica 71 (including *Fire Hawk*) and 232, mapper 34, Namco 108, TxSROM, TQROM and MMC1 SUROM (off-die). Each is gated against the emulator, and thirteen against a commercial game's frame (SUROM's off-die only).
- **The Four Score, the Arkanoid controller and Game Genie cheats**, gated against goldens exported with the same device.
- **More than eight sprites per line** (on-die build) and **custom `.pal` palettes** with the emulator's emphasis model.
- **The oracle pin moves to v3.2.0**: all 842 golden artifacts from 188 stems reproduce byte for byte.
- **The co-simulation ladder**: 259 passed, 0 failed, 3 expected failures on-die and 260 / 0 / 5 off-die (v3.1.0: 212 / 0 / 1 and 213 / 0 / 1), each one run of a frozen tree, nothing skipped. The new expected failures are named and graded both ways: two commercial frames still differ from the emulator's, by one pixel (a sprite at X=255 on its last row) and by three scanlines of a mid-frame raster change, neither yet attributed; off-die, two more are a CHR-RAM read-back defect that predates this release (`T-MISTER-OFFDIE-CHRRAM`).
- **New bitstreams at fitter seed 4**, chosen from eight seeds swept on build date 261014 by the rule both builds share: the on-die build's binding margin chooses, and the off-die build must close at the chosen seed. Seeds 5 and 6 lead on-die but do not close off-die; seeds 1 (v3.1.0's) and 4 tie next, and only 4 closes off-die. Each was compiled twice to the same bytes:
- on-die `RustyNES_MiSTer-v3.2.0.rbf`, md5 `e24820de2e302d3f6912524b3c97a2be` (+0.213 ns setup, +0.079 ns hold);
- off-die `RustyNES_MiSTer-v3.2.0-offdie.rbf`, md5 `c33ae2b14e5b8e07a68b4335c728ca03` (+0.038 / +0.080 ns). The +0.038 ns path is inside the FPGA (the SDRAM controller's read data into the CPU), so board delay does not consume it; the SDRAM read capture itself has +0.453 ns setup and +1.180 ns hold over all four timing corners, assuming zero board delay.

## Verification

- `--features test-roms,commercial-roms`: 3,669 passed, 0 failed, 16 ignored, across 176 test binaries.
- The local commercial suites: `external_real_games` 60/0, `external_extended` 169/0, `external_coverage` 6/0 over every staged dump, 25 of them baselined new in this release.
- Every clippy, rustdoc, `no_std` and wasm invocation CI runs (23), clean.
- AccuracyCoin 146/146, nestest 0-diff, the epoch fingerprint at epoch 4, now recorded as the released epoch.

## Install

- Download the pre-built binaries for Linux, macOS, and Windows below.
- The MiSTer core bitstreams are attached below, as a release candidate, not hardware-verified. The on-die build is `RustyNES_MiSTer-v3.2.0.rbf`, also attached under its datecoded name, and the off-die build is `RustyNES_MiSTer-v3.2.0-offdie.rbf`.
- The WebAssembly build is live at [doublegate.github.io/RustyNES](https://doublegate.github.io/RustyNES/).
- The RetroArch core is in RetroArch's Online Updater on the platforms the libretro buildbot publishes to.
- Licensed under GPL-3.0-or-later.
20 changes: 14 additions & 6 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -892,10 +892,17 @@ jobs:
# build script panics before a single Rust line is compiled. The NDK path
# prefix matches `android.yml`'s (`$ANDROID_NDK_LATEST_HOME`, then
# `toolchains/llvm/prebuilt/linux-x86_64/...`).
#
# The --target carries an API level since the runner image moved to NDK
# 30 (October 2026): its sys/cdefs.h fails with "Unversioned target
# triples are not supported!" for plain `aarch64-linux-android`, which
# is the triple bindgen hands clang. 26 is the Android app's minSdk and
# the `--platform 26` cargo-ndk builds with, so the bindings see the
# same headers the shipped core is built against.
- name: Point bindgen at the NDK sysroot
if: matrix.target == 'aarch64-linux-android'
run: |
echo "BINDGEN_EXTRA_CLANG_ARGS_aarch64_linux_android=--sysroot=$ANDROID_NDK_LATEST_HOME/toolchains/llvm/prebuilt/linux-x86_64/sysroot" >> "$GITHUB_ENV"
echo "BINDGEN_EXTRA_CLANG_ARGS_aarch64_linux_android=--target=aarch64-linux-android26 --sysroot=$ANDROID_NDK_LATEST_HOME/toolchains/llvm/prebuilt/linux-x86_64/sysroot" >> "$GITHUB_ENV"
# Provision the aarch64 glibc headers for bindgen (see the matrix note).
# `libc6-dev-arm64-cross` lands the aarch64 glibc headers under
# `/usr/aarch64-linux-gnu/include`; `--sysroot` sends clang there instead of
Expand Down Expand Up @@ -1042,7 +1049,8 @@ jobs:

# v2.9.4 — the eight fuzz targets under fuzz/ were built by nobody: no
# workflow mentioned them, so a target could stop compiling and nothing would
# say so. This builds all eight and runs each for a FIXED number of inputs from
# say so. This builds them all (nine since v3.2.0's `movie_import`, the five
# foreign-movie importers) and runs each for a FIXED number of inputs from
# a FIXED seed, so a run is reproducible and a failure is a real crash, not a
# time-box artifact. It starts from an empty corpus (fuzz/corpus is local).
# Measured on the maintainer's machine with the local corpus: ~70 s for all
Expand All @@ -1051,7 +1059,7 @@ jobs:
# libFuzzer needs nightly; the fuzz crate is its own workspace (fuzz/Cargo.toml),
# so the project pin in rust-toolchain.toml does not apply to it.
fuzz:
name: fuzz (8 targets, fixed seed)
name: fuzz (9 targets, fixed seed)
needs: [changes, setup]
if: ${{ needs.changes.outputs.code == 'true' && needs.setup.outputs.heavy == 'true' }}
runs-on: ubuntu-26.04
Expand All @@ -1065,7 +1073,7 @@ jobs:
toolchain: nightly
apt: "false"
cache-key: fuzz
- uses: taiki-e/install-action@v2.87.26
- uses: taiki-e/install-action@v2.87.27
with:
tool: cargo-fuzz
- name: Build and run every fuzz target
Expand All @@ -1082,7 +1090,7 @@ jobs:
cargo +nightly fuzz build -O --target x86_64-unknown-linux-gnu
targets=$(cargo +nightly fuzz list)
n=$(printf '%s\n' "$targets" | grep -c .)
[ "$n" -ge 8 ] || { echo "::error::expected at least 8 fuzz targets, found $n"; exit 1; }
[ "$n" -ge 9 ] || { echo "::error::expected at least 9 fuzz targets, found $n"; exit 1; }
# Run EVERY target even after one crashes, so a single run reports
# all of them rather than the first (agy on #574).
failed=""
Expand Down Expand Up @@ -1129,7 +1137,7 @@ jobs:
with:
components: llvm-tools-preview
cache-key: coverage
- uses: taiki-e/install-action@v2.87.26
- uses: taiki-e/install-action@v2.87.27
with:
tool: cargo-llvm-cov
- run: cargo llvm-cov --workspace --lib --summary-only --fail-under-lines 70
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/security.yml
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ jobs:
# Reason 2 was an ACTIVE constraint until the v1.3.0 pin bump (1.86 vs
# cargo-audit's 1.88); it is slack today and can bind again after an MSRV
# change in either direction, so it is kept rather than deleted as history.
- uses: taiki-e/install-action@v2.87.26
- uses: taiki-e/install-action@v2.87.27
with:
tool: cargo-audit
- run: cargo audit
Expand All @@ -92,7 +92,7 @@ jobs:
# Prebuilt binary for the same two reasons as the audit job above: it is
# much faster than compiling cargo-deny, and it keeps the security gate
# independent of this repo's rustc pin. Policy lives in `deny.toml`.
- uses: taiki-e/install-action@v2.87.26
- uses: taiki-e/install-action@v2.87.27
with:
tool: cargo-deny
- run: cargo deny check
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -352,6 +352,10 @@ WARP.md
# Local scratch / salvage working dir (data/docs/logs pulled from /tmp triage); not
# part of the repo.
/salvaged/
# v3.2.0: an AI agent's /tmp-salvage scratch from the agy/Codex remediation
# branch (session transcripts, a /tmp listing, the author's address). Kept in the
# gitignored salvaged/ above; it must never be committed under this name either.
/salvaged_tmp/

# NOTE: BestEffort boot-smoke ROMs (homebrew/unlicensed/multicart) are no longer
# a separate tree — they live under the already-ignored tests/roms/external/
Expand Down
Loading
Loading