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 --allCo 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.