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.

I2708 — Pole události meshe, které nikdo nevypsal, shodí kontrolu meshe a žádné pole logu ani tělo recenze nenese přihlašovací údaj, který redaktor zná

Zařídit, aby scripts/ci/mesh-check odmítl pole EventBody chybějící v seznamu povolených, přidat vrstvu redakce pro každé pole tracingu a vést těla review přes redaktor.

HOTOVO vlna 1 · p1 · profil implementation · běží samostatně

Součást architecture-is-enforced — A violated invariant fails a gate, and green means every required check ran.

Cíl

Zařídit, aby scripts/ci/mesh-check odmítl pole EventBody chybějící v seznamu povolených, přidat vrstvu redakce pro každé pole tracingu a vést těla review přes redaktor.

Proč

Odděleno od I2161 dne 2026-10-14. I2161 propustil každé tělo chyby HTTP, chybu JSON-RPC, odmítnutí nástroje MCP, zalogované pole požadavku i tělo předávky přes redaction::redact_secrets a jeho desired_state o allow-listu ve scripts/ci/mesh-check, který odmítne pole EventBody, jež nikdo nevypsal, o redakční vrstvě pro každé pole tracingu a o tělech review říkal „Not done here“, zatímco jeho kritéria přijetí allow-list stále vyžadovala, takže se nikdy nemohl uzavřít. Mesh replikuje těla událostí čitelně přes prosté HTTP; pole přidané do EventBody dorazí ke každému propojenému runtime, aniž by kdokoli rozhodl, že smí. Invariant balíčku 9.

Aktuální stav

scripts/ci/mesh-check čte pole každé varianty EventBody proti .ai/repo/ci/mesh-event-fields.yaml a selže na poli, které neuvádí (případ 3051). Tělo předávky se redaktuje před podepsáním (apps/majordomus-cli/src/mesh/handover.rs), stejně tak subject, body, verdikt a poznámky review (apps/majordomus-cli/src/mesh/cooperation.rs, request_review, answer_review a withdraw_review) a verdikt mimo approved, changes_requested a commented, včetně přihlašovacího údaje, se odmítne před podepsáním; seznam označuje těchto šest polí `redacted`. Vrstva trasování je jediná polovina, která v tomto stromě není: je to PR #1195 (apps/majordomus-cli/src/logging.rs).

Cílový stav

scripts/ci/mesh-check čte pole každé varianty EventBody a selže na té, kterou její allow-list nejmenuje, a allow-list pro každé uvedené pole říká, zda se před podepsáním redaguje; každé pole tracingu projde redaction::redact_secrets v jedné vrstvě; předmět a verdikt revize se redagují dříve, než se podepíší do žurnálu.

Rozsah

  • scripts/ci/mesh-check
  • apps/majordomus-cli/src/mesh/journal.rs
  • apps/majordomus-cli/src/mesh/cooperation.rs
  • apps/majordomus-cli/src/logging.rs
  • apps/majordomus-cli/src/redaction.rs
  • apps/majordomus-cli/tests/redaction.rs
  • test/cases

Mimo rozsah

  • Těla chyb, chyby MCP, logovaná pole požadavků a těla předávek, které dodal I2161
  • Zapojení publikace důkazů do redaction::public_text, což je věc I1955

Závislosti

Kritéria přijetí

  • Pole EventBody přidané bez položky na seznamu povolených způsobí selhání scripts/ci/mesh-check
  • Hodnota ve tvaru přihlašovacího údaje v libovolném poli trasování se v server.log nevyskytuje
  • Revize, jejíž předmět nebo verdikt nese tvar přihlašovacích údajů, se redaktuje nebo odmítne dřív, než je podepsána do žurnálu

Validace

  • bin/majordomus plan validate
  • scripts/ci/mesh-check
  • cargo test --test redaction

Požadované důkazy

  • eventbody_allowlist_case
  • review_redaction_test

Důkazy

pokrývátypcommandvýsledeku commitu
eventbody_allowlist_casetestbash test/run.sh 3051_an_unlisted_event_field_fails_the_mesh_check 301_the_mesh_stays_one_subsystem; scripts/ci/mesh-checktesty: 2 prošly, 0 selhaly. Případ 3051: skutečný strom prochází (47 polí neseno, 1 před podpisem začerněno: HandoverBody.body); kopie selže s exit 10 na nevypsaném poli varianty (EventBody.ReviewAnswered.token), nevypsaném poli neseného structu (SessionInfo.home), nové variantě (EventBody.NoteShared.text), položce ani začerněné, ani čisté, zastaralé položce, žurnálu bez EventBody a chybějícím seznamu a znovu projde, jakmile je pole vypsáno (run 2026-10-15 na #1179 head 98ef9ac6e3 plus tato změna)98ef9ac
review_redaction_testtestcargo test --test redaction; scripts/ci/mesh-check; bash test/run.sh 3051_an_unlisted_event_field_fails_the_mesh_check 301_the_mesh_stays_one_subsystemredakce: 11 prošlo, 0 selhalo (lundra, 2026-10-15). a_review_is_journaled_with_the_marker_never_the_secret zapíše každý řádek přihlašovacích údajů z test/fixtures/redaction/shapes.tsv do předmětu, těla, poznámky odpovědi a poznámky stažení revize: žurnál na disku i složený stav nesou značku každého tvaru a žádné tělo; tentýž řádek jako verdikt se před podepsáním odmítne a odmítnutí jmenuje značku. Test nad starou cestou revize selhává (odmítnutí opakovalo tělo klíče anthropic). mesh-check OK: 47 nesených polí, 6 redagovaných před podepsáním. Případy 3051 a 301 procházejí. Běh na e2d7042a44 (#1188) plus tato změna.e2d7042
eventbody_allowlist_casetestscripts/ci/mesh-checkOK: každé pole EventBody je uvedeno (47 neseno, 6 redigováno před podpisem); redakce tracingu od dd4798ce55e (kód na master od 3c3372d0617; znovu spuštěno na master 01227a0)01227a0
review_redaction_testtestcargo test --test redaction12 prošlo, 0 selhalo, vč. a_review_is_journaled_with_the_marker_never_the_secret (kód na master od 3c3372d0617; znovu spuštěno na master 01227a0)01227a0

Časová osa

zahájeno
2026-10-17T12:04:14Z
ověřeno
2026-10-17T12:04:36Z
dokončeno
2026-10-17T12:04:47Z

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/I2708.yaml. Načtěte jej zpět pomocí majordomus plan show I2708.

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