I2714 — Jeden build adresář nikdy neslouží úlohám dvou worktree najednou
Zabránit tomu, aby adresář buildu nastavený přes CARGO_BUILD_BUILD_DIR používaly úlohy dvou různých worktrees současně, aby build jedné úlohy nemohl nahradit artefakty, které testuje jiná.
PŘIPRAVENO vlna 0 · p1 · profil implementation · bezpečné souběžně
Součást development-runtime — The runtime has a development surface.
Připraveno. Všechny závislosti jsou hotové, takže majordomus plan start I2714 bude přijato.
Cíl
Zabránit tomu, aby adresář buildu nastavený přes CARGO_BUILD_BUILD_DIR používaly úlohy dvou různých worktrees současně, aby build jedné úlohy nemohl nahradit artefakty, které testuje jiná.
Proč
2026-10-14 ~17:30Z: úloha rust posuzující I1501 běžela v soukromém build adresáři b6-zeta, zatímco tam stavěl i landing chain jiného worktree a agent; asi 600 doctestů selhalo s „no such file ... libmajordomus_cli-8669a524ae357c6a.rlib“ a projection-closure „could not answer“. Nic z toho nebyla vada headu; čtyřicetiminutovou úlohu bylo nutné spustit znovu. ADR 0139 klíčuje výchozí build adresář podle worktree, ale exportované CARGO_BUILD_BUILD_DIR jej přebíjí pro každý worktree, který je zdědí.
Aktuální stav
mj_cargo_bounded čeká na zámek cargo a na soukromý adresář přejde jen tehdy, když je sdílený obsazený déle než minutu; explicitně exportovaný adresář, který používají dva worktree, se přijme bez hlášení.
Cílový stav
Build zaznamenává, který worktree drží jeho adresář buildu, dokud běží; build z jiného worktree, který najde adresář držený, odmítne, nebo přejde na vlastní adresář, a řekne to, dříve než cokoli zkompiluje.
Rozsah
- lib/rust_bin.sh
- docs/DEVELOPMENT_RUNTIME.md
- .ai/repo/adrs/0139-*.md
- test/cases
Závislosti
Žádné. Tento úkol je kořenem grafu.
Kritéria přijetí
- Dvě worktree buildující najednou se stejným CARGO_BUILD_BUILD_DIR: druhé odmítne nebo se přesune s řádkem, který jmenuje držitele
- Opakované buildy jednoho worktree ve vlastním adresáři zůstávají nedotčeny
Validace
- bin/majordomus plan validate
Požadované důkazy
- build_dir_has_one_holder_case
Důkazy
Nic nezaznamenáno. Za každým tokenem výše musí stát příkaz nebo artefakt, než lze tento úkol dokončit; vyprávění se odmítá.
Časová osa
- zahájeno
- —
- ověřeno
- —
- dokončeno
- —
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/I2714.yaml. Přečtěte ho zpět pomocí majordomus plan show I2714.