mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-09-26 21:36:06 -04:00
d53c4bf796
Closes the gap that made main red for nine hours. R42 ('commit a dirty tree rather than
revert it') is correct for a per-binary gate that leaves PROVEN banks uncommitted, and WRONG
for gate_main, whose substitution is unverified by construction until the SHA matches.
Two guards, defense in depth:
1. gate_main installs atexit + SIGTERM/SIGINT/SIGHUP handlers that revert its own substitution
unless a bank actually succeeded. Killed mid-run, it now cleans up after itself.
2. ox_campaign's dirty-tree commit REFUSES top-level src/*.c (main's sources), reverting those
and committing the rest. Verified: src/800c.c and src/800.c refused, src/ov_*/... and
src/shared/engine_core.h still commit.
Also versions the autonomous lane scripts under tools/lanes/ — they lived only in gitignored
.run/, so a fresh clone had no drafter, gater, maintenance or stallguard at all.
17 lines
945 B
Bash
17 lines
945 B
Bash
#!/usr/bin/env bash
|
|
set -u
|
|
cd /home/musashi/bfm-decomp
|
|
KEY=$(grep -m1 '^open_router_key=' .env | cut -d= -f2-)
|
|
export API_BASE=https://openrouter.ai/api/v1 API_KEY="$KEY" MODEL=stealth/ox-alpha MAXTOK=16000 MAX_429=10
|
|
# A TOOLING-DESIGN brief must read the build config and the tool sources; a decompilation
|
|
# brief must not. Granted only for this task, via EXTRA_READABLE.
|
|
export EXTRA_READABLE='config,tools,Makefile'
|
|
.venv/bin/python -u tools/api_agent.py --targets .run/bakeoff/toolwork/t_jtbl.json \
|
|
--brief .run/bakeoff/toolwork/brief_jtbl.txt --out .run/bakeoff/toolwork/out_jtbl \
|
|
--max-turns 50 --max-cost 2.0 > .run/bakeoff/toolwork/jtbl.log 2>&1 &
|
|
.venv/bin/python -u tools/api_agent.py --targets .run/bakeoff/toolwork/t_o0cc1.json \
|
|
--brief .run/bakeoff/toolwork/brief_o0cc1.txt --out .run/bakeoff/toolwork/out_o0cc1 \
|
|
--max-turns 50 --max-cost 2.0 > .run/bakeoff/toolwork/o0cc1.log 2>&1 &
|
|
wait
|
|
echo "TOOLWORK ANALYSIS DONE"
|