Repository navigation
test(storage): verify authentic historical SQLite upgrades - #655
Conversation
Generate every migration prefix from the authoritative test-only schema owner and verify normal forward upgrades against fresh schema and data contracts. Add provenance-bound official release main/WAL fixtures, append-only migration digests, explicit compatibility review, and transactional rollback coverage. Assisted-by: Suika (gensokyo-skills:suika-scatter-gather-planning)
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. |
[High impact] The reviewed changes appear safe to merge; no blocking issue was found. SummaryThe PR replaces reconstructed SQLite histories with authoritative migration prefixes and immutable released main/WAL snapshots. The latest changes reject unsupported generator arguments before any work starts.
Reviews (7) · Last reviewed commit: "fix(testing): reject unknown migration-g..." · Reviewed by Greptile |
Download, extract, and execute release generators in fresh private workspaces; preserve failed invocation evidence and cover the lifecycle with offline checks. End bare suite owner filters at the module boundary while preserving partial test selectors. Remove the cross-owner source text ban; retain migration digests, immutable provenance, forward-prefix matrices and transactional failure checks. Assisted-by: Suika (gensokyo-skills:suika-scatter-gather-planning)
Keep current cache inventory bounds and coverage policy alongside forward historical migration fixtures and reviewed test infrastructure. Assisted-by: Suika (gensokyo-skills:suika-scatter-gather-planning)
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 869e2015fe
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Keep checksum, archive member, pinned tag and fixture integrity checks active with Python optimization. Add offline refusal cases and run the suite in normal and optimized modes in the required CI quality lane. Assisted-by: Suika (gensokyo-skills:suika-scatter-gather-planning)
Resolve shared test owners by preserving both independent evidence suites, genuine prefix9/prefix11 private invariants, and unrelated storage lifecycle checks. Combine owner documentation without retaining duplicated EQP or reverse-built migration fixtures. Validation:154 selected storage, migration and cache tests,17CI planner tests, and5offline generator tests in both normal and optimized Python passed. Assisted-by: Suika (gensokyo-skills:suika-scatter-gather-planning)
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: a64779ee68
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Stream downloads and executable extraction through fixed buffers with incremental hashes and independent actual/declared byte limits. Bound checksum responses, archive members, expanded tar, metadata reads and XZ decoder memory before executing a verified release. Document every preparation bound and retain immutable fixture bytes. Ten offline tests pass in normal and optimized Python, and all three retained official archives pass bounded preparation without network or execution. Assisted-by: Suika (gensokyo-skills:suika-scatter-gather-planning)
Write child stdout and stderr directly to private regular files under the existing kernel file-size limit, and bound successful stdout readback before JSON parsing. Preserve logs on failure and timeout without captured output pipes. Twelve offline tests pass in normal and optimized Python, including real child stdout/stderr overflow checks. Immutable release fixtures remain unchanged. Assisted-by: Suika (gensokyo-skills:suika-scatter-gather-planning)
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: b859a4d92b
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 0d8ad97179
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Read bounded checked-in provenance before network access and validate its fixed version, tag, commit and digest identities. Require streamed archive and executable hashes to match those trusted pins; endpoint checksum files are consistency checks and cannot update execution authority. Fourteen offline tests pass in normal and optimized Python, including a jointly replaced archive/checksum negative case. All three retained official archives pass bounded preparation against unchanged committed pins. Assisted-by: Suika (gensokyo-skills:suika-scatter-gather-planning)
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: fd0d7e46d3
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Accept only explicit generation or the exact --prepare mode before any workspace, network or executable activity. Exercise the real optimized entry point and invalid/duplicate arguments offline. Assisted-by: Suika (gensokyo-skills:suika-scatter-gather-planning)
Summary
Replace SQLite migration tests that subtracted objects from the latest schema with forward upgrades from authoritative migration declarations. A private cfg(test) helper constructs historical prefixes; normal Storage::open performs upgrades.
Add immutable main/WAL snapshots produced by official v0.1.15, v0.1.27 and v0.1.28 executables, with pinned binary/source/dependency provenance. Verify canonical schemas, historical data and FTS, counters, constraints, reopen, subsequent writes and transactional failure rollback. Freeze released migration/provenance digests and document the two historical column-order exceptions.
Explicit fixture regeneration uses fresh private workspaces, committed archive/executable hashes, streaming reads and independent archive/member/executable/decoder limits. Child stdout/stderr use regular files under a 4 MiB kernel file limit. Only zero arguments or exactly --prepare are accepted, before any workspace/network/execution activity. Normal CI runs offline checks in normal and optimized Python. Bare focused-owner selectors now stop at the module boundary while partial selectors retain their behavior.
Closes #519.
Validation