Zdůvodnění
Stroj je místo, kde práce běží, ne to, co ji vlastní. Před ADR 0105 žila předávka v .ai/local/state/ jednoho checkoutu, jmenovala ten stroj a na jiný se dostala jen přes živé mesh spojení; člověk, který skončil na notebooku a otevřel repozitář na desktopu, začínal z paměti. Učinit ji přenositelnou je bezpečné, jen když o tom, co je přenositelné, rozhoduje kontrola, ne pečlivost: předávka je próza, próza nese cokoli, co autor vložil, a záznam čtený na jiném stroji je vstup odjinud.
Požadované chování
continuity publishodmítne záznam nesoucí přihlašovací údaj známého tvaru, hodnotu tajné proměnné prostředí publikujícího procesu, cestu domovského adresáře nebo cestu repozitáře, která je absolutní nebo z repozitáře uniká; odmítnutí pojmenuje pole a hodnotu nikdy neopakuje a úložiště zůstane nedotčeno.- Každé čtení úložiště přijímá každý záznam — meze, schéma, id proti obsahu a názvu souboru, podpis proti klíči zařízení, identitu repozitáře, přenositelnost — a každé odmítnutí hlásí jako diagnostiku. Synchronizace nikdy nesloučí padělaný, cizí ani prosakující záznam do lokálního stromu.
- Plán rozhodne o důvěře, původu a kompatibilitě zdroje dřív, než obnova cokoli zapíše; obnova pokračuje jen při
readyneboready_with_warnings. Divergence se rozhoduje podle odkazů na rodiče; oddělené linie se nikdy nehlásí jako konflikt. - Předávka ze špinavého stromu se obnoví s
source_incomplete, nikdy jako plně připravená, a žádný necommitnutý obsah se na druhý stroj nedostane. - Příkazy v záznamu nebo plánu jsou doporučení; nic se neprovádí.
Chování při selhání
Odmítnutá publikace skončí 10 a nic nezapíše. Plán s blokery a obnovení, které nepokračovalo, skončí 10 s blokery a příkazy, které je řeší. Nedosažitelný remote skončí 10 a ponechá pending záznamy pending.
Ověření
Případy pojmenované v x-majordomus.tests: běh na dvou strojích (821), špinavý zdroj a kompatibilita zdroje (822), divergence (823), oddělená práce (824), offline (825), tajemství (826), přijetí zfalšovaných, novějších, cizích a nedůvěryhodných záznamů (827).