I2849 — release next vychází z trunku, který repozitář pojmenovává, nikdy z názvu branch zapsaného v nástroji
Když `majordomus release next` (schopnost release.next) nedostane --base, změří přistání proti remote-tracking refu trunku, který tento repozitář jmenuje, jediným pravidlem, které už používá zpráva o dodání (delivery::revision::trunk_ref), a odmítne jménem, když trunk nelze určit.
HOTOVO vlna 0 · p0 · profil implementation · bezpečné souběžně
Cíl
Když `majordomus release next` (schopnost release.next) nedostane --base, změří přistání proti remote-tracking refu trunku, který tento repozitář jmenuje, jediným pravidlem, které už používá zpráva o dodání (delivery::revision::trunk_ref), a odmítne jménem, když trunk nelze určit.
Proč
Nalezeno kódovým truth-sweepem masteru 707a04c7ce8 dne 2026-10-17: výchozí hodnota --base byla doslovné `origin/master` na dvou místech (default_value v cli.rs a unwrap_or v NextInput::base), zatímco worktree::identity::detect_trunk uvádí, že trunk se nikdy nezadrátovává. V adoptujícím repozitáři, jehož trunk je `main`, příkaz odmítl nebo odpovídal o refu, který není jeho trunkem. Role release ho určila jako P0 pro v1.0.0-alpha.1.
Aktuální stav
--base je na příkazové řádce i ve vstupu schopnosti ve výchozím stavu `origin/master`.
Cílový stav
--base je na každém povrchu volitelný; když chybí, release.next ho vyřeší pomocí delivery::revision::trunk_ref (výchozí větev vzdáleného repozitáře, jinak trunk identity, jinak jediná sledovací větev), a repozitář, kde se nevyřeší žádná, je odmítnut s důvodem a nápravou (pojmenujte ji pomocí --base).
Rozsah
- apps/majordomus-cli/src/capability/builtin/release.rs
- apps/majordomus-cli/src/commands/release.rs
- apps/majordomus-cli/src/cli.rs
Mimo rozsah
- Ostatní místa, kde je název trunku psán jako literál: naplánováno jako I2843 (jeden accessor plus ratchet sken).
Závislosti
Žádné. Tento úkol je kořenem grafu.
Kritéria přijetí
- V klonu, jehož výchozí větev na remote je main, release.next bez base zvedá z origin/main
- Pojmenovaná základna se použije tak, jak je pojmenována
- Repozitář, jehož trunk nelze určit, je odmítnut s uvedením --base
Validace
- bin/majordomus plan validate
- cargo test --lib -- capability::builtin::release:: commands::release::
- MJ_TEST_JOBS=4 bash test/run.sh 1060_the_version_is_allocated_at_landing
Požadované důkazy
- unnamed_base_is_the_trunk_test
Důkazy
| pokrývá | typ | command | výsledek | u commitu |
|---|---|---|---|---|
| unnamed_base_is_the_trunk_test | ci | validate run 39192952944 at master dd4c0a87cba: rust (1-3) runs cargo test --lib, including capability::builtin::release::an_unnamed_base_is_the_trunk_the_repository_names and a_landing_whose_trunk_cannot_be_told_is_refused; bash test/run.sh 1060_the_version_is_allocated_at_landing locally | success; case 1060: 3 passed, 0 failed, 0 skipped on master dd4c0a87cba | dd4c0a8 |
Časová osa
- zahájeno
- 2026-10-19T15:29:31Z
- ověřeno
- —
- dokončeno
- 2026-10-19T15:29:52Z
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/I2849.yaml. Přečtěte jej zpět pomocí majordomus plan show I2849.