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.

Zachycený prompt jmenuje epizodu, do které patří, nebo zaznamená, že žádnou nešlo určit; archiv je soukromý, omezený a bez přihlašovacích údajů

Každý záznam v .ai/local/prompts/ říká, ke které epizodě provádění patří, a říká, jak to ví. Kde nelze epizodu určit, řekne to, a nepřipojí se k epizodě, která byla náhodou nejblíže v čase. Archiv může číst jen jeho vlastník, včetně adresáře; je omezen deklarovanou politikou uchovávání, která bere těla promptů a nikdy záznamy; a tvary přihlašovacích údajů, které zapisovač zná, se nahradí dřív, než cokoli dosáhne disku.

deklarovaný stavdeklarovaný stav: zaručeno Deklarováno jako deterministické a blokující, implementováno a s uvedeným behaviorálním testem, který to má dokázat. Zda to zaznamenaný běh podporuje, říká verdikt důkazů zobrazený vedle.

zaznamenané důkazyzaznamenané důkazy: nespuštěno Deklarováno jako zaručené, ale nepodložené zaznamenaným během: test je pojmenován, ale žádný úspěšný běh nad současnými vstupy zaznamenán není. jak se zaznamenávají důkazy

Mapování relace poskytovatele na epizodu dříve existovalo jen po dobu, kdy byla epizoda otevřená, takže prompty uzavřené epizody se okamžitě staly nepřiřaditelnými — 713 z 974 záznamů tohoto repozitáře. Záznam nyní nese epizodu, relaci poskytovatele, repozitář a worktree s původem vazby; archiv má oprávnění 0600 a je omezen prompts.retention_max_days a prompts.retention_max_bytes, které odřezávají tělo a ponechávají záznam; a tvary přihlašovacích údajů se nahrazují dřív, než se cokoli uloží. Nepropojené starší záznamy zůstávají nepropojené: důkazy pro ně neexistují a toto tvrzení nepředstírá opak.

Co to znamená

Každý záznam pod .ai/local/prompts/ říká, ke které epizodě provádění patří, a říká, jak to ví. Kde nelze epizodu určit, říká to místo toho — nikdy se nepřipojí k epizodě, která byla náhodou nejblíže v čase. Archiv je čitelný jen pro svého vlastníka, včetně adresáře; je omezen deklarovanou politikou retence, která bere těla promptů a nikdy záznamy; a tvary přihlašovacích údajů, které zapisovač zná, se nahradí dříve, než cokoli dosáhne disku.

Vada, kterou toto uzavírá

Záznam nesl vlastní identifikátor relace providera — UUID, které nic neznamená mimo toho providera — a nic jiného, co by ho umístilo. Převod na kanonické id epizody vyžadoval .ai/local/state/sessions-open/<provider session>.yaml a uzavření epizody ten soubor maže.

Důsledkem není mezera, která se pomalu rozšiřuje. Je úplný a okamžitý: mapování existuje, dokud je epizoda otevřená, a v okamžiku jejího uzavření zmizí, takže každý prompt té epizody se najednou stane nepřiřaditelným. Změřeno v tomto repozitáři 2026-09-11, před změnou: 979 záznamů, 80 různých relací providerů, 20 přeživších kontextů relací a 713 promptů bez cesty k epizodě. K tomu archiv měl 20 MB bez jakéhokoli omezení, každý soubor měl režim 0644, zatímco stav relace vedle něj měl vždy 0600, a prompt obsahující přihlašovací údaj se uchovával doslovně a zůstával.

Princip

Identita, zapsaná, dokud ještě platí. mj_capture_write rozliší epizodu přes mj_open_session_id s MJ_SESSION_KEY nastaveným z vlastní relace providera v payloadu. To je přísná forma resolveru, který používá zbytek nástroje: ta epizoda, nebo žádná. Další dva kroky resolveru se vrací k prostředí a poté k ukazateli tohoto checkoutu a oba by promptu dali epizodu okna, které ji otevřelo naposledy. repository_id a worktree_id jsou mj_repository_id a mj_worktree_id — identita, kterou zbytek nástroje už počítá, ne její druhý pojem.

Provenience je pole, ne konvence. episode_link je jedním z pěti slov. open znamená, že epizoda byla otevřená pod relací tohoto poskytovatele, když prompt dorazil: pozorování. session-context a ledger znamenají, že vazba byla vytvořena dodatečně z důkazů, které uzavření přežily: odvození, a čtenáři se řekne které. orphan znamená, že zachycení hledalo a epizodu nenašlo; unlinked-legacy znamená, že záznam předchází poli. Poslední dvě nenesou žádnou epizodu. Čtenář, který nerozliší pozorování od odvození, nepozná, co archiv dokazuje.

capture reconcile propojuje jen na základě důkazů. Tři úrovně, v tomto pořadí: úložiště otevřených epizod; zmrazený pracovní kontext pod .ai/local/session-contexts/, který pojmenovává relaci poskytovatele, jež epizodu otevřela, a při uzavření se nemaže; a okna epizod, kde přesně jedna nepřiřazená uzavřená epizoda tohoto worktree obsahuje celý rozsah promptů dané relace poskytovatele. Čtvrtá úroveň neexistuje a už vůbec ne „nejbližší epizoda v čase“. Prompt přiřazený špatné epizodě je horší než prompt nepřiřazený žádné: druhý viditelně chybí, první tiše lže. To, co třetí úroveň odmítá, ji činí použitelnou — odmítne, jakmile by odpovědí mohly být dvě epizody.

Retence bere tělo a ponechává záznam. Staré pravidlo znělo, že nic se nikdy nesmí odstranit, s argumentem, že prompt se z ničeho neodvozuje a žádný jiný soubor ho nezrekonstruuje. Tento argument se týká záznamu — že se stal, kdy, v které epizodě, pod kterým headem — a uplatňoval se na bajty textu, což je část, která nese přihlašovací údaje a jejíž riziko s hodnotou nevyprchává. prompts.retention_max_days a prompts.retention_max_bytes jsou deklarovány v politice; majordomus capture prune je uplatňuje, nejdřív podle stáří a pak podle velikosti, od nejstaršího těla. Prořezaný záznam si ponechá každé pole včetně proveniencí odkazu na epizodu a získá náhrobek: kdy tělo zmizelo, jak bylo dlouhé a jaký měl digest. Záznam se stále nikdy nemaže a nic neprořezává jako vedlejší efekt hooku, který je měl uchovávat.

Redakce proběhne před persistencí. Deklarovaná tabulka tvarů pověření — API klíče poskytovatelů, tokeny a PAT GitHubu, id přístupových klíčů AWS, tokeny Google, Slack a Stripe, hlavičky soukromých klíčů PEM, bearer tokeny a přiřazení dlouhé neprůhledné hodnoty něčemu, co se jmenuje key, token nebo password — se dosazuje do surového rozsahu JSON na cestě do záznamu. Neexistuje proto okamžik, kdy by původní bajty byly na disku: ani v záznamu, ani v jednom z vykreslení, ani v názvu souboru, protože slug se bere z redigovaného textu, ani v diagnostickém logu, který vypisuje názvy klíčů payloadu a nikdy hodnotu. Co bylo nahrazeno, se zaznamená v redacted, aby „nic nebylo nalezeno“ a „tajemství je pryč“ byla tvrzení, která čtenář rozliší.

0600, včetně adresáře. Názvy souborů jsou začátky promptů, takže adresář čitelný pro všechny prozradí, na co se ptalo, i když je prázdný. init vytvoří archiv s 0700, update sjednotí existující, každý zápis nastaví režim souboru a capture render — opravný příkaz archivu a ten, který nález jmenuje — nastaví obojí nad celým adresářem při každém běhu.

Jak to vidět

majordomus capture reconcile --dry-run   # what evidence survives, and for how many records
majordomus capture reconcile             # links what it can; marks the rest, guesses at none
majordomus capture prune --dry-run       # which bodies the two bounds would take
majordomus doctor                        # OK prompts — n record(s) each name their episode
                                         #    or say why they cannot: x linked, y unlinked

Co nepokrývá

Neobnovuje odkaz, který nic nepodporuje. V tomto repozitáři zůstává unlinked-legacy 713 z 979 záznamů a validátor hlásí tento počet, nezaokrouhluje ho na nulu: kontrola, která by tvrdila plně propojený archiv, by tvrdila přesně to, co migrace záměrně odmítla vymýšlet.

Redakce pokrývá tvary, které jsou přihlašovacími údaji ze své podstaty — token, jehož vlastní prefix říká, co je — plus jednu formu přiřazení. Není to obecný skener tajemství a nesnaží se jím být: heuristika, která by redigovala cokoli, co vypadá tajně, by sežrala prompty, které lidé nejvíc potřebují číst zpětně, a archiv, který komolí běžný text, je archiv, kterému nikdo nevěří. Přihlašovací údaj v tvaru, který tabulka nezná, se stále persistuje, a tabulka jsou data, takže přidat tvar je jeden řádek.

Ořezávání je příkaz, který člověk spouští, stejně jako history --rotate před ním. doctor ohlásí archiv přes kteroukoli mez a pojmenuje nápravu; nic archiv nezmenší za něčími zády.

Proč existuje

Archiv tisíce promptů, který nedokáže říct, ke které epizodě kterýkoli z nich patřil, je hromada textu s časovými značkami. Celé tvrzení subsystému kontinuity je, že sezení pracovníka je záznam se začátkem, koncem a prací mezi nimi, a prompty jsou jedinou částí toho záznamu, kterou model nemůže napsat sám. Učinit je navždy spojitelnými je to, co činí zbytek subsystému pravdivým; učinit je soukromými a omezenými je to, co činí jejich uchovávání obhajitelným.

Detail vykreslený z docs/claims/prompt-continuity.md.

Od tvrzení k důkazu

  1. 1 · veřejné tvrzení

    Zachycený prompt jmenuje epizodu, do které patří, nebo zaznamená, že žádnou nešlo určit; archiv je soukromý, omezený a bez přihlašovacích údajů

    Vytvořeno na Politika.

  2. 2 · kanonické tvrzení

    prompt-continuitydeklarovaný stav: zaručeno v docs/CLAIMS.yaml

    Definováno v přečtěte si to na tomto webu · docs/DOCTRINE.md

  3. 3 · implementace

    lib/capture.sh · majordomus capture

  4. 4 · test a scénáře

    Test: test/cases/140_prompt_continuity.sh

  5. 5 · zaznamenané běhy

    zaznamenané důkazy: nespuštěno jak se zaznamenávají důkazy

Ověřte si to sami

Test běží v jednorázovém dočasném repozitáři a ověřuje chování, ne řetězec ve zdrojovém kódu.

z klonu repozitáře
bash test/run.sh 140_prompt_continuity

Kde se toto tvrzení používá

pokryté odpovědnosti

Související tvrzení stejná implementace

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