8000 Merge main into v3 (#509) by adityamukho · Pull Request #510 · project-minigraf/minigraf · GitHub
[go: up one dir, main page]

Skip to content

Merge main into v3 (#509) - #510

Merged
adityamukho merged 7 commits into
v3from
merge/main-into-v3-506
Oct 10, 2026
Merged

adityamukho merged 7 commits into
v3from
merge/main-into-v3-506

Conversation

@adityamukho
Copy link
Copy Markdown
Collaborator

Merges main into v3, bringing in the v2.x backport of #506 (#509) and the fuzz workflow changes (#500, #503).

Conflicts

CHANGELOG.md, CLAUDE.md, README.md, docs/ERROR_REFERENCE.md, docs/TEST_COVERAGE.md, src/error.rs and src/storage/backend/file.rs were all resolved to the v3 side. v3 already fixes #506 with the same STG-045 (#508). After resolution, the only change against v3 is main's new test in tests/edge_cases_test.rs.

Test adaptation

On v8, a database checkpointed only once still has the untouched gen-1 empty meta in page 0. A cut below one page then looks the same as a torn first write and opens as a new database (the limitation noted in #508). The merged test now checkpoints twice before cutting the file. Test counts are bumped by one.

cargo test: 1,373 passed, 9 ignored. Clippy (--all-features -D warnings) is clean.

Merge with a merge commit, not squash.

🤖 Generated with Claude Code

https://claude.ai/code/session_012wXxZguv7PgKQjMMH4yJ5h

adityamukho and others added 7 commits October 9, 2026 09:26
…387)

Scheduled workflows run main's copy of the file, so this is what makes the
nightly fuzz run reach v3. Same files as on v3 (#498):

- fuzz.yml: main at 04:00 UTC, v3 at 16:00 UTC (the cron string picks the
  branch, as in bench.yml); one parallel job per target from the branch's own
  fuzz/Cargo.toml; corpus restored from and saved to the Actions cache per
  branch and target; -timeout=60 for hangs.
- fuzz-corpus.yml: weekly cargo fuzz cmin per target, committed seed_* files
  kept, proposed as a pull request from bot/fuzz-corpus-<branch>.

Workflow-only; no code or test changes.

Refs #387

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012wXxZguv7PgKQjMMH4yJ5h
ci(fuzz): fuzz main and v3 nightly in parallel jobs, keep the corpus (#387)
cargo fuzz cmin names the inputs it keeps by the SHA-1 of their content,
so after putting the committed seed_* files back every kept seed was in
the corpus twice. The first run proposed 33 such copies and nothing else.

Refs #387

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012wXxZguv7PgKQjMMH4yJ5h
ci(fuzz): drop the hashed copy of each seed after cmin (#387, main)
…506)

Backport of #508 to v2.x. A file of 1..4095 bytes made FileBackend::open
report a new database and write a fresh header over it. It now opens as new
only when its bytes are zeros or a prefix of the initial header page;
anything else is STG-045 (same number and meaning as on v3), file unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012wXxZguv7PgKQjMMH4yJ5h
fix(storage): refuse a sub-page file that is not a torn first write (#506, v2.x backport)
Brings in the v2.x backport of #506 and the fuzz workflow changes (#500,
#503). Conflicts in CHANGELOG, CLAUDE.md, README, ERROR_REFERENCE,
TEST_COVERAGE, src/error.rs and src/storage/backend/file.rs resolved to v3,
which already fixes #506 with the same STG-045 (#508). main's
edge_cases_test regression test is kept, with a second checkpoint so page 0
is no longer the empty generation-1 meta; test counts bumped.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012wXxZguv7PgKQjMMH4yJ5h
@codecov
codecov Bot commented Oct 10, 2026
Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@adityamukho
adityamukho merged commit f5cfac0 into v3 Oct 10, 2026
24 checks passed
@adityamukho
adityamukho deleted the merge/main-into-v3-506 branch October 10, 2026 07:25
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.

1 participant

0