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.

I2718 — Propojený worktree spouští vlastní hooky, nikdy hooky primárního checkoutu

Zařídit, aby každý propojený worktree spouštěl a doctor posuzoval hooky vlastního stromu, aby zastaralý primární checkout nemohl odmítnout ani oslabit commity všech ostatních worktrees.

HOTOVO vlna 0 · p0 · profil implementation · bezpečné souběžně

Součást development-runtime — The runtime has a development surface.

Cíl

Zařídit, aby každý propojený worktree spouštěl a doctor posuzoval hooky vlastního stromu, aby zastaralý primární checkout nemohl odmítnout ani oslabit commity všech ostatních worktrees.

Proč

2026-10-14 ~19:25Z: commity na větvích založených na aktuálním masteru byly odmítnuty v každém worktree s \"FAIL wiring ssh-permissions-on-commit — providers-check --permissions-only is not invoked by <primary checkout>/.githooks/pre-commit\". core.hooksPath je relativní `.githooks` a git 2.55 ho řeší proti HLAVNÍMU worktree (`git -C <linked worktree> rev-parse --git-path hooks` odpovědělo cestou primárního), takže všech 329 propojených worktree spouštělo hooky primárního checkoutu, který stál na afbc25924a (2026-10-11). Opraveno ručně v 19:3xZ se souhlasem vlastníka: .githooks primárního obnoveno z origin/master, zapnuto extensions.worktreeConfig (repositoryformatversion 1) a každému propojenému worktree nastaveno core.hooksPath = jeho vlastní absolutní .githooks v config.worktree. Worktree vytvořené po tom se opět vrací k primárnímu.

Aktuální stav

Nastavení pro jednotlivé worktree existuje jen tam, kde bylo zadáno ručně; `majordomus worktree create` ho nenastavuje; kontrola zapojení v doctoru čte, co odpoví `git rev-parse --git-path hooks`, aniž by řekla, hooky kterého stromu to jsou.

Cílový stav

`majordomus worktree create` (a `worktree migrate`/repair) nastaví worktree vlastní core.hooksPath a zapne extensions.worktreeConfig, když je vypnuto; doctor selže, s příkazem, který to napraví, když se hooky propojeného worktree řeší mimo jeho vlastní strom; hlavní worktree si ponechává `.githooks`.

Rozsah

  • apps/majordomus-cli/src/worktree
  • apps/majordomus-cli/src/commands/worktree.rs
  • lib/doctor.sh
  • docs/WORKTREES.md
  • test/cases

Závislosti

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

Kritéria přijetí

  • Worktree vytvořený příkazem `majordomus worktree create` odpovídá na `git rev-parse --git-path hooks` vlastním .githooks
  • doctor v propojeném worktree, jehož hooky se rozpoznávají do jiného stromu, selže s opravným příkazem
  • Cesta hooků hlavního worktree je beze změny

Validace

  • bin/majordomus plan validate

Požadované důkazy

  • worktree_runs_its_own_hooks_case

Důkazy

pokrývátypcommandvýsledeku commitu
worktree_runs_its_own_hooks_casetestMJ_TEST_JOBS=4 bash test/run.sh 3036_a_worktree_runs_its_own_hooksok 3036_a_worktree_runs_its_own_hooks 100s (0 skipped) na 09c334079f5 se spustitelným souborem z #1304: worktree create naváže vlastní .githooks (relativní i absolutní hooksPath), commit tam spustí vlastní pre-commit worktree, doctor selže na wiring hooks-path v ručně vytvořeném worktree, hooks path primárního zůstává beze změny; dodáno ve velkém topu 11e53f5a451 a 51faa7a5c7609c3340

Časová osa

zahájeno
2026-10-16T16:39:12Z
ověřeno
2026-10-16T16:39:17Z
dokončeno
2026-10-16T16:39:25Z

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

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