I2942 — Zkušební běh instalátoru nic nemění a průvodce instalací říká jen to, co je pravda
Zabránit tomu, aby `install.sh --dry-run --init` inicializoval repozitář, když je zjištěná verze již nainstalována, a opravit, co dokumenty o instalaci a distribuci ručně uvádějí nepravdivě: adresář klonu v krocích sestavení ze zdrojů, původ release před existencí atestace, jediné volání GitHubu, které instalátor může provést, a image kontejneru, který release workflow již publikuje.
HOTOVO vlna 0 · p1 · profil implementation · bezpečné souběžně
Cíl
Zabránit tomu, aby `install.sh --dry-run --init` inicializoval repozitář, když je zjištěná verze již nainstalována, a opravit, co dokumenty o instalaci a distribuci ručně uvádějí nepravdivě: adresář klonu v krocích sestavení ze zdrojů, původ release před existencí atestace, jediné volání GitHubu, které instalátor může provést, a image kontejneru, který release workflow již publikuje.
Proč
Přehled pravdy před v1.0.0-alpha.1 (2026-10-17, f6 a tato relace, master 707a04c7ce8). (1) share/install/install.sh.in spouštěl `run_init` ve své větvi 'already installed' před větví dry-run, takže `--dry-run --init` inicializoval repozitář; docs/INSTALL.md říká, že --dry-run nic nemění; případ 85 dělá dry-run jen s ničím nainstalovaným. Reprodukováno případem 3342 proti neopravenému instalátoru: zástupný launcher dostal `init`. (2) INSTALL.md.in naklonoval zástupný symbol repozitáře a pak přešel do zástupného symbolu binárky, což vykreslí `cd majordomus` po klonu, který vytvoří prismatic-majordomus. (3) 'every release archive is attested', zatímco releasy v0.3.1-v0.19.1 jsou uvedeny a krok attestace přišel s v0.20.0 (git show v0.19.1:.github/workflows/release.yml žádný nemá). (4) 'never GitHub's API', zatímco volitelná kontrola provenience jej volá přes gh. (5) docs/DISTRIBUTION.md říká, že není implementován žádný image kontejneru, zatímco úloha image v release.yml jej při každém release pushuje na ghcr.io.
Aktuální stav
Dry run může inicializovat repozitář; čtyři tvrzení v dokumentech o instalaci a distribuci jsou nepravdivá.
Cílový stav
Dry run nic nezmění v žádné větvi; dokumenty uvádějí, co dělá instalátor a workflow release.
Rozsah
- share/install/install.sh.in
- share/install/INSTALL.md.in
- site/static/install.sh
- docs/INSTALL.md
- docs/DISTRIBUTION.md
- test/cases/3342_a_dry_run_initialises_nothing.sh
Závislosti
Žádné. Tento úkol je kořenem grafu.
Kritéria přijetí
- S nainstalovanou vyřešenou verzí install.sh --dry-run --init nespustí žádný init a řekne, co by spustil; samotné --init jej stále spustí
- Kroky sestavení ze zdrojů klonují do adresáře, do kterého poté vstoupí
- Instalační příručka omezuje attestaci na releasy, které ji mají, a jmenuje kontrolu původu jako jediné volání GitHubu; DISTRIBUTION.md jmenuje image kontejneru
Validace
- bash test/run.sh 3342_a_dry_run_initialises_nothing 85_installer 86_installer_platform
Požadované důkazy
- dry_run_case
Důkazy
| pokrývá | typ | command | výsledek | u commitu |
|---|---|---|---|---|
| dry_run_case | test | bash test/run.sh 3342_a_dry_run_initialises_nothing 85_installer 86_installer_platform 97_install_gate | testy: 4 prošly, 0 selhalo (2026-10-18 ~03:15Z na 5b4f8ba6a3a). Dříve červené: 3342 proti site/static/install.sh masteru 707a04c selhává ('--dry-run --init ran init'). | 5b4f8ba |
Časová osa
- zahájeno
- 2026-10-18T03:16:08Z
- ověřeno
- 2026-10-18T03:16:23Z
- dokončeno
- 2026-10-18T03:16: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/I2942.yaml. Přečtěte jej zpět přes majordomus plan show I2942.