diff --git a/tools/check.sh b/tools/check.sh index 3e553f8d..20de302c 100755 --- a/tools/check.sh +++ b/tools/check.sh @@ -395,7 +395,10 @@ run_rust_gate() { if [ "$rc" -eq 0 ] && [ "${MISALIGNED_BEVY_SMOKE:-0}" = "1" ]; then step "headless Bevy evidence" - bash tools/bevy-headless.sh dark --no-build || rc=1 + # cargo test and clippy do not produce target/debug/misaligned-bevy. + # Let the helper build that real binary so smoke works in a freshly + # seeded worktree as well as one with prior local runs. + bash tools/bevy-headless.sh dark || rc=1 elif [ "$rc" -eq 0 ]; then echo "headless Bevy evidence: SKIP (set MISALIGNED_BEVY_SMOKE=1)" fi @@ -421,7 +424,7 @@ run_rust_gate() { if [ "$rc" -eq 0 ] && [ "${MISALIGNED_BEVY_SMOKE:-0}" = "1" ]; then step "headless Bevy evidence" - bash tools/bevy-headless.sh dark --no-build || rc=1 + bash tools/bevy-headless.sh dark || rc=1 fi ;; esac diff --git a/wiki/log/2026-07-10-fresh-bevy-smoke.md b/wiki/log/2026-07-10-fresh-bevy-smoke.md new file mode 100644 index 00000000..6d565a00 --- /dev/null +++ b/wiki/log/2026-07-10-fresh-bevy-smoke.md @@ -0,0 +1,37 @@ +# 2026-07-10 — Make Bevy smoke self-sufficient + +``` +Type: log +``` + +## Intent + +Repair the optional frontend smoke gate so it passes in a freshly seeded +worktree instead of depending on a manually built Bevy binary. + +## Changed + +- Removed `--no-build` from the frontend and full smoke-gate invocations. +- Kept `--no-build` available to callers that have deliberately built the + binary already; the check gate no longer relies on that hidden precondition. +- Documented why the smoke harness owns the binary build. + +## Design/spec impact + +This fixes the existing headless-evidence contract in +`wiki/process/agent-scale.md`: a land proof must run without a watched window +or prior manual setup. Cargo tests and clippy build test artifacts, not the +launchable `misaligned-bevy` binary the harness executes. + +## Verification + +- Removed the private worktree's `target/debug/misaligned-bevy` first, then + ran `MISALIGNED_BEVY_SMOKE=1 ./tools/check.sh --frontend`. +- The gate rebuilt the missing binary, captured `dark`, and passed its fog + audit and PNG validation (SHA-256 + `a3a935a5cfed53b55fd8b374d0001dd356ee6d93d6aa8e73f32d90ff9cac0ec1`). +- Repeated the missing-binary proof through + `MISALIGNED_BEVY_SMOKE=1 ./tools/check.sh --full`; all workspace tests, + clippy, agent smoke, docs gates, and Bevy evidence passed. +- `./tools/check.sh --land` (docs auto-classification after the explicit + frontend smoke evidence) diff --git a/wiki/log/DEVLOG.md b/wiki/log/DEVLOG.md index ce2c2e1e..ec9c16a5 100644 --- a/wiki/log/DEVLOG.md +++ b/wiki/log/DEVLOG.md @@ -181,6 +181,11 @@ add or amend a session log, then re-run the generator. - Intent: Cameron, from an Ears-beat screenshot: the material frame showed concentric noise-field rings and schematic floor language. He wants only **dark shapes for things that are detectable** — not radar rings. - Log: [wiki/log/2026-07-10-heard-mass-only.md](2026-07-10-heard-mass-only.md) +## 2026-07-10 - Make Bevy smoke self-sufficient + +- Intent: Repair the optional frontend smoke gate so it passes in a freshly seeded worktree instead of depending on a manually built Bevy binary. +- Log: [wiki/log/2026-07-10-fresh-bevy-smoke.md](2026-07-10-fresh-bevy-smoke.md) + ## 2026-07-10 - The thought fluid goes READY - Intent: Cameron affirmed all four PROPOSED taste calls on the thought-fluid render spec in one pass ("seems fine to me, proceed"). diff --git a/wiki/process/workflows.md b/wiki/process/workflows.md index 1193d8f7..47424e11 100644 --- a/wiki/process/workflows.md +++ b/wiki/process/workflows.md @@ -306,7 +306,9 @@ MISALIGNED_BEVY_SMOKE=1 ./tools/check.sh --frontend The helper requires process exit 0, `fog audit OK`, and a valid PNG. The env flag keeps this optional in ordinary gates while making it one switch for a -frontend land. +frontend land. When enabled through `check.sh`, the harness builds the real +Bevy binary itself: frontend tests and clippy do not guarantee that a fresh +worktree already has `target/debug/misaligned-bevy`. Agent mode is the standard observed-run gate for terminal playability. It is command-clocked, deterministic under `--seed`, and produces plain-text frames