Přeskočit na obsah

Tato stránka byla automaticky přeložena z angličtiny, jediného jazyka, ve kterém se tento web píše. Číst originál.

I2713 — Build nikdy nenechá nečinné inkrementální relace zaplnit disk

Zařídit, aby vlastní vstupní body buildu repozitáře udržovaly inkrementální cache adresáře buildu omezenou, aby souběžné relace stavějící na jednom stroji nemohly vyčerpat disk.

HOTOVO vlna 0 · p0 · profil implementation · bezpečné souběžně

Součást development-runtime — The runtime has a development surface.

Cíl

Zařídit, aby vlastní vstupní body buildu repozitáře udržovaly inkrementální cache adresáře buildu omezenou, aby souběžné relace stavějící na jednom stroji nemohly vyčerpat disk.

Proč

2026-10-14 16:20-17:57Z: volné místo na sdíleném Macu kleslo ze 71 GiB na 4 GiB; derive odmítl běžet (\"4935MB free, floor 5120MB\") a řetězec každé relace se zastavil. Jeden soukromý build adresář vyrostl z 21 na 47 GiB, z toho 24 GiB debug/incremental: 574 adresářů relací, z nichž jediný byl živý. Ruční smazání nečinných vrátilo 16 GiB, zatímco kompilace stále běžela. Vlastník: \"tohle se nesmi stavat\".

Aktuální stav

omezený build z lib/rust_bin.sh odmítne pod hranicí volného místa, ale nikdy nic nepřebírá zpět; cargo drží každou dokončenou inkrementální relaci až do clean.

Cílový stav

Než začne build (mj_cargo_bounded a každý skript, který staví přes něj), odstraní se nečinné inkrementální adresáře relací jeho build adresáře starší než deklarované stáří (nikdy ten končící na -working, nikdy build adresář jiného stromu), co se uvolnilo, se vypíše na stderr, a když je volné místo stále pod deklarovanou hranicí, build odmítne s vyjmenováním největších build adresářů.

Rozsah

  • lib/rust_bin.sh
  • scripts/derive
  • docs/DEVELOPMENT_RUNTIME.md
  • .ai/repo/policy.yaml
  • test/cases

Mimo rozsah

  • Mazání build výstupu jiného worktree nebo jakéhokoli adresáře target

Závislosti

Žádné. Tento úkol je kořenem grafu.

Co na tom čeká

Kritéria přijetí

  • Build uklidí nečinné inkrementální relace vlastního adresáře buildu a řekne, kolik uvolnil
  • Živá relace (-working) a jiné adresáře sestavení se nikdy nedotýkají
  • Pod hranicí po pročištění odmítnutí jmenuje největší adresáře sestavení

Validace

  • bin/majordomus plan validate

Požadované důkazy

  • idle_sessions_are_pruned_case

Důkazy

pokrývátypcommandvýsledeku commitu
idle_sessions_are_pruned_casetestbash test/run.sh 3080_idle_incremental_sessions_are_pruned 3196_stale_crate_artifacts_are_pruned_under_cargos_lockok 3080, ok 3196 (2 passed); 3196 fails with the lock or the process check removeded7a000

Časová osa

zahájeno
2026-10-17T09:23:02Z
ověřeno
2026-10-17T09:23:19Z
dokončeno
2026-10-19T15:30:44Z

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/I2713.yaml. Přečtěte ho zpět pomocí majordomus plan show I2713.

Prohledává názvy a popisy všech stránek, které tento web publikuje.