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.

I2735 — Úprava, kterou nekryje žádné tvrzení, je odmítnuta

Je-li zapnuto session.edits_require_claim a mesh povolen, předběžný hook nástroje poskytovatele odmítne zápis (Edit, Write, MultiEdit, NotebookEdit), který nekryje žádný nárok: rozsah aktivní úlohy nebo živý nárok meshe zapisující relace; posuzuje ho majordomus guard hook v checkoutu, do něhož soubor patří, a schopnost guard.edit přes MCP a HTTP.

BLOKOVÁNO vlna 3 · p0 · profil implementation · běží samostatně

Součást every-session-joins-the-mesh — Every LLM session joins the Majordomus mesh at start, told the mesh as work.

Blokováno. Tento úkol nemůže začít, dokud není I2289 hotovo. Stav je z toho odvozen, ne deklarován.

Cíl

Je-li zapnuto session.edits_require_claim a mesh povolen, předběžný hook nástroje poskytovatele odmítne zápis (Edit, Write, MultiEdit, NotebookEdit), který nekryje žádný nárok: rozsah aktivní úlohy nebo živý nárok meshe zapisující relace; posuzuje ho majordomus guard hook v checkoutu, do něhož soubor patří, a schopnost guard.edit přes MCP a HTTP.

Proč

Dne 2026-10-15 se vlastník zeptal, proč relace nevstoupí do mesh a nepracuje na něm a proč to nic nevynucuje. I2734, I2288 a I2289 dávají relaci a úlohu na mesh a odmítají dokončení mimo něj; úprava, kterou nikdo nenárokoval, přesto nebyla nikdy zastavena, takže nárok zůstal konvencí, dokud se o něj neptala sama úprava. Předchozí řešení: nesloučená větev feature/the-guard-refuses-an-unready-episode (2026-09-11) zapojila strážce PreToolUse pro připravenost serveru; tohle klade jinou otázku, ve spustitelném souboru, protože hook běží před každou úpravou a studený start nástroje v shellu byl změřen na zhruba 4 s.

Aktuální stav

Žádný hook neběží před nástrojem; úprava, kterou nepokrývá žádné tvrzení, se nikdy neodmítne.

Cílový stav

guard hook skončí s 2 s cestou a nápravou pro neclaimovanou editaci; vlastní živý claim relace nebo rozsah aktivní úlohy ji pustí; lokální stav, cesta mimo checkout, vypnutá politika a server, který neodpovídá, se pustí; sledovaný shim projde na 2 a na nic jiného.

Rozsah

  • apps/majordomus-cli/src/guard.rs
  • apps/majordomus-cli/src/capability/builtin/guard.rs
  • apps/majordomus-cli/src/commands/guard.rs
  • apps/majordomus-cli/src/cli.rs
  • apps/majordomus-cli/src/cli/local.rs
  • apps/majordomus-cli/src/policy.rs
  • .claude/hooks/majordomus-edit-guard
  • .ai/repo/policy.yaml
  • share/schemas/majordomus/policy/policy.v1.schema.json
  • share/skeleton/policy.yaml
  • test/cases/3069_an_edit_no_claim_covers_is_refused.sh
  • docs/MESH.md

Závislosti

Kritéria přijetí

  • Nenárokovaná úprava se odmítne s návratovým kódem 2, uvede se cesta i náprava
  • Živý nárok píšící relace nebo rozsah aktivní úlohy úpravu propustí; nárok jiné relace ne
  • Lokální stav, cesta mimo checkout, nástroj, který nezapisuje soubor, vypnutá politika a neodpovídající server jsou propuštěny
  • Posuzovaný checkout je ten, ke kterému zapsaný soubor patří
  • Sledovaný shim propouští odmítnutí a nic jiného

Validace

  • bin/majordomus plan validate
  • cargo test --lib guard
  • bash test/run.sh 3069_an_edit_no_claim_covers_is_refused

Požadované důkazy

  • case_3069
  • guard_unit_tests

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.

Kanonický záznam: .ai/repo/project/issues/I2735.yaml. Přečtěte ho zpět pomocí majordomus plan show I2735.

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