Každou změnu výzkumu zapisuje strom jako operaci do logů historie (data/ops) a zapečetí ji klíčem tohoto počítače spolu s commitem v historii výzkumu (git). strom verify porovná každý záznam a commit s jeho pečetí a řekne, co se změnilo mimo strom. Kapitola popisuje, jaké cesty dál strom nabízí, a podrobně přijetí výzkumu tak, jak je (strom seal accept), historii starší než výzkum a vrácení opravy (strom repair undo). Popisuje výzkum 1.30.1; změny z novější verze mají u sebe její číslo.
R14.1 Co nesedí s pečetí a cesty dál
Co strom verify najde, určuje, kterou cestou se jde dál. Každou z nich spouští člověk ve svém terminálu.
| Co se stalo | Cesta | Co udělá |
|---|---|---|
| záznam změněný nebo vytvořený mimo strom, historie (git) je čitelná | strom repair | vrátí poslední zapečetěný stav: změněné záznamy obnoví, záznamy vytvořené mimo strom odebere; kopie všeho nahrazeného nechá v .strom/quarantine/; od výzkumu 1.31.0 se víc než 3 odebraných záznamů ptá člověka (R14.3) a kopie vrátí strom repair undo (R14.3.1) |
| výzkum zapečetěný na jiném počítači | strom seal adopt | zkontroluje řetěz operací a otisk každého záznamu a vytvoří pro výzkum klíč tohoto počítače |
ztracená historie: chybí nejstarší logy data/ops a historie (git) nejde přečíst nebo žádná není; záznamy jsou, jak je strom zapsal | strom seal accept | nic nevrací ani nepřebírá: výzkum tak, jak je teď, zapečetí jako nový základ (R14.2) |
od výzkumu 1.31.0: historie (git) jde přečíst, ale je starší než výzkum; strom repair by odebral práci | nikdy strom repair: nejdřív záloha celé složky, pak .git ze zálohy nebo z Time Machine, nebo strom seal accept | nic se neodebere (R14.1.1) |
- Hlídá kód:
- s čitelnou historií (git) strom
strom seal acceptneradí: ztracené logy z ní vrátístrom repair. Od výzkumu 1.31.0 výjimka: historie starší než výzkum (R14.1.1); - s poškozenou nebo chybějící historií
strom verifyistrom checkhlásí nálezgit-damaged(historie nejde přečíst, chybí její objekty, nebo výzkum historii nemá) a u každého souboru, který nesedí s pečetí, radí: „historie (git) je poškozená, strom repair ji nevrátí – po prohlédnutí záznamů ve vlastním terminálu: strom seal accept“; - zápis do výzkumu s poškozenou historií strom odmítne větou „historie (git) výzkumu je poškozená: nic se nezapsalo“ (kód
tree.git-damaged) se stejnou radou, místo chyby gitu. Dřív se na ní zastavil každý zápis istrom check.
- s čitelnou historií (git) strom
- Ovládání: terminál:
strom verify,strom check,strom repair,strom repair undo,strom seal adopt,strom seal accept. - Platí od: výzkum 1.30.1; 1.31.0: historie starší než výzkum, otázka
strom repair,strom repair undo
R14.1.1 Historie starší než výzkum: history-reverted
Cloudový disk může do výzkumu vrátit starší kopii historie (git), často s kopiemi iCloudu uvnitř .git (například index 2, HEAD 2). Historie jde přečíst, ale záznamy zapsané od té kopie v ní nejsou. strom verify je pak hlásí jako vytvořené mimo strom a strom repair by je odebral. Proto strom nejdřív spočítá, co by strom repair udělal, a kde by odebral práci, radí cestu, která nic neztratí.
- Hlídá kód:
- historii bere jako starší než výzkum, když by
strom repairodebral aspoň jeden záznam, který zapsala neporušená podepsaná operace z logů historie ve složce, na který odkazují jiné záznamy, nebo který má nižší číslo než nejvyšší záznam téhož druhu v zapečetěném stavu (ztratila se nejstarší historie); nebo když jsou uvnitř.gitkopie iCloudu a oprava by něco odebrala; strom verifyistrom checkpak hlásí nálezhistory-reverteds počtem: „historie (git) je starší než výzkum: strom repair by odebral N záznamů“. U něj i u každého nálezu, kde by jinak radilystrom repair, radí: „nejdřív zálohovat celou složku výzkumu; pak vrátit .git ze zálohy nebo z Time Machine – nebo po prohlédnutí záznamů ve vlastním terminálu: strom seal accept (nikdy strom repair: tu práci by odebral)“;- zápis do takového výzkumu strom odmítne větou „historie (git) je starší než výzkum – strom repair by odebral N záznamů: nic se nezapsalo“ (kód
tree.history-reverted) se stejnou radou a s odkazem nastrom verify; - s poškozenou nebo chybějící historií (
git-damaged) platí dál cesta z R14.1:strom seal accept.
- historii bere jako starší než výzkum, když by
- Ovládání: terminál:
strom verify,strom check; dál podle rady: záloha složky,.gitze zálohy nebo z Time Machine, nebostrom seal accept(R14.2). - Platí od: výzkum 1.31.0
- Proč: výzkum v iCloud Drive se starší kopií
.gita bez nejstarších logů hlásil záznamy jako nezapečetěné astrom repairby odebral záznamy let práce (nález 9. 11. 2026).
R14.2 Přijmout výzkum tak, jak je: strom seal accept
Cloudový disk (například iCloud Drive) může z výzkumu odebrat nejstarší logy historie (data/ops) a objekty jeho historie (git). Záznamy zůstanou, jak je strom zapsal, ale strom verify je hlásí jako vytvořené nebo změněné mimo strom a strom repair nemá co vrátit, nebo by vrátil starší stav. strom seal accept vezme výzkum tak, jak je teď, jako nový zapečetěný základ. Rozhoduje o tom člověk, který záznamy předtím prohlédl.
- Nejdřív počty: bez potvrzení příkaz nic nezmění. Vypíše, co by přijetí udělalo:
- záznamy, kterým chybí historie;
- záznamy novější, než říká zbytek jejich historie;
- další soubory výzkumu (historie, kvalita,
strom.json), které nesedí s pečetí; - kolik logů historie je ve složce;
- stav historie (git): čitelná (změna se do ní přidá), poslední změnu neudělal strom (zapečetí se znovu), poškozená (odsune se celá, nic se nesmaže, založí se nová), žádná (založí se nová);
- kopie souborů z iCloudu, které se odsunou, a kopie, které zůstanou na místě (R14.2.1).
- Potvrzení: člověk ve vlastním terminálu odpoví na Přijmout výzkum tak, jak je teď?. Výchozí odpověď je ne.
- Rozdíl:
strom repairvrací poslední zapečetěný stav,strom seal adoptpřebírá výzkum zapečetěný na jiném počítači;strom seal acceptnic nevrací ani nepřebírá (R14.1). - Ovládání: terminál:
strom seal accept --preview(jen počty, smí i agent),strom seal accept. Jde i v Archivu Stromu. - Platí od: výzkum 1.30.1
R14.2.1 Co přijetí udělá
Po potvrzení jedna zapečetěná změna zapíše každý soubor, který nesedí s pečetí, tak, jak je teď: žádný záznam se nezmění, nic se nesmaže.
- Hlídá kód:
- jedna podepsaná operace (
seal.accept) nese otisk každého takového souboru a strom ji uloží zapečetěným commitem; - poškozenou historii (git) odsune celou do složky
.git-damaged-<kdy>vedle výzkumu a založí novou; složka se starou historií do nové nepatří. Bez historie založí novou, čitelnou historii jen doplní o změnu; - kopie souborů z iCloudu (například „P0001 2.json“) ve složkách
data/,history/aquality/a kopie zámků v.strom/odsune do.strom/accepted-<kdy>/; jako záznamy je nikdy nezapečetí. Kopie jinde ve výzkumu (vedlestrom.json, v.strom/, voutput/) jen vypíše a nechá na místě; - nakonec znovu spustí úplnou kontrolu: „strom verify: v pořádku – každý záznam sedí se svou pečetí“, nebo kolik problémů zbývá („strom verify pořád hlásí problémy: N“);
- druhé spuštění nic neudělá: „není co přijímat – každý záznam sedí se svou pečetí“.
- jedna podepsaná operace (
- Platí od: výzkum 1.30.1
R14.2.2 Co přijetí hlídá a nikdy neřeší
- Hlídá kód:
- výzkum přijme jen člověk ve vlastním interaktivním terminálu, stejnou branou jako
strom seal adopt;--yesho nikdy nepřijme („--yes výzkum nikdy nepřijme: rozhoduje člověk ve vlastním terminálu“). Mimo interaktivní terminál příkaz vypíše jen počty a větu „O přijetí výzkumu rozhoduje jen člověk ve vlastním terminálu – strom seal accept“; - agent smí jen
--preview; přijetí samo agentovi strom odmítne a agent člověku řekne příkaz; - nic nepřijme, dokud nad výzkumem běží most do aplikace Strom (
strom live stop, pak znovu) nebo na něm někdo pracuje (strom session finish, pak znovu); - po potvrzení udělá strom plán znovu pod zámkem výzkumu; když se výzkum od prohlédnutí změnil, nepřijme nic („výzkum se od prohlédnutí změnil: nic se nepřijalo“);
- výzkum zapečetěný na jiném počítači se nejdřív převezme (
strom seal adopt); - jiné nálezy kontroly přijetí nikdy neřeší: přepsaný log, podvrženou operaci, jiný klíč, soubory jen v cloudu, smazaný záznam ani soubor v
data/, který není záznamem čitelným pro strom. S takovým nálezem nepřijme nic („Nepřijato: kontrola našla, co přijetí nikdy neřeší“) a cestu řeknestrom verify.
- výzkum přijme jen člověk ve vlastním interaktivním terminálu, stejnou branou jako
- Platí od: výzkum 1.30.1
R14.3 strom repair se ptá člověka
strom repair vrátí výzkum do posledního zapečetěného stavu (R14.1). Nejdřív spočítá, co by udělal. Když by odebral víc záznamů nebo práci, rozhodne člověk ve vlastním terminálu.
- Hranice:
- ptá se, když by odebral víc než 3 záznamy, nebo jakýkoli záznam se znakem historie starší než výzkum (R14.1.1); jinak opraví bez otázky;
- před otázkou vypíše, kolik záznamů (a souborů) by odebral a kolik souborů by vrátil podle zapečetěného stavu (commit), a z toho kolik záznamů zapsaly operace zapečetěné ve vlastních lozích, na kolik odkazují jiné záznamy, kolik je starších než zapečetěný stav a které kopie iCloudu jsou uvnitř
.git; - pak: „Nejdřív zálohovat celou složku výzkumu. Kopie všeho odebraného zůstane v .strom/quarantine/, strom repair undo ji vrátí.“ Se znakem historie starší než výzkum navíc radí místo opravy
.gitze zálohy nebo z Time Machine, nebostrom seal accept; - otázka Odebrat N záznamů? má výchozí odpověď ne (Enter).
- Hlídá kód:
- agent,
--yesani běh bez terminálu otázku nedostanou: jen počty a větu „O odebrání záznamů rozhoduje jen člověk ve vlastním terminálu – strom repair“ (needs-consent, exit 4); agent to člověku řekne; - po souhlasu udělá strom plán znovu pod zámkem výzkumu; když se výzkum od prohlédnutí změnil, neopraví nic („výzkum se od prohlédnutí změnil: nic se neopravilo“);
- vedle kopií v
.strom/quarantine/<stamp>/uloží seznam toho, co odebral a co přepsal, a po opravě řekne „vrátit zpět: strom repair undo <stamp>“ (R14.3.1).
- agent,
- Ovládání: terminál:
strom repair. - Platí od: výzkum 1.31.0
R14.3.1 Vrátit opravu: strom repair undo
Co strom repair odebral nebo přepsal, vrátí strom repair undo z jeho kopií v .strom/quarantine/.
- Hranice:
- bez razítka vypíše kopie, které
strom repairuchoval, od nejnovější, u každé počet souborů a záznamů; bez kopií: „v .strom/quarantine/ nejsou žádné kopie ze strom repair“. Výpis smí spustit kdokoli, i agent; - s razítkem nejdřív vypíše, co by vrácení udělalo: vrácené soubory (a z nich záznamy), soubory změněné od opravy, které zůstanou, jak jsou teď, a soubory, které strom nepečetí (kopie z iCloudu, neznámé soubory) a zůstanou v karanténě. Otázka Vrátit je? má výchozí odpověď ne;
- vrátí soubor, který oprava odebrala a od té doby ve složce není, a soubor, který oprava přepsala a od té doby se nezměnil. U kopií z
strom repairvýzkumu 1.30 (bez seznamu toho, co oprava přepsala) vrátí jen soubory, které ve složce chybějí; - nic k vrácení: „není co vracet – každý soubor je jako jeho kopie, nebo se od té doby změnil“.
- bez razítka vypíše kopie, které
- Hlídá kód:
- vrácení s razítkem je jen pro člověka ve vlastním terminálu; jinde strom vypíše jen počty a „O vrácení toho, co strom repair odebral, rozhoduje jen člověk ve vlastním terminálu – strom repair undo <stamp>“ (exit 4);
- vrací jen do výzkumu, jak ho strom zapečetil: se změnami mimo strom nevrátí nic („výzkum má změny, které strom nezapečetil: nic se nevrátilo“, podrobnosti řekne
strom verify); - nic nevrátí, dokud nad výzkumem běží most do aplikace Strom (
strom live stop, pak znovu) nebo na něm někdo pracuje (strom session finish, pak znovu); - po potvrzení udělá plán znovu pod zámkem výzkumu; když se výzkum od prohlédnutí změnil, nevrátí nic („výzkum se od prohlédnutí změnil: nic se nevrátilo“);
- jedna podepsaná operace (
repair.undo) jmenuje každý vrácený záznam, jak je, a strom ji uloží zapečetěným commitem; ve složce se nic nesmaže. Nakonec znovu spustí úplnou kontrolu jakostrom verify.
- Ovládání: terminál:
strom repair undo(výpis),strom repair undo <stamp>. - Platí od: výzkum 1.31.0; vrací i kopie z
strom repairvýzkumu 1.30