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.

I3978 — Each train member is judged on its merged tree, and a fix member joins only with a test and its changed-code coverage

The landing duties docs/INTEGRATION.md states as a table (merge master into the branch, commit, derive, then run the whole structure job, the library tests and the cases the change touches on that merged tree, naming the commit each ran on; search the tests for what reads the change) become a typed check the train composer of I3915 (commands/prs.rs) runs per member before the member joins a train: it merges the member onto the train head, runs the structure job, the library tests and the cases the change touches, and records each verdict with the merged commit. The cases a change touches are chosen by a selector this issue adds to the executable: every case whose covers header names a capability or command the change touches, and every case that names a changed path or the identifier of a changed record, the rule docs/INTEGRATION.md states as prose. A member whose head is a fix (conventional type fix) joins only when its diff carries a test and scripts/rust-coverage --changed <train head> reports its changed lines covered. A member that fails is left out of the train and reported with the failing step; nothing is forced in.

BLOKOVÁNO vlna 2 · p1 · profil implementation · běží samostatně

Part of merging-and-referencing-are-enforced — Merging and referencing are enforced: every pull request carries its metadata, every reference resolves, every number is taken once.

Blocked. This issue cannot start until I3915 is done. The status is derived from that, not declared.

Cíl

The landing duties docs/INTEGRATION.md states as a table (merge master into the branch, commit, derive, then run the whole structure job, the library tests and the cases the change touches on that merged tree, naming the commit each ran on; search the tests for what reads the change) become a typed check the train composer of I3915 (commands/prs.rs) runs per member before the member joins a train: it merges the member onto the train head, runs the structure job, the library tests and the cases the change touches, and records each verdict with the merged commit. The cases a change touches are chosen by a selector this issue adds to the executable: every case whose covers header names a capability or command the change touches, and every case that names a changed path or the identifier of a changed record, the rule docs/INTEGRATION.md states as prose. A member whose head is a fix (conventional type fix) joins only when its diff carries a test and scripts/rust-coverage --changed <train head> reports its changed lines covered. A member that fails is left out of the train and reported with the failing step; nothing is forced in.

Proč

Train 3b and train 4 on 2026-10-21 and 2026-10-22 each needed rounds of fix commits for reds that the members' merged trees would have shown before composition (the a-combined-top-surfaces-cross-segment-defects and static-gates-before-a-patch lessons). The duty is prose a seat remembers; the owner asked for it to be mechanised.

Aktuální stav

Verified at 355a0cee79a: docs/INTEGRATION.md:575-585 lists the lander's duties as a table; no command runs them per member; trains are composed by hand (I3915 plans a typed composer from a tracked manifest).

Cílový stav

Composing a train runs each member's merged-tree check and leaves out, with its reason, every member that fails or a fix member without a test and coverage.

Rozsah

  • apps/majordomus-cli/src/commands/prs.rs
  • apps/majordomus-cli/src/integration/train.rs
  • apps/majordomus-cli/tests/integration_executor.rs
  • scripts/rust-coverage
  • docs/INTEGRATION.md
  • .ai/repo/project/issues/I3978.yaml

Mimo rozsah

  • Landing the train, which is I3910's

Závislosti

Kritéria přijetí

  • A fixture member whose merged tree fails one touched case is left out of the composed train with that case named (case a_train_member_is_judged_on_its_merged_tree)
  • The selector names, for a fixture change to one capability and one record, the cases whose covers header or text names them, and no other
  • A fixture fix member without a test among its files is left out; with a test and changed lines covered by rust-coverage --changed it joins
  • Every verdict names the merged commit it ran on

Validace

  • bin/majordomus plan validate
  • env -u MAJORDOMUS_SHARE cargo test --manifest-path apps/majordomus-cli/Cargo.toml --lib -- integration::
  • env -u MAJORDOMUS_SHARE cargo test --manifest-path apps/majordomus-cli/Cargo.toml --test integration_executor

Požadované důkazy

  • merged_result_is_judged

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.

Canonical record: .ai/repo/project/issues/I3978.yaml. Read it back with majordomus plan show I3978.

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