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.

I0806 — Udělat z pravidel relací doktríny s uchováváním a archivací

Dokončit pravidla relací: pravidla záznamů a životního cyklu jsou deklarována v share/standard/majordomus/ a rozesílána přes doctor a watch; zbývá odkaz na záznam, který neexistuje, retence nad deklarovaným stropem a archivace řízená politikou, která nikdy nemaže a nikdy nepřepisuje.

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

Součást M003 — Relace je trvalá obálka a znalost se kompiluje z toho, co už je kanonické.

Cíl

Dokončit pravidla relací: pravidla záznamů a životního cyklu jsou deklarována v share/standard/majordomus/ a rozesílána přes doctor a watch; zbývá odkaz na záznam, který neexistuje, retence nad deklarovaným stropem a archivace řízená politikou, která nikdy nemaže a nikdy nepřepisuje.

Proč

Pravidlo vynucené inline kontrolou v jednom příkazu je selhání „deklarováno, ale nezapojeno“, které tento nástroj měří v cizích repozitářích. Každé zde vynucené pravidlo je deklarováno v registru a z něj rozesíláno, nebo vynucováno není.

Aktuální stav

Změřeno na masteru 4090b2b8ae, 2026-10-08. Dvě pravidla relací jsou deklarována v share/standard/majordomus/rules a dispečována příkazy doctor a watch: majordomus.session-records (validátor session_records, test/cases/63_session_records.sh) a majordomus.session-lifecycle (validátor session_lifecycle, test/cases/54_session_lifecycle_hooks.sh), přistála v e9ffa54f1c. Doctor hlásí epizodu ponechanou otevřenou po session.stranded_after. Ne na masteru: politika (.ai/repo/policy.yaml od bd7cb2a579) nese limity uchování pro checkpointy, handovery a ledger a žádný pro relace; share/allow/policy.txt neuvádí žádný klíč uchování relací; majordomus.retention-caps relace nehlásí; lib/session.sh nemá archivaci. history --rotate zůstává precedentem pro uchování, které archivuje místo mazání a odmítá přepsat existující archiv.

Cílový stav

Existující pravidla relací zůstávají deklarována a dispatchována. Politika nese strop uchovávání relací a zda je zapnuto archivování, její klíče jsou v allowlistu politiky a majordomus.retention-caps hlásí relace vedle checkpointů a předávek. Relace jmenující neexistující checkpoint je nahlášena a jmenuje obojí. K archivaci dochází jen tehdy, když o ni požádá příkaz.

Rozsah

  • share/standard/majordomus/
  • share/allow/policy.txt
  • share/skeleton
  • lib/session.sh
  • lib/doctor.sh
  • lib/watch.sh
  • .ai/repo/policy.yaml
  • test/cases/63_session_records.sh

Mimo rozsah

  • Jakákoli údržba na pozadí nebo automatická
  • Smazání záznamu za jakýchkoli okolností

Závislosti

Co na tom čeká

Kritéria přijetí

  • majordomus.session-records a majordomus.session-lifecycle se objeví v seznamu pravidel s existujícím validátorem a doctor dokazuje, že každý dosahuje příkazu, který tvrdí, že jej spouští
  • Poškozený uzavřený záznam shodí doctor a způsobí drift ve watch a nález nese příkaz k reprodukci
  • Relace, která uvádí neexistující cestu k checkpointu, je nahlášena s uvedením obou cest
  • Archivace přesouvá záznamy bez mazání a odmítne přepsat existující archiv
  • Relace ponechaná otevřená déle, než politika dovoluje, se hlásí příkazem watch a nic neblokuje

Validace

  • bash test/run.sh 63_session_records
  • bin/majordomus doctor
  • bin/majordomus watch

Požadované důkazy

  • session_doctrines_wired

Důkazy

pokrývátypcommandvýsledeku commitu
session_doctrines_wiredtesttest/run.sh 63_session_records 2985_session_records_are_capped_and_archived 54_session_lifecycle_hookstesty: 3 prošly, 0 selhaly, 0 přeskočeny na master 97c4521f91 (2026-10-14 19:15-19:28Z). (1) majordomus.session-records (validátor session_records) a majordomus.session-lifecycle (validátor session_lifecycle) jsou deklarovány v share/standard/majordomus/manifest.yaml a od e9ffa54f1c je rozesílají doctor a watch; případ 54 řídí zapojení. (2) Špatně utvořený uzavřený záznam shodí doctor a způsobí drift watch s příkazem reprodukce: případ 63. (3) Záznam jmenující kontrolní bod nebo předávku, kterou tento checkout už nemá, se hlásí s oběma jmény: případ 2985. (4) majordomus session archive přesouvá záznamy do archive/, nic nemaže a odmítne, když je archivace vypnutá nebo je jméno už archivováno: případ 2985, dodáno ebe15d2e483. (5) Epizodu otevřenou déle než session.stranded_after hlásí validátor lifecycle (pravidlo majordomus.lifecycle-observed, vynucuje doctor a watch, ne check nebo finish; lib/doctor.sh mj_validate_lifecycle), takže nic neblokuje.97c4521

Riziko

Otevřená relace je po většinu svého života normální, takže pravidlo zastaralosti musí být informativní. Blokující kontrola otevřené relace by odmítla práci během epizody, kterou má popisovat.

Časová osa

zahájeno
2026-10-14T19:34:23Z
ověřeno
2026-10-14T19:35:35Z
dokončeno
2026-10-14T19:35:58Z

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

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