I0824 — Bench ukládá místní běhy a drží projekci latest
Zapsat každý běh atomicky do .ai/local/benchmarks/runs/<run-id>.json a .ai/local/benchmarks/latest.json a připojit jeden řádek za běh do history.jsonl.
HOTOVO vlna 2 · p0 · profil implementation · běží samostatně
Součást M004 — Výkon je spustitelný důkaz a horká cesta nedělá žádnou kanonickou práci dvakrát.
Cíl
Zapsat každý běh atomicky do .ai/local/benchmarks/runs/<run-id>.json a .ai/local/benchmarks/latest.json a připojit jeden řádek za běh do history.jsonl.
Proč
Důkazy, které žijí jen v terminálu, zaniknou spolu s terminálem.
Aktuální stav
Nic se neukládá.
Cílový stav
Lokální důkazy pod .ai/local/, ignorované gitem, nikdy základní hodnota; latest.json je pohodlná projekce nejnovějšího běhu.
Rozsah
- lib/bench.sh
- docs/SCHEMAS.md
- test/cases/80_bench_persistence.sh
Mimo rozsah
- Commit lokálních běhů
Závislosti
Co na tom čeká
Kritéria přijetí
- Přerušení běhu nezanechá částečný latest.json
- Případ 80 dokazuje soubory a verzi schématu
Validace
- bash test/run.sh 80_bench_persistence
Požadované důkazy
- bench_persisted
Důkazy
| pokrývá | typ | command | výsledek | u commitu |
|---|---|---|---|---|
| bench_persisted | test | bash test/run.sh 80_bench_persistence | případ 80 spustí bench dvakrát a ověří jeden dokument na běh pod .ai/local/benchmarks/runs, latest.json bajt po bajtu shodný s nejnovějším během, history.jsonl s jedním parsovatelným řádkem na běh v pořadí, každý dokument nesoucí schéma majordomus/benchmark-result/v1 s commitem, příznakem dirty, prostředím a profilem, žádný dočasný soubor nepřežívající uložení; běh zabitý uprostřed nezanechá žádný dokument běhu, žádný latest.json a žádný řádek historie, protože uložení je jediné tmp+mv na konci; běh nic sledovaného nemění a --no-save nezapíše nic | next |
Riziko
history.jsonl je jen pro připojování; poškozený řádek hlásí validace, nikdy se tiše nepřeskočí.
Časová osa
- zahájeno
- 2026-09-05T03:47:33Z
- ověřeno
- 2026-09-05T03:47:33Z
- dokončeno
- 2026-09-05T03:47:33Z
Tato tři pole, důkazy výše a stav závislostí jsou vše, z čeho se stav skládá. Neexistuje žádné pole stavu, které by s nimi mohlo být v rozporu.
Kanonický záznam: .ai/repo/project/issues/I0824.yaml. Načtěte ho zpět pomocí majordomus plan show I0824.