test(vcr-mem): layer-2 cross-check on gust_kernel's flashed silicon budget (#242, #383)#424
Merged
Merged
Conversation
…udget (#242, #383) jess is flashing gust_kernel.wasm with an integrator-ASSERTED `--shadow-stack-size 4096` on the Renode-M3 / STM32F100 rung (gale#65). This test is the layer-2 cross-check on that live budget: scry PROVES gust_kernel's worst-case shadow-stack depth is Bytes(16) (sp_global=0, no recursion, 6 reachable), so the proven depth clears the flashed 4096 with a 256x margin — the asserted budget is SOUND, not an under-reservation. layer-2 would auto-derive 16 B (ProvenStackDepth), 256x tighter than 4096 and 65536x under the 1 MiB declared-page default. Previously only the asserted 4096 was on record; gust_kernel's PROVEN depth was unmeasured. `layer2_gust_kernel_proven_depth_clears_flashed_budget_383` (synth-cli main.rs cfg(test)) extends the msgq end-to-end pattern to the fixture jess actually flies, asserting proven<=flashed so a scry bump that raised the proven depth above the budget reddens CI before silicon, not after. Frozen-safe: scry stays a DEV-dep under cfg(test); production bytes unchanged. Roadmap VCR-MEM-001 records the proven-vs-asserted finding. Verification: `cargo test -p synth-cli --bin synth layer2_` -> 2/2 pass; fmt + clippy -D warnings clean; rivet check zero non-xref errors. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Codecov Report❌ Patch coverage is
📢 Thoughts on this report? Let us know! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
jess is flashing
gust_kernel.wasmwith an integrator-asserted--shadow-stack-size 4096on the Renode-M3 / STM32F100 rung (gale#65). This adds the layer-2 cross-check on that live budget:Bytes(16)(sp_global=0, no recursion, 6 reachable).budget_from_bound(Bytes(16), sp_init=1048576, Some(4096))→Use{16, ProvenStackDepth}: layer-2 would accept jess's budget and could auto-derive an even tighter 16 B (256× under 4096, 65536× under the 1 MiB declared-page default).Previously only the asserted 4096 was on record; gust_kernel's proven depth was unmeasured. This is the safety sanity-check on the exact number going onto hardware.
Why it's not corpus-fill
layer2_gust_kernel_proven_depth_clears_flashed_budget_383assertsproven ≤ flashedon the fixture jess actually flies. If a future scry bump ever raised gust_kernel's proven depth above the flashed budget, CI reddens before silicon, not after. It extends the msgq end-to-end pattern (#423) to the live-work fixture.Frozen-safe
scry stays a dev-dep under
cfg(test)→ production bytes unchanged. No MODULE.bazel pin, no codegen change. Roadmap VCR-MEM-001 records the proven-vs-asserted finding.Verification
cargo test -p synth-cli --bin synth layer2_→ 2/2 pass (msgq + gust_kernel)cargo fmt --checkclean;cargo clippy -p synth-cli --all-targets -- -D warningscleanrivet check→ zero non-xref errorsRefs #242, #383 (gale#65 silicon rung).
🤖 Generated with Claude Code