I2670 — Nabídka build cache je typovaný model a její výběr je čistá, vysvětlená funkce
Modelovat nabídku (protokol, provider, rozsah, neutajovaný endpoint, bucket, priorita, kapacita, zdraví) a mezi nabídkami vybírat deterministicky s uvedením důvodu.
PŘIPRAVENO vlna 0 · p1 · profil implementation · běží samostatně
Součást development-runtime — The runtime has a development surface.
Připraveno. Všechny závislosti jsou hotové, takže majordomus plan start I2670 bude přijato.
Cíl
Modelovat nabídku (protokol, provider, rozsah, neutajovaný endpoint, bucket, priorita, kapacita, zdraví) a mezi nabídkami vybírat deterministicky s uvedením důvodu.
Proč
Vlastník, 2026-10-13, s plným oprávněním: zprovoznit MinIO, server sccache a každý uzel mesh, ověřeno a validováno. Cluster kompiluje stejný Rust na každém stroji ze studené cache; dva deklarované offload hostitelé byli ten den pod svým minimem disku. Viz ADR 0157.
Aktuální stav
Změřeno na masteru b29cf4e487 dne 2026-10-13: ve zdrojích, schématu ani dokumentaci neexistuje žádný pojem build-cache, S3 ani minio; sccache se objevuje jen v buildu kontejneru (deploy/render.rs) a v ADR 0055 a 0139.
Cílový stav
Typovaná Offer a select(), která řadí podle zdraví, rozsahu, priority, rezervy, doby odezvy a id uzlu a vrací volbu s přeskočenými kandidáty; žádná nabídka je normální odpověď; v typu neexistuje žádné tajné pole.
Rozsah
- apps/majordomus-cli/src/mesh/build_cache/
- share/schemas/majordomus/mesh-declaration/
Mimo rozsah
- Transport zjišťování: I2671
- Jakýkoli příkaz nebo endpoint: I2672
Závislosti
Žádné. Tento úkol je kořenem grafu.
Co na tom čeká
- I2671BLOKOVÁNO Poskytovatel nabízí svou cache jako podepsaný, expirující záznam meshe a zastavený poskytovatel zastará
- I2672BLOKOVÁNO Nabídky a výběr jsou jedno čtení, promítnuté do CLI, MCP, HTTP a OpenAPI
- I2673BLOKOVÁNO Klientská konfigurace sccache je odvozena z vybrané nabídky, nejprve lokální disk
- I2674BLOKOVÁNO Uzel se idempotentně zřídí jako poskytovatel cache S3, bez jakéhokoli tajemství v repozitáři
Kritéria přijetí
- Výběr je deterministický pro jakékoli pořadí týchž nabídek
- Zastaralá nebo nezdravá nabídka není nikdy zvolena před zdravou a je uvedena jako přeskočená
- Žádné nabídky nevyberou žádnou a řeknou to
- Serializovaná podoba nemůže nést přihlašovací údaj
Validace
- bin/majordomus plan validate
- cargo test --manifest-path apps/majordomus-cli/Cargo.toml --lib mesh::build_cache
Požadované důkazy
- build_cache_model_unit_tests
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/I2670.yaml. Přečtěte ho zpět pomocí majordomus plan show I2670.