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.

Hranice epizody se vede pod modelem a jeho pracovní kontext je lokální

Hranice epizody se vede pod modelem a jeho pracovní kontext je lokální

majordomus://rule/majordomus.session-lifecycle@1aktivní sessionproviderevidence

odkazuje na něj

Zdůvodnění

Stejný argument, který staví zachytávání promptů pod model, staví pod něj i hranici epizody. Worker požádaný, aby otevřel vlastní relaci, ji otevře, když si vzpomene, což nikdy není ta epizoda, na které záleželo — ta, která skončila pádem, kompresí nebo tím, že někdo zavřel okno. Instrukce v bootstrap souboru je žádost a žádost, která se plní někdy, vytvoří záznam o relacích, které dopadly dobře, a ticho o zbytku.

Provider to ví. Spustí událost, když sezení začne, a další, když skončí, a spustí je, ať je model v pozici si toho všimnout, či ne. Hranice se tedy kreslí tam, nebo je fikcí, a toto pravidlo repozitáři brání vydávat druhé za první.

Zmrazení kontextu při otevření vyplývá z existence hranice. .ai/local/session-contexts/ pojmenovala vrstva od začátku a neměl producenta: adresář, který kostra vytvoří a nic jej nenaplní, je slib, který vrstva nedodržuje, a čtenář nerozliší prázdné úložiště od neimplementovaného. To, co do něj patří, je jediný fakt, který nedrží žádný soused — uzavřený záznam říká, co epizoda vyprodukovala, archiv promptů drží lidskou polovinu výměny a ani jedno neříká, co bylo pracovníkovi skutečně řečeno na začátku.

Ten dokument zůstává lokální ze dvou důvodů, které nejsou tentýž. Jmenuje tento stroj a fakt o disku není fakt o repozitáři. A je to snímek projekce: její pozdější opětovné vyhodnocení dá jiný dokument, takže jeho publikování by zveřejnilo něco, co žádný povrch nedokáže reprodukovat.

Požadované chování

Poskytovatel s událostmi životního cyklu má adaptér; ten bez nich se hlásí jako nepodporovaný a nikdy se nepředpokládá, že mlčí. Kde repozitář deklaruje zapojení — záznam enforcement s wired_by: provider-hook:<provider>:session — konfigurace jmenuje shimy, které tento nástroj zapsal, oba jsou spustitelné a syntetický payload provedený koncovým shimem dojde k příkazu. Dry run je to, co činí důkaz bezpečným: běží vše na cestě kromě mutace, protože uzavřít cizí otevřenou epizodu není cena, kterou smí diagnostika účtovat.

Každá událost je idempotentní, protože jsou jí samy události: start se při obnovení spustí znovu a ponechá otevřenou epizodu místo otevření druhé, konec bez otevřené epizody nezapíše nic a není selháním a kompakce bez aktivní úlohy nezaznamená nic.

Na standardní výstup zapisuje jen událost startu, a to jen briefing, který politika deklaruje. Provider tento výstup přidá do kontextu, který se chystá sestavit, což je jediný okamžik, kdy se záznam pokračování může dostat k pracovníkovi, aniž by si o něj musel pracovník vzpomenout říct — a záznam pokračování, který nic nenačte, je záznam, který nikdo nečte. Co smí nést, je omezeno session.briefing_budget_lines a jen na odkazy, štítky divergence, blokátory, které odmítají přijetí, a jednu sekci předávky, podle které pracovník při obnovení jedná. Nikdy nesmí nést konverzaci a session.briefing_on_start: false obnoví starší mlčení pro repozitář, který si to přeje. Události konce a kompakce nezapisují na standardní výstup nic: každá se spouští uvnitř už probíhajícího tahu, kde by výstup změnil, co někdo dělá, místo aby to vybavil.

To je jediná výjimka z pravidla vrstvy, že nic pod local/ se nenačítá do kontextu implicitně, a je záměrně úzká. Toto pravidlo chrání tři věci — žádné přepisy, žádný neomezený růst a žádný fakt o disku, který by se stal faktem o repozitáři — a omezený, deklarovaný briefing bez přepisu na hranici epizody nenaruší žádnou z nich. Nepodmíněná zůstává druhá polovina: nic pod local/ nepublikuje generátor ani se nikdy neposkytuje na veřejném povrchu.

session start zapisuje pracovní kontext epizody a session close připojuje k témuž dokumentu, co ví uzavření; nic jiného žádný nezapisuje a dokument se připojuje, nepřepisuje, takže co do něj pracovník napsal, přežije. Každá otevřená epizoda jej má. Pod úložištěm není nic sledováno gitem a hranice ignorování ho pokrývá, každý dokument začíná schema: session-context/v1, jeho front matter nese jen deklarované klíče a pole pojmenovávající přepis, seznam zpráv či odpověď modelu je porušení — odvozená polovina je výstup builderu a autorská polovina je shrnutí práce, ne konverzace.

Selhání zápisu pracovního kontextu nikdy nestojí epizodu: zaloguje se vedle úložiště a neprázdný log je selhání repozitáře, protože jinak by se úložiště přestalo plnit potichu.

Chování při selhání

Porušení je nález FAIL v kategorii session a příkaz, který jej našel, končí 10. Pod watch je totéž porušení hlášeno jako drift a příkaz končí 11. Nezapojený provider není porušení: repozitář, který nic nedeklaruje, hlásí, že nevytyčuje hranici.

Ověření

mj_validate_session_lifecycle rozhoduje invarianty úložiště a verifikátor zapojení rozhoduje stav providera, obojí dispečované z doctor, watch. Behaviorální případ test/cases/54_session_lifecycle_hooks.sh prokazuje zapojení, idempotenci každé události, briefing, který zapisuje startovní událost, a mlčení ostatních dvou; test/cases/55_session_context.sh prokazuje smlouvu dokumentu a nálezy, které produkuje každá jeho mutace. ADR 0015 zaznamenává rozhodnutí; ADR 0017 zaznamenává briefing a událost compaction.

Odkud to pochází

kanonický soubor
.ai/repo/rules/vendor/majordomus/rules/session-lifecycle.v1.md
identity
majordomus.session-lifecycle@1
dostupné také jako
Zdroj MCP majordomus://rule/majordomus.session-lifecycle@1 · majordomus entity show rule/majordomus-session-lifecycle-1 · GET /api/v1/entity?uri=majordomus://rule/majordomus.session-lifecycle@1
v Cockpitu
/cockpit/objects/rule/majordomus-session-lifecycle-1

Tato stránka je generována z výše uvedeného souboru pomocí scripts/generate-site-data; úprava stránky nic nemění, úprava souboru změní všechna rozhraní. Výše uvedené vztahy jsou hrany docs/generated/graph.json, které spustitelný program zapisuje ze stejného indexu.

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