Co to znamená
.ai/local/state/ledger.jsonl je jen pro přidávání a je jediným záznamem o tom, co se stalo, který nic jiného nezrekonstruuje: které úlohy byly zahájeny, checkpointovány, předány a dokončeny a podle jaké smlouvy. Řádek, který není dobře utvořenou událostí, je hlášen jménem a číslem řádku příkazem check, doctor a watch.
Princip
mj_ledger_bad_lines v lib/common.sh načte soubor a vrátí čísla řádků, které nejsou objekty JSON nesoucí ts a event. mj_validate_ledger z toho udělá nález; doktrína majordomus.ledger-integrity je deklarována jako blokující a vynucována přes check, doctor a watch, takže třída je to, co způsobí zastavení příkazu, a ne rozhodnutí uvnitř validátoru. Čtečky — history, search — poškozený řádek přeskočí a pokračují, místo aby spadly, takže poškozený ledger se zkrátí, ale nestane se nepoužitelným.
Jak to vidět
echo 'this is not json' >> .ai/local/state/ledger.jsonl
majordomus history --validate # exit 10, naming the line
majordomus doctor # FAIL records ledger.jsonl — line(s) 8 are not well-formed events
majordomus watch # DRIFT records ledger.jsonlCo nepokrývá
Dobře utvořený neznamená pravdivý. Kontrola dokládá, že každý řádek je událost s časovou značkou a jménem; neověřuje, že událost popisuje něco, co se stalo, a nedokáže odhalit řádek, který byl odstraněn. Append-only je konvence, kterou příkazy dodržují, ne vlastnost, kterou vynucuje souborový systém.
Proč existuje
Každý další trvalý záznam tu lze znovu sestavit: projekce se regenerují z politiky a nesou vlastní razítka, záznam úlohy se píše znovu pomocí start. Hlavní kniha (ledger) ne. Jediný poškozený řádek, který potichu useká historii, podle níž se čtenář bude řídit, je selhání, na jehož kontrolu se vyplatí vynaložit úsilí.