I1950 — Text, který běh vypsal, se maskuje jednou sadou pravidel
Portovat tabulku přihlašovacích údajů, kterou aplikuje lib/capture.sh, do jednoho redaktoru v Rustu, držet ho shodný s tabulkou v shellu jednou fixturou, aby každý text, který publikace důkazů nese, procházel jednou sadou pravidel (ADR 0087, rozhodnutí 14).
HOTOVO vlna 0 · p1 · profil implementation · bezpečné souběžně
Cíl
Portovat tabulku přihlašovacích údajů, kterou aplikuje lib/capture.sh, do jednoho redaktoru v Rustu, držet ho shodný s tabulkou v shellu jednou fixturou, aby každý text, který publikace důkazů nese, procházel jednou sadou pravidel (ADR 0087, rozhodnutí 14).
Proč
Publikace ponese text, který běh vytiskl, například konec logu selhání. Repozitář má shellovou tabulku přístupových údajů, redaktor polí strukturovaného vstupu označených schématem a odmítnutí cest stroje v publikovaných artefaktech, ale žádnou funkci, která by z vytištěného textu udělala veřejný text.
Aktuální stav
mj_capture_redact v lib/capture.sh aplikuje MJ_CAPTURE_SECRETS a MJ_CAPTURE_SECRET_ASSIGN přes sed; execution/redact.rs redaktuje pole označená ve schématu; generate::forbidden_in odmítá cesty stroje a značky přihlašovacích údajů. Crate nemá závislost na regex.
Cílový stav
apps/majordomus-cli/src/redaction.rs nabízí redact_secrets, normalise_machine_paths a public_text s ručně psanými matchery; jedna fixtura jej drží shodný s tabulkou v shellu; a jeho výstup projde generate::forbidden_in.
Rozsah
- apps/majordomus-cli/src/redaction.rs
- apps/majordomus-cli/src/lib.rs
- apps/majordomus-cli/tests/redaction.rs
- test/fixtures/redaction
- test/cases/504_public_text_is_redacted_once.sh
Mimo rozsah
- lib/capture.sh a lib/usecase.sh: přepnutí shellu na volání Rustu je pozdější změna
- apps/majordomus-cli/src/execution and apps/majordomus-cli/src/evidence
- Nová závislost crate
- docs/CLAIMS.yaml: slice publikace tvrdí chování, když publikuje text
Závislosti
Žádné. Tento úkol je kořenem grafu.
Co na tom čeká
Kritéria přijetí
- Redaktor v Rustu a shellová tabulka produkují stejný výstup na jedné sdílené fixtuře
- Výstup public_text prochází generate::forbidden_in
- cargo test --test redaction a doctesty redakce procházejí
Validace
- bash test/run.sh 504_public_text_is_redacted_once
- cargo test --test redaction
Požadované důkazy
- one_redactor
Důkazy
| pokrývá | typ | command | výsledek | u commitu |
|---|---|---|---|---|
| one_redactor | test | bash test/run.sh 504_public_text_is_redacted_once | ok na 4090b2b8ae: shellová tabulka je držena na každém řádku test/fixtures/redaction/shapes.tsv a test v Rustu na témže souboru; cargo test --test redaction nebyl lokálně spuštěn: běh CI validate 37744906831 na stromě totožném s 4090b2b8ae spustil tests/redaction.rs s 10 prošlo, 0 selhalo | 4090b2b |
Časová osa
- zahájeno
- 2026-10-08T10:50:03Z
- ověřeno
- 2026-10-08T10:52:27Z
- dokončeno
- 2026-10-08T10:52:30Z
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/I1950.yaml. Přečtěte jej zpět pomocí majordomus plan show I1950.