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.

I0804 — Uzavřít relaci do obálky odvozené z ledgeru

Implementovat `session close`: přečíst aktivní záznam, odvodit odkazy epizody z ledgeru mezi jejím začátkem a nynějškem, zapsat neměnný uzavřený záznam s vypočtenými fakty gitu o koncovém stavu a volitelným autorským tělem shrnutí, odstranit aktivní záznam a připojit událost uzavření do ledgeru.

HOTOVO vlna 2 · p1 · profil deep-work · běží samostatně

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

Cíl

Implementovat `session close`: přečíst aktivní záznam, odvodit odkazy epizody z ledgeru mezi jejím začátkem a nynějškem, zapsat neměnný uzavřený záznam s vypočtenými fakty gitu o koncovém stavu a volitelným autorským tělem shrnutí, odstranit aktivní záznam a připojit událost uzavření do ledgeru.

Proč

To je mechanismus, který z relace dělá obálku, nikoli vyprávění. Během epizody se nehromadí žádné reference, takže žádný příkaz mimo relaci za ně neplatí; a protože kniha záznamů jen přibývá a píše ji stroj, obálka je odvozením existujících důkazů, nikoli druhým jejich účtem.

Aktuální stav

Kniha zaznamenává události úlohy, checkpointu, předávky, dokončení, rozhodnutí, otázky, plánu a údržby, každou s časovým razítkem, větví a headem. Nic z ní nečte časový rozsah.

Cílový stav

Uzavřený záznam pod .majordomus/state/sessions/ nese vypočtenou identitu, started_at a closed_at, start a konec head a pracovního stromu, výsledek a referenční seznamy id úloh, id úkolů, id milníků, cest kontrolních bodů, cest předávek, položek rozhodnutí a id otázek pozorovaných v okně knihy záznamů. Nekopíruje žádné tělo. Autorský souhrn na stdin je volitelný a ukládá se jako tělo záznamu, s odmítnutím pole identity, které používá každý jiný záznam.

Rozsah

  • lib/session.sh
  • test/cases/60_session_lifecycle.sh
  • test/cases/61_session_envelope.sh

Mimo rozsah

  • Zpětné čtení uzavřeného záznamu, což je samostatný úkol
  • Retence a archivace
  • Jakékoli kopírování těla checkpointu, předávky nebo rozhodnutí do souboru relace

Závislosti

Co na tom čeká

Kritéria přijetí

  • Uzavření zapíše neměnný záznam, odstraní aktivní záznam a připojí jednu událost do ledgeru
  • Referenční výpisy odpovídají událostem, které kniha drží v okně, a nic mimo okno se neobjeví
  • Epizoda, která zahrnuje dvě úlohy, jmenuje obě; úloha, která zahrnuje dvě relace, je pojmenována oběma
  • Tělo žádného odkazovaného záznamu se v souboru relace neobjeví a případ to ověřuje
  • Napsaný souhrn obsahující pole identity je odmítnut, stejně jako u checkpointu

Validace

  • bash test/run.sh 60_session_lifecycle
  • bash test/run.sh 61_session_envelope

Požadované důkazy

  • session_closes
  • envelope_is_references

Důkazy

pokrývátypcommandvýsledeku commitu
session_closestesttest/run.sh 61_session_envelope1 prošel. Uzavření zapíše neměnný záznam, odstraní otevřený a připojí právě jednu událost session.closed; uzavření bez otevřeného skončí s 12; shrnutí nesoucí pole identity skončí s 10 a nechá otevřený záznam na místě; druhé uzavření zapíše nový soubor a nechá dřívější záznam bajt po bajtu totožný; každý záznam má režim 06007ca51d2
envelope_is_referencestesttest/run.sh 61_session_envelope1 prošel a mutace zpět na časové okno ho shodí. Případ dokazuje, že záznam jmenuje reference na kontrolní bod, předávku a rozhodnutí a nenese žádné jejich tělo, že se každá odkazovaná cesta stavu vyřeší, že epizoda přes dvě úlohy jmenuje obě, zatímco úloha přes dvě relace je jmenována oběma, a že událost označená jinou relací nebo žádnou je vyloučena. První živý běh implementace s časovým oknem nasbíral záznamy druhého pracovníka do mé obálky; výběr je nyní podle razítka relace, které nese každý řádek knihy7ca51d2

Riziko

Okno účetní knihy je ohraničeno časovými razítky s rozlišením na sekundy, takže dvě epizody navazující v rámci jedné sekundy by si mohly nárokovat každá událost. Pořadí řádek účetní knihy je stávající rozhodčí přesně pro tento případ a musí se použít místo samotných razítek.

Časová osa

zahájeno
2026-09-04T17:26:46Z
ověřeno
—
dokončeno
2026-09-04T17:38:33Z

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/I0804.yaml. Přečtěte ho zpět pomocí majordomus plan show I0804.

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