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.

I2720 — majordomus self update znovu spouští publikovaný instalátor a nikdy ho nereimplementuje

Dát každé instalaci jeden typovaný příkaz, který hlásí a provádí upgrade na stabilní release spuštěním publikovaného install.sh s --version a vlastním prefixem instalace, aby stažení, ověření a výměna existovaly jednou.

PŘIPRAVENO vlna 0 · p0 · profil implementation · bezpečné souběžně

Součást safe-self-update — Každý uzel mesh sleduje publikovaný release sám, verze se potkávají bezpečně a původ release lze ověřit.

Připraveno. Všechny závislosti jsou hotové, takže majordomus plan start I2720 bude přijato.

Cíl

Dát každé instalaci jeden typovaný příkaz, který hlásí a provádí upgrade na stabilní release spuštěním publikovaného install.sh s --version a vlastním prefixem instalace, aby stažení, ověření a výměna existovaly jednou.

Proč

ADR 0161 (rozhodnutí vlastníka z 2026-10-14) určuje, že uzel mesh následuje publikovaný release. docs/DISTRIBUTION.md nechával otevřené, zda self-update znovu implementuje instalátor v Rustu, nebo jej znovu spouští; ADR 0161 rozhoduje, že jej znovu spouští, protože kontrola digestu a velikosti instalátoru a jeho atomické přejmenování launcheru jsou otestovanou rizikovou částí (případ 85).

Aktuální stav

Žádný příkaz self-update neexistuje; člověk znovu spustí install.sh s --version na každém stroji.

Cílový stav

Schopnost self.update s --check (aktuální verze, verze stabilního ukazatele, zda se upgrade uplatní, verdikt jen-dopředu a jen-stabilní) a --apply (spustí instalátor, který jmenuje share/distribution.yaml instalace, s --version <tag> a prefixem instalace, a hlásí nainstalovanou verzi přečtenou zpět z nového launcheru). Odmítne downgrade, pre-release a verzi, kterou metadata neuvádějí.

Rozsah

  • apps/majordomus-cli/src/capability/builtin
  • apps/majordomus-cli/src/release
  • share/commands.yaml
  • docs/DISTRIBUTION.md
  • docs/CLI.md
  • test/cases

Mimo rozsah

  • Druhá implementace stahování, verifikace nebo výměny
  • Aktivace nové verze v běžícím serveru (I2722, I2163)

Závislosti

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

Co na tom čeká

Kritéria přijetí

  • self update --check jmenuje běžící a stabilní verzi a zda se upgrade uplatní, bez zápisu do sítě
  • self update --apply nainstaluje stabilní release přes install.sh a nový launcher ho ohlásí
  • Downgrade, pre-release a verze mimo seznam se odmítají s uvedením důvodu

Validace

  • bin/majordomus plan validate
  • MJ_TEST_JOBS=4 bash test/run.sh 85_installer <případ, který tento úkol přidá>

Požadované důkazy

  • self_update_wraps_installer_test
  • self_update_refuses_downgrade_test

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

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