S1 Połączenie aplikacji i badania

Jak aplikacja Strom łączy się z badaniem na tym samym komputerze, jakie rodzaje drzew z tego powstają i co się dzieje, gdy połączenie nie działa. Opisuje aplikację Strom 3.21.2 (i badanie 1.25.2). Zmiany z nowszej wersji mają przy sobie jej numer. Co dzieje się ze zmianami po połączeniu, opisuje S2, telefon S5.

S1.1 Most badania działa tylko na tym komputerze

Aplikacja rozmawia z badaniem przez most: mały serwer, który badanie uruchamia na tym komputerze. Most nasłuchuje tylko na adresie 127.0.0.1, na losowym porcie, a każdy jego adres niesie tajny klucz. Dane drzewa nie idą przez most nigdzie indziej.

  • Granice:
    • Most przyjmuje zapytanie tylko ze strony aplikacji Strom na stromapp.info lub z adresu lokalnego. Jeśli jego klucz przyjdzie z obcej strony, badanie od razu wymienia klucz, a to zapytanie nie dostaje odpowiedzi.
    • Most działa, dopóki człowiek go nie wyłączy (strom live stop, w aplikacji przełącznik Badanie włączone, S1.9), albo do wyłączenia komputera. Sam kończy się tylko wtedy, gdy człowiek tak wybrał (live.idleMinutes, w aplikacji Po 2 godzinach bez pracy): gdy przez ten czas nikt o nic go nie pyta i nikt przy tym nie pracuje w drzewie. Regularne zapytanie aplikacji o stan nie utrzymuje mostu przy życiu.
    • Most kończy się sam także wtedy, gdy jego badanie zniknie z folderu i brakuje go też przy następnej kontroli co najmniej 10 s później. Dysk niedostępny tylko przez chwilę mostu nie kończy. Drugi most tego samego badania, uruchomiony obok działającego, od razu się kończy.
    • Gdy most uruchomi się ponownie sam (aktualizacja, bezczynność, awaria), zachowuje adres: ten sam port, jeśli jest wolny, i ten sam klucz. Aplikacja łączy się wtedy bez nowego linku.
    • strom live stop porzuca klucz: aplikację połączy wtedy ponownie dopiero strom app. Jeśli port zajmuje inny program, most bierze inny port, a aplikacja potrzebuje nowego linku.
    • Zapis most odrzuca, gdy drzewo jest zapieczętowane na innym komputerze, gdy pliki drzewa w folderze w chmurze nie są jeszcze pobrane i gdy dysk jest pełny. Zmiany czekają wtedy w aplikacji (S2).
  • Obsługa: terminal: strom live (czy most działa?), strom live start, strom live stop (--forget zapomina też port), strom config set live.idleMinutes <minuty> (0: nigdy sam, domyślnie). Zapis przebiegu jest w folderze badania w .strom/live.log.
  • Obowiązuje od: badanie 1.0.0. Ten sam adres po ponownym uruchomieniu od 1.8.0, live.idleMinutes od 1.25.0.
  • Od badania 1.29.0: most nie kończy się już sam po bezczynności (domyślne live.idleMinutes 0); wcześniej kończył się sam po dwóch godzinach. Wartość zapisana przez człowieka zostaje.
  • Od badania 1.30.0: most, którego badanie zniknęło, kończy się dopiero po drugiej kontroli co najmniej 10 s później (wcześniej od razu); drugi most tego samego badania od razu się kończy.
  • Od badania 1.31.0: także po aktualizacji zostaje przy badaniu jeden most. Most działający obok mostu badania (tego, który wskazuje .strom/live.json) kończy się sam przy najbliższej kontroli (co 10 s). Most, któremu aktualizacja usunęła strom, z którego działa, też się kończy i zapisuje to w .strom/live.log. Nowy most, który się kończy, bo badanie trzyma inny most, kończy też most, który go uruchomił do przekazania, chyba że to most badania. Przekazanie mostu nowszemu strom jest szybsze: stary most odpowiada, podczas gdy nowy strom jest sprawdzany.

S1.2 Badanie otwiera się w aplikacji linkiem z terminala

Badanie otwiera się w aplikacji poleceniem strom app. Badanie uruchamia most i otwiera w przeglądarce aplikację z linkiem do swojego drzewa. Za pierwszym razem w aplikacji powstaje nowe drzewo, następnym razem aktualizuje się to samo.

  • Granice:
    • Jeśli w drzewie pracuje agent (albo z opcją --live), aplikacja od razu śledzi drzewo na żywo (S1.4). W przeciwnym razie wczytuje drzewo jeden raz.
    • Aplikacja przyjmuje tylko link do 127.0.0.1 lub localhost. Inny link ignoruje z komunikatem „Link wskazywał na plik, którego nie ma na tym komputerze, dlatego został zignorowany.”
    • Drzewo z badania już jest w aplikacji i od ostatniego wczytania nie zmieniło się w aplikacji: aktualizuje się. Zmieniło się: aplikacja pyta, czy je Zaktualizuj, czy Otwórz jako kopię. Przed aktualizacją zapisuje się kopia zapasowa.
    • Safari nie pozwala stronie internetowej łączyć się z programem na tym komputerze. strom app dlatego nigdy nie otwiera Safari. Bez odpowiedniej przeglądarki plik przejmuje zainstalowana aplikacja albo można przeciągnąć do okna aplikacji plik output/tree-strom.ged z folderu badania.
    • Chrome i Edge za pierwszym razem pytają o zezwolenie na dostęp do urządzeń w sieci lokalnej. Bez niego aplikacja nie dotrze do badania (S1.5).
  • Obsługa: terminal: strom app, strom app --live. Aplikacja: Badanie → Więcej → Badanie dla tego drzewa…
  • Obowiązuje od: aplikacja 3.0.0, badanie 1.0.0
  • Od badania 1.30.0: na macOS badanie przekazuje adres dla aplikacji zainstalowanej z przeglądarki opartej na Chromium (Chrome, Edge…) przeglądarce, która już działa, tak jak przekazałoby go jej własne drugie uruchomienie. Nie uruchamia się żaden inny program, a w Docku nie przybywa ikona przeglądarki. Gdy przeglądarka nie działa lub nie odpowie w ciągu 5 s, badanie uruchomi ją jak dotąd.

S1.2.1 Linki, które aplikacja przyjmuje

LinkCo zrobi aplikacja
?live=otworzy drzewo i śledzi je na żywo
?import-url=wczyta drzewo z mostu jeden raz
?send=wyśle zmiany na adres, który podało badanie uruchomione z aplikacji do wysłania
?research=installotworzy instalację badania (link wysłany z telefonu)
?tree=…&research=…&person=…otworzy drzewo badania na podanej osobie

Parametry aplikacja po przetworzeniu usuwa z adresu. Po odświeżeniu strony w trakcie śledzenia śledzenie wznawia się po cichu.

S1.3 Rodzaje drzew w aplikacji

Drzewo w aplikacji jest albo własne, albo należy do badania na tym komputerze. Drzewo z badania niesie w pliku numer badania i wersję, z której powstało. Dzięki temu aplikacja wie, dokąd je odesłać.

RodzajW przełączniku drzewCo to jest
Własne drzewobez oznaczeniadrzewo tylko w aplikacji, bez badania
BadanieBadaniedrzewo, w którym pracuje agent badania
Archiwum StromArchiwumdrzewo, które badanie trzyma ze źródłami na dysku, bez agenta
Badanie czeka na agentaArchiwumbadanie, które jeszcze nie ma agenta; aplikacja traktuje je jak archiwum
Kopiabez oznaczeniastarsza kopia drzewa z badania (Otwórz jako kopię, duplikat, drugi import); z badania już się nie aktualizuje
  • Granice: czy drzewo jest badaniem, czy archiwum, rozstrzyga badanie, nie aplikacja. Przełączyć można tylko w badaniu.
  • Obsługa: aplikacja: przełącznik drzew. Terminal: menu badania.
  • Obowiązuje od: aplikacja 3.12.0 (nazwa Archiwum Strom), oznaczenia w przełączniku od 3.16.0

S1.4 Śledzenie na żywo

Przy śledzeniu na żywo zmiany z badania przychodzą do aplikacji same. Śledzone drzewo jest w tym czasie tylko do odczytu, aby zmiana w aplikacji nie spotkała się z pracą agenta.

  • Granice:
    • Na żywo śledzi się zawsze tylko jedno drzewo. Śledzenie innego drzewa kończy poprzednie.
    • Przełączenie na drzewo, w którym pracuje agent, zaczyna je śledzić bez pytania. Niewysłane zmiany otwartego drzewa wysyłają się wcześniej.
    • Śledzenie kończy się, gdy agent przestaje pracować albo gdy badanie staje się archiwum. Drzewo można wtedy znów edytować.
    • Gdy automatyczne śledzenie się nie uda, aplikacja milczy, a drzewo zostaje takie, jakie było.
  • Obsługa: aplikacja: Śledź na żywo · terminal: strom app --live
  • Obowiązuje od: aplikacja 3.0.0; przełączenie na drzewo z agentem od 3.13.1
  • Od aplikacji 3.26.0 z badaniem 1.30.0:
    • badanie ma drzewo dla aplikacji zbudowane dla każdego stanu i zachowuje je także po ponownym uruchomieniu mostu;
    • aplikacja od razu pokazuje drzewo w ostatnio zbudowanej postaci. Gdy badanie w międzyczasie poszło dalej, panel badania pokazuje „Przygotowywanie nowszej wersji…”, a nowsza wersja sama zastępuje drzewo, gdy tylko jest gotowa;
    • gdy badanie od ostatniego wczytania się nie zmieniło, a drzewo w aplikacji jest wciąż dokładnie tym wczytanym, aplikacja nie pobiera go ani nie wczytuje ponownie;
    • podczas śledzenia badanie ogłasza zmianę, gdy jej drzewo jest gotowe.

S1.5 Gdy badanie nie działa albo połączenie się nie udaje

Gdy aplikacja nie zastanie badania, drzewo w aplikacji się nie zmienia, a zmiany w nim czekają. Co dokładnie się stało, aplikacja pokazuje w oknie Nie udało się połączyć z badaniem.

PrzyczynaCo pokaże aplikacjaCo pomoże
przeglądarka nie dopuszcza strony do urządzeń w sieci lokalnej… blokuje połączenie (nazwa przeglądarki)zezwolić na Aplikacje na urządzeniu (Brave: Dostęp do localhost) w ustawieniach witryny
przeglądarka dopiero pytaPrzeglądarka czeka na zezwolenieodpowiedzieć na pytanie przeglądarki
most nie działaBadanie nie odpowiadauruchomić badanie; pod nowym adresem połączy je strom app --live
pod adresem odpowiada inny most (zmieniony klucz, inne drzewo)Badanie odrzuciło połączeniestrom app --live
SafariSafari nie połączy się z badaniemotworzyć link w Chrome lub Edge (Kopiuj link)
  • Granice:
    • Okno zawsze mówi, że nic się nie zmieniło i drzewo zostaje takie, jakie było. Spróbuj ponownie ponawia połączenie.
    • Drzewo z badania można edytować także wtedy, gdy badanie nie działa. Zmiany wyślą się, gdy badanie znów się połączy.
    • Most działa, ale nie odpowiada: pomaga strom live stop i ponowne uruchomienie.
  • Obsługa: aplikacja: Spróbuj ponownie, Zamknij, Jak zezwolić · terminal: strom app --live, strom live stop
  • Obowiązuje od: aplikacja 3.9.0

S1.6 Starsze i nowsze wersje

Aplikacja i badanie wydawane są osobno. Badanie mówi aplikacji w stanie, co potrafi, a aplikacja według tego włącza tylko to, co badanie przyjmie. Badanie z kolei według wersji aplikacji wybiera, co jej wyśle.

  • Granice:
    • Starsze badanie (bez automatycznego wysyłania albo bez tytułów): aplikacja pokazuje Badanie ma starszą wersję (v) z propozycją Zaktualizuj badanie. Zmiany wysyła się wtedy tylko ręcznie: aplikacja uruchamia badanie w terminalu, a ono je pobiera. Tytuły do aktualizacji zostają tylko w aplikacji.
    • Dostępna nowa wersja badania: aplikacja pokazuje Nowa wersja Strom Research … z przyciskiem Zaktualizuj. To, co właśnie działa, kończy się na obecnej wersji.
    • Badanie zapisane przez nowszą wersję programu strom: starszy program go nie otworzy ani do niego nie zapisze.
    • Drzewo zapisane przez nowszą wersję aplikacji: w aplikacji jest tylko do odczytu, dopóki aplikacja się nie zaktualizuje.
  • Obsługa: aplikacja: Zaktualizuj badanie, Sprawdź ponownie · terminal: strom update
  • Obowiązuje od: aplikacja 3.9.0 (badanie 1.12.0); drzewo tylko do odczytu od aplikacji 3.19.0
  • Od aplikacji 3.22.0: linie z aplikacji i panel bez połączenia włączają się tylko z badaniem 1.26.0 (S4).

S1.7 Kilka badań na jednym komputerze

Każde drzewo z badania ma własny most. Aplikacja pyta też mosty drzew, które akurat nie są otwarte, i ich stan pokazuje w przełączniku drzew.

  • Granice:
    • Oznaczenia przy drzewie w przełączniku: na żywo (jest śledzone), działa lub N linie (agent pracuje), czeka N (sprawy do załatwienia), nie działa.
    • Pyta zawsze tylko jeden most naraz i tylko wtedy, gdy strona jest widoczna: pierwszy raz po 3 sekundach, potem co minutę. Na odpowiedź czeka najwyżej 1,5 sekundy.
    • Niedziałające badanie łączy się ponownie przez otwarcie drzewa z badania (strom app).
  • Obsługa: aplikacja: przełącznik drzew; panel badania, wiersz Gdzie indziej
  • Obowiązuje od: aplikacja 3.13.1

S1.8 Dane zostają na komputerze

Aplikacja trzyma drzewa w pamięci przeglądarki na tym urządzeniu. Badanie trzyma swoje drzewo w swoim folderze na dysku. Między nimi drzewo przechodzi tylko przez most na tym komputerze (S1.1).

  • Granice:
    • Każda przeglądarka ma własną pamięć. Drzewa otwartego w Chrome nie ma w Edge.
    • Drzewo w aplikacji i drzewo w badaniu to dwie kopie. Główne jest drzewo w aplikacji, badanie ma własną kopię, a to, czego badanie nie zapisze, jest w aplikacji zawsze widoczne (S2).
  • Obowiązuje od: aplikacja 3.0.0

S1.9 Badanie włączone: przełącznik mostu przy drzewie

Każde drzewo z badania na tym komputerze ma w aplikacji przełącznik Badanie włączone. Pokazuje rzeczywisty stan mostu: włączony, gdy most odpowiada, w przeciwnym razie wyłączony. Włączony most działa do wyłączenia przełącznikiem lub strom live stop, do wyłączenia komputera albo według ustawienia Wyłączanie badania po bezczynności.

  • Granice:
    • Wyłączenie kończy most jak strom live stop, tylko że most zachowuje adres (port i klucz). Wyłączony most zostaje wyłączony: nowa praca w drzewie go nie przywróci. Drzewo w aplikacji zostaje i można je dalej edytować (S1.5). Pod przełącznikiem: „Wyłączone. Pozostanie wyłączone, dopóki nie zostanie włączone ponownie.”
    • Most wyłączony z powodu bezczynności wraca sam z nową pracą w drzewie, pod tym samym adresem. Pod przełącznikiem: „Wyłączyło się po czasie bez pracy. Nowa praca w drzewie włączy je ponownie.”
    • Włączenie wysyła badaniu link, który uruchamia tylko most pod jego ostatnim adresem, bez okna. Gdy nic się nie stanie albo badania nie da się włączyć z aplikacji, aplikacja pokazuje polecenie strom live start (do uruchomienia w terminalu, w folderze drzewa) z przyciskiem Kopiuj. Starsze badanie, którego nie da się wyłączyć z aplikacji, tak samo pokazuje polecenie strom live stop.
    • Po wyłączeniu lub ponownym uruchomieniu komputera most nie działa i sam się nie uruchomi. Włącza go człowiek: w panelu badania Włącz albo strom live start.
    • Wyłączanie badania po bezczynności ma dwie opcje: Do wyłączenia komputera (domyślnie) i Po 2 godzinach bez pracy. Obowiązuje dla wszystkich drzew na tym komputerze i przechowuje je badanie (live.idleMinutes 0 lub 120). Działające mosty przejmują je w ciągu minuty. Wartość ustawiona w terminalu pokazuje się jako Własna wartość (N min). Gdy nie działa żadne badanie, które przyjmuje ten wybór, aplikacja zamiast opcji pokazuje polecenia do terminala.
    • Na telefonie i tablecie przełącznika nie ma (badanie działa na komputerze). Kopia drzewa z badania przełącznika nie ma.
  • Obsługa: aplikacja: przełącznik Badanie włączone w panelu badania (drzewo nieśledzone na żywo i po zakończeniu śledzenia) i w Zarządzanie drzewami przy wierszu drzewa; panel badania, gdy badanie nie działa: Włącz; Ustawienia → Badania na tym komputerze → Wyłączanie badania po bezczynności. Terminal: strom live start, strom live stop, strom config set live.idleMinutes 0 (do wyłączenia komputera) lub 120 (po 2 godzinach bez pracy).
  • Obowiązuje od: aplikacja 3.25.0, badanie 1.29.0