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.

I1108 — Požadovaná integrace je hodnota a plán je diff

Vypočítat, jak má integrace Majordomus v repozitáři vypadat, jako typovanou hodnotu, porovnat ji s tím, co repozitář skutečně obsahuje, a z apply udělat nejmenší mutaci, která mezeru uzavře.

BLOKOVÁNO vlna 3 · p0 · profil deep-work · bezpečné paralelně

Součást two-folder-integration — Repozitář, který přijme Majordomus, získá dva adresáře a dva řádky a může je vrátit.

Blokováno. Tento úkol nemůže začít, dokud není I1106 hotovo. Stav je z toho odvozen, ne deklarován.

Cíl

Vypočítat, jak má integrace Majordomus v repozitáři vypadat, jako typovanou hodnotu, porovnat ji s tím, co repozitář skutečně obsahuje, a z apply udělat nejmenší mutaci, která mezeru uzavře.

Proč

`init`, který zapisuje to, co byl napsán zapsat, nelze spustit dvakrát, nelze ho náhledově zobrazit a nelze ho vrátit. Požadovaný stav, který je hodnotou, lze porovnat, ukázat před použitím a vrátit zpět.

Aktuální stav

Inicializace zapíše kostru. Nic nepočítá, co chybí, nic nehlásí, co by se změnilo, a opakované spuštění není definovaná operace.

Cílový stav

Jedna funkce vytvoří požadovanou integraci z modelu repozitáře, jedna vytvoří rozdíl a apply spotřebuje rozdíl — takže suchý běh je tentýž výpočet bez posledního kroku.

Rozsah

  • apps/majordomus-cli/src/commands/init.rs
  • apps/majordomus-cli/src/integration

Mimo rozsah

  • Aplikace čehokoli, co dry run neukázal
  • Požadovaný stav, který závisí na konfiguračním souboru, a ne na modelu

Závislosti

Co na tom čeká

Kritéria přijetí

  • Požadovaná integrace se odvozuje z modelu repozitáře a repozitář, který už vyhovuje, vytvoří prázdný rozdíl
  • Rozdíl je typovaná hodnota, která jmenuje každou cestu, kterou by vytvořila, změnila nebo odstranila, a proč
  • Nanečisto provede stejný výpočet jako ostrý běh a nic nemění
  • Aplikace provede přesně rozdíl a nic jiného, dokázáno porovnáním stromu před a po proti plánu
  • Mutace, kterou plán nejmenoval, je chyba a test dokazuje, že ji apply nemůže vyrobit

Validace

  • majordomus init --dry-run
  • cargo test --workspace --all-features

Požadované důkazy

  • desired_state_typed
  • plan_is_diff
  • dry_run_mutates_nothing

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á.

Riziko

Rekonciliátor, který počítá, jak má repozitář vypadat, se o nějakém jednou splete. Vše, co by udělal mimo oba jmenné prostory, musí být vidět dřív, než se to stane.

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

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