S1 Propojení aplikace a výzkumu

Jak se aplikace Strom spojí s výzkumem na stejném počítači, jaké druhy stromů z toho vzniknou a co se děje, když spojení nejde. Popisuje aplikaci Strom 3.21.2 (a výzkum 1.25.2). Změny z novější verze mají u sebe její číslo. Co se s úpravami děje po spojení, popisuje S2, telefon S5.

S1.1 Most výzkumu běží jen na tomto počítači

Aplikace mluví s výzkumem přes most: malý server, který výzkum spustí na tomto počítači. Most poslouchá jen na adrese 127.0.0.1, na náhodném portu, a každá jeho adresa nese tajný klíč. Data stromu přes most nikam jinam nejdou.

  • Hranice:
    • Most přijme dotaz jen ze stránky aplikace Strom na stromapp.info nebo z místní adresy. Přijde-li jeho klíč z cizí stránky, výzkum klíč hned vymění a ten dotaz nedostane odpověď.
    • Most běží, dokud ho člověk nevypne (strom live stop, v aplikaci přepínač Výzkum zapnutý, S1.9), nebo do vypnutí počítače. Sám skončí jen tehdy, když to člověk zvolil (live.idleMinutes, v aplikaci Po 2 hodinách nečinnosti): když se ho ta doba nikdo na nic nezeptá a ve stromu přitom nikdo nepracuje. Pravidelný dotaz aplikace na stav most při životě nedrží.
    • Most skončí sám také tehdy, když jeho výzkum ze složky zmizí a chybí i při další kontrole aspoň o 10 s později. Disk nedostupný jen na chvíli most neukončí. Most téhož výzkumu spuštěný navíc vedle běžícího hned skončí.
    • Když se most spustí znovu sám (aktualizace, nečinnost, pád), drží si adresu: stejný port, je-li volný, a stejný klíč. Aplikace se pak spojí bez nového odkazu.
    • strom live stop klíč zahodí: aplikaci pak znovu spojí až strom app. Je-li port obsazený jiným programem, most vezme jiný port a aplikace potřebuje nový odkaz.
    • Zápis most odmítne, když je strom zapečetěný na jiném počítači, když soubory stromu ve složce v cloudu ještě nejsou stažené a když je plný disk. Úpravy pak čekají v aplikaci (S2).
  • Ovládání: terminál: strom live (běží most?), strom live start, strom live stop (--forget zapomene i port), strom config set live.idleMinutes <minuty> (0: nikdy sám, výchozí). Záznam běhu je ve složce výzkumu v .strom/live.log.
  • Platí od: výzkum 1.0.0. Stejná adresa po novém spuštění od 1.8.0, live.idleMinutes od 1.25.0.
  • Od výzkumu 1.29.0: most sám po nečinnosti nekončí (výchozí live.idleMinutes 0); dřív skončil sám po dvou hodinách. Hodnota, kterou si člověk uložil, zůstává.
  • Od výzkumu 1.30.0: most, jehož výzkum zmizel, skončí až po druhé kontrole aspoň o 10 s později (dřív hned); druhý most téhož výzkumu hned skončí.
  • Od výzkumu 1.31.0: i po aktualizaci zůstane u výzkumu jeden most. Most, který běží vedle mostu výzkumu (toho, kterého jmenuje .strom/live.json), skončí sám při nejbližší kontrole (každých 10 s). Most, kterému aktualizace smazala strom, ze kterého běží, skončí také a zapíše to do .strom/live.log. Nový most, který skončí, protože výzkum drží jiný most, ukončí i most, který ho spustil k předání, pokud to není most výzkumu. Předání mostu novějšímu stromu je rychlejší: starý most odpovídá, zatímco se nový strom ověřuje.

S1.2 Výzkum se otevře v aplikaci odkazem z terminálu

Výzkum se v aplikaci otevře příkazem strom app. Výzkum spustí most a otevře v prohlížeči aplikaci s odkazem na svůj strom. Poprvé vznikne v aplikaci nový strom, příště se aktualizuje tentýž.

  • Hranice:
    • Pracuje-li ve stromu agent (nebo s volbou --live), aplikace strom rovnou sleduje živě (S1.4). Jinak si strom jednou načte.
    • Aplikace vezme jen odkaz na 127.0.0.1 nebo localhost. Jiný odkaz ignoruje s hlášením „Odkaz mířil na soubor, který není na tomto počítači, proto byl ignorován.“
    • Strom z výzkumu už v aplikaci je a od posledního načtení se v aplikaci nezměnil: aktualizuje se. Změnil se: aplikace se zeptá, zda ho Aktualizovat, nebo Otevřít jako kopii. Před aktualizací se uloží záloha.
    • Safari webové stránce spojení s programem na tomto počítači nedovolí. strom app proto Safari nikdy neotevře. Bez vhodného prohlížeče soubor převezme nainstalovaná aplikace, nebo jde do okna aplikace přetáhnout soubor output/tree-strom.ged ze složky výzkumu.
    • Chrome a Edge se poprvé zeptají na povolení přístupu k zařízením v místní síti. Bez něj se aplikace k výzkumu nedostane (S1.5).
  • Ovládání: terminál: strom app, strom app --live. Aplikace: Výzkum → Další → Výzkum u tohoto stromu…
  • Platí od: aplikace 3.0.0, výzkum 1.0.0
  • Od výzkumu 1.30.0: na macOS předá výzkum adresu aplikaci nainstalované z prohlížeče na Chromiu (Chrome, Edge…) prohlížeči, který už běží, stejně jako by ji předalo jeho druhé spuštění. Žádný další program se nespustí a v Docku nepřibude ikona prohlížeče. Když prohlížeč neběží nebo do 5 s neodpoví, výzkum ho spustí jako dřív.

S1.2.1 Odkazy, které aplikace přijme

OdkazCo aplikace udělá
?live=otevře strom a sleduje ho živě
?import-url=strom jednou načte z mostu
?send=pošle úpravy na adresu, kterou dal výzkum spuštěný z aplikace k poslání
?research=installotevře instalaci výzkumu (odkaz poslaný z telefonu)
?tree=…&research=…&person=…otevře strom výzkumu na zadané osobě

Parametry aplikace po zpracování z adresy odebere. Po obnovení stránky během sledování se sledování tiše obnoví.

S1.3 Druhy stromů v aplikaci

Strom v aplikaci je buď vlastní, nebo patří k výzkumu na tomto počítači. Strom z výzkumu nese v souboru číslo výzkumu a verzi, ze které vznikl. Podle toho aplikace ví, kam ho poslat zpět.

DruhV přepínači stromůCo to je
Vlastní strombez značkystrom jen v aplikaci, bez výzkumu
VýzkumVýzkumstrom, ve kterém pracuje agent výzkumu
Archiv StromuArchivstrom, který výzkum drží s prameny na disku, bez agenta
Výzkum čeká na agentaArchivvýzkum, který zatím nemá agenta; aplikace s ním zachází jako s archivem
Kopiebez značkystarší kopie stromu z výzkumu (Otevřít jako kopii, duplikát, druhý import); z výzkumu se už neaktualizuje
  • Hranice: zda je strom výzkum, nebo archiv, rozhoduje výzkum, ne aplikace. Přepnout jde jen ve výzkumu.
  • Ovládání: aplikace: přepínač stromů. Terminál: menu výzkumu.
  • Platí od: aplikace 3.12.0 (název Archiv Stromu), značky v přepínači od 3.16.0

S1.4 Sledování živě

Při sledování živě přicházejí změny z výzkumu do aplikace samy. Sledovaný strom je mezitím jen pro čtení, aby se úprava v aplikaci nepotkala s prací agenta.

  • Hranice:
    • Živě se sleduje vždy jen jeden strom. Sledování jiného stromu to předchozí ukončí.
    • Přepnutí na strom, kde pracuje agent, ho začne sledovat bez dotazu. Neodeslané úpravy otevřeného stromu se předtím pošlou.
    • Sledování skončí, když agent přestane pracovat nebo když se z výzkumu stane archiv. Strom jde pak zase upravovat.
    • Když se automatické sledování nepodaří, aplikace mlčí a strom zůstane, jak byl.
  • Ovládání: aplikace: Sledovat živě · terminál: strom app --live
  • Platí od: aplikace 3.0.0; přepnutí na strom s agentem od 3.13.1
  • Od aplikace 3.26.0 s výzkumem 1.30.0:
    • výzkum má strom pro aplikaci sestavený pro každý stav a drží ho i po novém spuštění mostu;
    • aplikace ukáže strom hned v poslední sestavené podobě. Když výzkum mezitím pokročil, panel výzkumu ukáže „Připravuje se novější verze…“ a novější verze strom sama nahradí, jakmile je hotová;
    • když se výzkum od posledního načtení nezměnil a strom v aplikaci je stále přesně ten načtený, aplikace ho znovu nestahuje ani nenačítá;
    • během sledování výzkum změnu ohlásí, až je její strom připravený.

S1.5 Když výzkum neběží nebo spojení nejde

Když aplikace výzkum nezastihne, strom v aplikaci se nemění a úpravy v něm počkají. Co přesně se stalo, ukáže aplikace v okně Výzkum se nepodařilo spojit.

PříčinaCo aplikace ukážeCo pomůže
prohlížeč nepouští stránku k zařízením v místní síti… blokuje spojení (název prohlížeče)povolit Aplikace na zařízení (Brave: Přístup k localhostu) v nastavení webu
prohlížeč se teprve ptáProhlížeč čeká na povoleníodpovědět na dotaz prohlížeče
most neběžíVýzkum neodpovídáspustit výzkum; na nové adrese ho spojí strom app --live
na adrese odpovídá jiný most (změněný klíč, jiný strom)Výzkum odmítl spojenístrom app --live
SafariSafari výzkum nepustíotevřít odkaz v Chrome nebo Edge (Zkopírovat odkaz)
  • Hranice:
    • Okno vždy řekne, že se nic nezměnilo a strom zůstává, jak byl. Zkusit znovu zkusí spojení znovu.
    • Strom z výzkumu jde upravovat i tehdy, když výzkum neběží. Úpravy se pošlou, až se výzkum znovu spojí.
    • Most běží, ale neodpovídá: pomůže strom live stop a nové spuštění.
  • Ovládání: aplikace: Zkusit znovu, Zavřít, Jak povolit · terminál: strom app --live, strom live stop
  • Platí od: aplikace 3.9.0

S1.6 Starší a novější verze

Aplikace a výzkum se vydávají zvlášť. Výzkum aplikaci ve stavu řekne, co umí, a aplikace podle toho zapne jen to, co výzkum přijme. Výzkum zase podle verze aplikace volí, co jí pošle.

  • Hranice:
    • Starší výzkum (bez automatického posílání, nebo bez titulů): aplikace ukáže Výzkum má starší verzi (v) s nabídkou Aktualizovat výzkum. Úpravy se pak posílají jen ručně: aplikace výzkum spustí v terminálu a ten si je vezme. Tituly do aktualizace zůstanou jen v aplikaci.
    • Nová verze výzkumu k dispozici: aplikace ukáže Nová verze Strom Research … s tlačítkem Aktualizovat. Co právě běží, doběhne na současné verzi.
    • Výzkum, který zapsala novější verze programu strom: starší program ho neotevře ani do něj nezapíše.
    • Strom uložený novější verzí aplikace: v aplikaci je jen ke čtení, dokud se aplikace neaktualizuje.
  • Ovládání: aplikace: Aktualizovat výzkum, Zkontrolovat znovu · terminál: strom update
  • Platí od: aplikace 3.9.0 (výzkum 1.12.0); strom jen ke čtení od aplikace 3.19.0
  • Od aplikace 3.22.0: linie z aplikace a panel bez spojení se zapnou jen s výzkumem 1.26.0 (S4).

S1.7 Více výzkumů na jednom počítači

Každý strom z výzkumu má vlastní most. Aplikace se ptá i mostů stromů, které právě nejsou otevřené, a jejich stav ukáže v přepínači stromů.

  • Hranice:
    • Značky u stromu v přepínači: živě (sleduje se), běží nebo N linie (agent pracuje), čeká N (věci k vyřízení), neběží.
    • Ptá se vždy jen jednoho mostu naráz a jen tehdy, když je stránka vidět: poprvé po 3 sekundách, pak každou minutu. Na odpověď čeká nejvýš 1,5 sekundy.
    • Neběžící výzkum se znovu spojí otevřením stromu z výzkumu (strom app).
  • Ovládání: aplikace: přepínač stromů; panel výzkumu, řádek Jinde
  • Platí od: aplikace 3.13.1

S1.8 Data zůstávají na počítači

Aplikace drží stromy v úložišti prohlížeče na tomto zařízení. Výzkum drží svůj strom ve své složce na disku. Mezi nimi jde strom jen přes most na tomto počítači (S1.1).

  • Hranice:
    • Každý prohlížeč má vlastní úložiště. Strom otevřený v Chrome v Edge není.
    • Strom v aplikaci a strom ve výzkumu jsou dvě kopie. Hlavní je strom v aplikaci, výzkum má vlastní kopii, a co výzkum nezapíše, je v aplikaci vždy vidět (S2).
  • Platí od: aplikace 3.0.0

S1.9 Výzkum zapnutý: přepínač mostu u stromu

Každý strom z výzkumu na tomto počítači má v aplikaci přepínač Výzkum zapnutý. Ukazuje skutečný stav mostu: zapnutý, když most odpovídá, jinak vypnutý. Zapnutý most běží do vypnutí přepínačem nebo strom live stop, do vypnutí počítače, nebo podle nastavení Vypnout výzkum po nečinnosti.

  • Hranice:
    • Vypnutí ukončí most jako strom live stop, jen si most nechá adresu (port a klíč). Vypnutý most zůstane vypnutý: nová práce ve stromu ho sama nevrátí. Strom v aplikaci zůstává a jde dál upravovat (S1.5). Pod přepínačem stojí „Vypnutý. Zůstane vypnutý, dokud se znovu nezapne.“
    • Most vypnutý nečinností se vrátí sám s novou prací ve stromu, na téže adrese. Pod přepínačem stojí „Vypnul se po nečinnosti. S novou prací ve stromu se zase zapne sám.“
    • Zapnutí pošle výzkumu odkaz, který spustí jen most na jeho poslední adrese, bez okna. Když se nic nestane, nebo výzkum zapnutí z aplikace neumí, aplikace ukáže příkaz strom live start (spustit v terminálu ve složce stromu) s tlačítkem Kopírovat. Starší výzkum, který vypnutí z aplikace neumí, ukáže stejně příkaz strom live stop.
    • Po vypnutí nebo restartu počítače most neběží a sám se nespustí. Zapne ho člověk: v panelu výzkumu Zapnout, nebo strom live start.
    • Vypnout výzkum po nečinnosti má dvě volby: Do vypnutí počítače (výchozí) a Po 2 hodinách nečinnosti. Platí pro všechny stromy na tomto počítači a drží ji výzkum (live.idleMinutes 0 nebo 120). Běžící mosty ji převezmou do minuty. Hodnota nastavená v terminálu se ukáže jako Vlastní hodnota (N min). Neběží-li výzkum, který volbu umí, aplikace místo voleb ukáže příkazy do terminálu.
    • Na telefonu a tabletu přepínač není (výzkum běží na počítači). Kopie stromu z výzkumu přepínač nemá.
  • Ovládání: aplikace: přepínač Výzkum zapnutý v panelu výzkumu (strom bez sledování živě a po skončení sledování) a ve Správě stromů u řádku stromu; panel výzkumu, když výzkum neběží: Zapnout; Nastavení → Výzkum na tomto počítači → Vypnout výzkum po nečinnosti. Terminál: strom live start, strom live stop, strom config set live.idleMinutes 0 (do vypnutí počítače) nebo 120 (po 2 hodinách nečinnosti).
  • Platí od: aplikace 3.25.0, výzkum 1.29.0