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.

Obnova se nejdřív podívá, než něco zopakuje

Obnova se nejdřív podívá, než něco zopakuje

majordomus://rule/project.recovery-is-idempotent@1aktivní procesintegraceagenti

odkazuje na něj

Zdůvodnění

Repozitář už ví, že zastavení pracovníka není rollback: přerušený pracovník zanechá pracovní strom, skutečnou práci v neznámém stavu, jejímž vlastníkem není nikdo. Toto pravidlo říká zachovat ji. Toto říká, co s ní další pracovník udělá, a odpovědí není „začít znovu“, protože začínat znovu je způsob, jak se z jednoho přerušení stanou dva problémy.

Přerušená operace má neznámou polohu na spektru a každý bod na něm je dosažitelný: mohla neudělat nic, udělat půlku, udělat všechno a zemřít, než to oznámila, nebo udělat všechno a úspěšně to nahlásit rodiči, který neposlouchal — přesně to způsobil výpadek terminálového fokusu 2026-09-10, kdy hotové výsledky ležely nespotřebované, zatímco rodič vypadal nečinně. Opakování, které předpokládá první případ, je ve zbylých třech špatně a špatně v nákladném směru: zdvojený commit, soubor zapsaný dvakrát, migrace aplikovaná na databázi, která ji už měla, identifikátor alokovaný podruhé. Vrátit duplikát je těžší než ho nevytvořit.

Právě tady také naivní oprava zaseknutí selže. Když si člověk všimne, že delegát vypadá nečinně, zjevným krokem je spustit ho znovu. Pokud delegát ve skutečnosti skončil, druhý běh je v nejlepším případě čistý odpad a v nejhorším konfliktní druhá kopie práce — a první výsledek tam pořád leží, stále nespotřebovaný, což byla skutečná vada.

Požadované chování

Zjistěte před opakováním. Než zopakujete přerušenou práci, hledejte její účinky: artefakt, který měla vytvořit, stav gitu, výstup buildu a testů, záznam úlohy nebo relace. Opakujte jen to, o čem lze ukázat, že neuspělo.

Nejdřív převezměte, pak spouštějte znovu. Když delegát nebo potomek vypadá nečinně, nejprve zjistěte, zda skončil a zda čeká nepřečtený výsledek ve frontě. Výsledek, který už existuje, se převezme; nepočítá se znovu. Opětovné spuštění přichází poté, co se prokáže, že práce skutečně selhala, ne když jen vypadá tiše.

Pokračuj od posledního deterministického stavu, ne od začátku. Dokončená práce se zachovává. Je to táž disciplína, jakou repozitář už uplatňuje u checkpoint commitu: kdo ho převezme, posoudí každou část a ponechá ji, opraví nebo zamítne, místo aby zahodil strom.

Dávejte přednost obnovitelným a idempotentním operacím už při uspořádání práce, aby otázka, kterou toto pravidlo klade, měla levnou odpověď. Operace, kterou lze bezpečně spustit dvakrát, nepotřebuje forenzní zkoumání; operace, kterou nelze, potřebuje značku, která říká, zda proběhla.

Chování při selhání

Rozhoduje revize a škoda. Nic mechanicky nezjistí, že opakování se chystalo zduplikovat vedlejší efekt; repozitář zjistí a zjišťuje následky — duplicitní identita v indexu je odmítnuta a project.destructive-sweeps-fail-closed řídí polovinu úklidu.

Ověření

Review a jedna spustitelná instance. majordomus recover je toto pravidlo zmechanizované pro úložiště záznamů: zjišťuje, co se už stalo, dříve než cokoli zopakuje — existující záznam epizody je normální výsledek opakovaného běhu i pádu mezi publikací a úklidem a ponechá ho, místo aby zapsal druhý — a test/cases/135_session_store_recovery.sh to dokazuje: spustí každý subjekt dvakrát a ověří, že druhý běh neprovede žádnou akci, a rekonstruuje přerušený běh (záznam zapsán, otevřený soubor stále tam), aby ověřil, že pokračování ponechá, co existuje.

Všude jinde je to posouzení. Důkazy, které má obnova konzultovat, jsou tytéž, jaké repozitář už uchovává: git status a vlastní historie větve, odvozené artefakty, záznamy relací a úloh pod .ai/.

Odkud to pochází

kanonický soubor
.ai/repo/rules/project/recovery-is-idempotent.v1.md
identity
project.recovery-is-idempotent@1
dostupné také jako
Zdroj MCP majordomus://rule/project.recovery-is-idempotent@1 · majordomus entity show rule/project-recovery-is-idempotent-1 · GET /api/v1/entity?uri=majordomus://rule/project.recovery-is-idempotent@1
v Cockpitu
/cockpit/objects/rule/project-recovery-is-idempotent-1

Tato stránka je generována z výše uvedeného souboru pomocí scripts/generate-site-data; úprava stránky nic nemění, úprava souboru změní všechna rozhraní. Výše uvedené vztahy jsou hrany docs/generated/graph.json, které spustitelný program zapisuje ze stejného indexu.

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