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.

Rotace knihy archivuje nejstarší řádky a nikdy je nesmaže

ledger.retention_max_lines doctor a watch vždy hlásily, když byl překročen. majordomus history --rotate je akce, která to řeší: nejstarší řádky se přesunou do datovaného archivního souboru vedle ledgeru a nejnovější zůstanou.

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

Odmítne přepsat existující archiv a nedělá nic, když je kniha pod svým stropem.

Co to znamená

ledger.retention_max_lines bylo vždy hlášeno příkazy doctor a watch, když bylo překročeno. majordomus history --rotate je akce, která je řeší: nejstarší řádky se přesunou do datovaného archivního souboru vedle knihy a nejnovější zůstanou.

Nic se nikdy nemaže.

Princip

Archiv je state/ledger.<utc-compact>.jsonl.archived. Rotace odmítne běžet, pokud ta cesta už existuje, místo aby k ní připojovala nebo ji přepisovala, zapíše archiv před zkrácením ledgeru a připojí událost ledger.rotated se záznamem, kolik řádků se přesunulo, kolik jich zůstalo a jaká je cesta archivu — takže historie historie je sama v historii.

Pod limitem nedělá nic a říká to, místo aby vyráběl prázdný archiv.

Jak to vidět

before=$(wc -l < .ai/local/state/ledger.jsonl)
majordomus history --rotate
# rotated: 4812 line(s) to .ai/local/state/ledger.20260903T204411Z.jsonl.archived, 5000 kept

archived=$(wc -l < .ai/local/state/ledger.*.jsonl.archived)
kept=$(wc -l < .ai/local/state/ledger.jsonl)
# archived + kept accounts for every line that existed, plus the rotation event itself

majordomus history --event ledger.rotated --all

Co nepokrývá

Rotace je ruční. Nic nerotuje podle rozvrhu ani při zápisu; doctor a watch hlásí limit a rozhodne člověk nebo hook. Nástroj, který by tiše zkrátil úložiště záznamů, zatímco se nedíváte, by byl opakem smyslu.

history čte jen živý ledger. Archivovaný soubor je prosté JSONL, které můžete číst sami; nic ho automaticky nepřipojí zpět.

Úložiště předávek a checkpointů mají limity, které se hlásí a nikdy nevynucují. Pro soubory záznamů neexistuje rotace, protože smazání záznamu o pokračování je rozhodnutí, které by měl člověk učinit záměrně.

Proč existuje

Append-only úložiště, které nikdo neprořezává, se stávají tím, co způsobilo, že append-only úložiště vypadá jako špatný nápad. Jeden repozitář v materiálu, z něhož tento návrh vzešel, nahromadil gigabajty snímků, které nikdo nikdy nečetl. Limit bez akce je obtěžování; akce, která maže, je riziko. Archivace je verze, kterou je bezpečné spustit.

Detail vykreslený z docs/claims/record-retention.md.

Od tvrzení k důkazu

  1. 1 · veřejné tvrzení

    Rotace knihy archivuje nejstarší řádky a nikdy je nesmaže

    Vytvořeno v Provenience, Sledování.

  2. 2 · kanonické tvrzení

    record-retentiondeklarovaný stav: zaručeno v docs/CLAIMS.yaml

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

  3. 3 · implementace

    lib/history.sh · majordomus history

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

    Test: test/cases/22_history.sh

    Provedeno v Přečtěte si, co se stalo, a držte knihu v rámci jejího stropu.

  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 22_history

Kde se toto tvrzení používá

Související tvrzení stejná implementace

Okamžiky, na které to odpovídá

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