S1 Verbindung von App und Forschung

Wie sich die Strom-App mit der Forschung auf demselben Computer verbindet, welche Arten von Stammbäumen dabei entstehen und was geschieht, wenn die Verbindung nicht geht. Beschrieben werden die Strom-App 3.21.2 (und die Forschung 1.25.2). Änderungen aus einer neueren Version tragen deren Nummer. Was nach der Verbindung mit Änderungen geschieht, beschreibt S2, das Telefon S5.

S1.1 Die Brücke der Forschung läuft nur auf diesem Computer

Die App spricht mit der Forschung über eine Brücke: einen kleinen Server, den die Forschung auf diesem Computer startet. Die Brücke lauscht nur auf der Adresse 127.0.0.1, auf einem zufälligen Port, und jede ihrer Adressen trägt einen geheimen Schlüssel. Daten des Stammbaums gehen über die Brücke nirgendwo anders hin.

  • Grenzen:
    • Die Brücke nimmt eine Anfrage nur von einer Seite der Strom-App auf stromapp.info oder von einer lokalen Adresse an. Kommt ihr Schlüssel von einer fremden Seite, tauscht die Forschung den Schlüssel sofort aus, und diese Anfrage bekommt keine Antwort.
    • Die Brücke läuft, bis der Mensch sie ausschaltet (strom live stop, in der App der Schalter Forschung an, S1.9), oder bis der Computer heruntergefahren wird. Von selbst endet sie nur, wenn der Mensch das gewählt hat (live.idleMinutes, in der App Nach 2 Stunden ohne Arbeit): wenn sie in dieser Zeit niemand etwas fragt und dabei niemand im Stammbaum arbeitet. Die regelmäßige Statusabfrage der App hält die Brücke nicht am Leben.
    • Die Brücke endet von selbst auch dann, wenn ihre Forschung aus dem Ordner verschwindet und auch bei der nächsten Prüfung mindestens 10 s später fehlt. Ein nur kurz nicht erreichbarer Datenträger beendet die Brücke nicht. Eine zweite Brücke derselben Forschung, neben einer laufenden gestartet, endet sofort.
    • Startet die Brücke von selbst neu (Aktualisierung, Untätigkeit, Absturz), behält sie ihre Adresse: denselben Port, wenn er frei ist, und denselben Schlüssel. Die App verbindet sich dann ohne neuen Link.
    • strom live stop verwirft den Schlüssel: die App verbindet dann erst wieder strom app. Ist der Port von einem anderen Programm belegt, nimmt die Brücke einen anderen Port, und die App braucht einen neuen Link.
    • Einen Schreibvorgang lehnt die Brücke ab, wenn der Stammbaum auf einem anderen Computer versiegelt ist, wenn die Dateien des Stammbaums in einem Cloud-Ordner noch nicht heruntergeladen sind und wenn der Datenträger voll ist. Die Änderungen warten dann in der App (S2).
  • Bedienung: Terminal: strom live (läuft die Brücke?), strom live start, strom live stop (--forget vergisst auch den Port), strom config set live.idleMinutes <Minuten> (0: nie von selbst, Standard). Das Protokoll des Laufs liegt im Ordner der Forschung in .strom/live.log.
  • Gilt seit: Forschung 1.0.0. Dieselbe Adresse nach einem Neustart seit 1.8.0, live.idleMinutes seit 1.25.0.
  • Ab Forschung 1.29.0: die Brücke endet bei Untätigkeit nicht mehr von selbst (Standard live.idleMinutes 0); vorher endete sie von selbst nach zwei Stunden. Ein Wert, den der Mensch gespeichert hat, bleibt.
  • Ab Forschung 1.30.0: eine Brücke, deren Forschung verschwunden ist, endet erst nach einer zweiten Prüfung mindestens 10 s später (vorher sofort); eine zweite Brücke derselben Forschung endet sofort.
  • Ab Forschung 1.31.0: auch nach einem Update bleibt bei einer Forschung eine Brücke. Eine Brücke, die neben der Brücke der Forschung läuft (der, die .strom/live.json nennt), endet bei der nächsten Prüfung von selbst (alle 10 s). Eine Brücke, deren strom ein Update gelöscht hat, endet auch und schreibt das in .strom/live.log. Eine neue Brücke, die endet, weil eine andere Brücke die Forschung hält, beendet auch die Brücke, die sie für die Übergabe gestartet hat, außer es ist die Brücke der Forschung. Die Übergabe der Brücke an einen neueren strom ist schneller: die alte Brücke antwortet, während der neue strom geprüft wird.

S1.2 Die Forschung öffnet sich in der App über einen Link aus dem Terminal

Die Forschung öffnet sich in der App mit dem Befehl strom app. Die Forschung startet die Brücke und öffnet im Browser die App mit einem Link auf ihren Stammbaum. Beim ersten Mal entsteht in der App ein neuer Stammbaum, danach wird derselbe aktualisiert.

  • Grenzen:
    • Arbeitet im Stammbaum ein Agent (oder mit der Option --live), verfolgt die App den Stammbaum gleich live (S1.4). Sonst lädt sie den Stammbaum einmal.
    • Die App nimmt nur einen Link auf 127.0.0.1 oder localhost an. Einen anderen Link ignoriert sie mit der Meldung „Der Link verwies auf eine Datei, die nicht auf diesem Computer liegt, und wurde daher ignoriert.“
    • Der Stammbaum aus der Forschung ist schon in der App und hat sich seit dem letzten Laden in der App nicht geändert: er wird aktualisiert. Hat er sich geändert: die App fragt, ob sie ihn Aktualisieren oder Als Kopie öffnen soll. Vor der Aktualisierung wird eine Sicherung gespeichert.
    • Safari erlaubt einer Webseite keine Verbindung mit einem Programm auf diesem Computer. strom app öffnet Safari darum nie. Ohne geeigneten Browser übernimmt die installierte App die Datei, oder die Datei output/tree-strom.ged aus dem Ordner der Forschung lässt sich in das Fenster der App ziehen.
    • Chrome und Edge fragen beim ersten Mal nach der Erlaubnis für den Zugriff auf Geräte im lokalen Netzwerk. Ohne sie erreicht die App die Forschung nicht (S1.5).
  • Bedienung: Terminal: strom app, strom app --live. App: Forschung → Weitere Aktionen → Forschung für diesen Stammbaum…
  • Gilt seit: App 3.0.0, Forschung 1.0.0
  • Seit Forschung 1.30.0: unter macOS übergibt die Forschung die Adresse für die aus einem Chromium-Browser installierte App (Chrome, Edge…) dem schon laufenden Browser, so wie sie sein eigener zweiter Start übergeben würde. Kein weiteres Programm startet, und im Dock kommt kein Browser-Symbol hinzu. Läuft der Browser nicht oder antwortet er nicht innerhalb von 5 s, startet die Forschung ihn wie bisher.

S1.2.1 Links, die die App annimmt

LinkWas die App tut
?live=öffnet den Stammbaum und verfolgt ihn live
?import-url=lädt den Stammbaum einmal von der Brücke
?send=sendet Änderungen an die Adresse, die eine aus der App zum Senden gestartete Forschung angegeben hat
?research=installöffnet die Installation der Forschung (ein vom Telefon gesendeter Link)
?tree=…&research=…&person=…öffnet den Stammbaum der Forschung bei der angegebenen Person

Die Parameter entfernt die App nach der Verarbeitung aus der Adresse. Nach einem Neuladen der Seite während des Verfolgens wird das Verfolgen still wiederhergestellt.

S1.3 Arten von Stammbäumen in der App

Ein Stammbaum in der App ist entweder ein eigener oder gehört zu einer Forschung auf diesem Computer. Ein Stammbaum aus der Forschung trägt in der Datei die Nummer der Forschung und die Version, aus der er entstand. Daran erkennt die App, wohin sie ihn zurückschickt.

ArtIm Stammbaum-UmschalterWas es ist
Eigener Stammbaumohne Markeein Stammbaum nur in der App, ohne Forschung
ForschungForschungein Stammbaum, in dem der Agent der Forschung arbeitet
Strom-ArchivArchivein Stammbaum, den die Forschung mit den Quellen auf dem Datenträger hält, ohne Agent
Forschung wartet auf einen AgentenArchiveine Forschung, die noch keinen Agenten hat; die App behandelt sie wie ein Archiv
Kopieohne Markeeine ältere Kopie eines Stammbaums aus der Forschung (Als Kopie öffnen, Duplikat, zweiter Import); wird aus der Forschung nicht mehr aktualisiert
  • Grenzen: ob ein Stammbaum Forschung oder Archiv ist, entscheidet die Forschung, nicht die App. Umschalten lässt es sich nur in der Forschung.
  • Bedienung: App: Stammbaum-Umschalter. Terminal: Menü der Forschung.
  • Gilt seit: App 3.12.0 (Name Strom-Archiv), Marken im Umschalter seit 3.16.0

S1.4 Live verfolgen

Beim Live-Verfolgen kommen Änderungen aus der Forschung von selbst in die App. Der verfolgte Stammbaum ist währenddessen schreibgeschützt, damit sich eine Änderung in der App nicht mit der Arbeit des Agenten trifft.

  • Grenzen:
    • Live verfolgt wird immer nur ein Stammbaum. Das Verfolgen eines anderen Stammbaums beendet das vorige.
    • Der Wechsel zu einem Stammbaum, in dem ein Agent arbeitet, beginnt ohne Rückfrage, ihn zu verfolgen. Nicht gesendete Änderungen des geöffneten Stammbaums werden vorher gesendet.
    • Das Verfolgen endet, wenn der Agent aufhört zu arbeiten oder wenn aus der Forschung ein Archiv wird. Der Stammbaum lässt sich dann wieder bearbeiten.
    • Misslingt das automatische Verfolgen, schweigt die App, und der Stammbaum bleibt, wie er war.
  • Bedienung: App: Live verfolgen · Terminal: strom app --live
  • Gilt seit: App 3.0.0; Wechsel zu einem Stammbaum mit Agent seit 3.13.1
  • Ab App 3.26.0 mit Forschung 1.30.0:
    • die Forschung hat den Stammbaum für die App für jeden Stand erstellt und behält ihn auch nach einem Neustart der Brücke;
    • die App zeigt den Stammbaum sofort in seiner zuletzt erstellten Form. Ist die Forschung inzwischen weitergekommen, zeigt das Panel der Forschung „Neuere Version wird vorbereitet…“, und die neuere Version ersetzt den Stammbaum von selbst, sobald sie fertig ist;
    • hat sich die Forschung seit dem letzten Laden nicht geändert und ist der Stammbaum in der App noch genau der geladene, lädt die App ihn weder erneut herunter noch erneut ein;
    • beim Verfolgen meldet die Forschung eine Änderung, sobald ihr Stammbaum fertig ist.

S1.5 Wenn die Forschung nicht läuft oder die Verbindung nicht geht

Erreicht die App die Forschung nicht, ändert sich der Stammbaum in der App nicht, und Änderungen darin warten. Was genau geschah, zeigt die App im Fenster Verbindung zur Forschung fehlgeschlagen.

UrsacheWas die App zeigtWas hilft
der Browser lässt die Seite nicht zu Geräten im lokalen Netzwerk… blockiert die Verbindung (Name des Browsers)Apps auf dem Gerät (Brave: Localhost-Zugriff) in den Website-Einstellungen erlauben
der Browser fragt erst nochDer Browser wartet auf eine Erlaubnisdie Frage des Browsers beantworten
die Brücke läuft nichtDie Forschung antwortet nichtdie Forschung starten; an der neuen Adresse verbindet sie strom app --live
an der Adresse antwortet eine andere Brücke (geänderter Schlüssel, anderer Stammbaum)Die Forschung hat die Verbindung abgelehntstrom app --live
SafariSafari verbindet sich nicht mit der Forschungden Link in Chrome oder Edge öffnen (Link kopieren)
  • Grenzen:
    • Das Fenster sagt immer, dass sich nichts geändert hat und der Stammbaum bleibt, wie er war. Erneut versuchen versucht die Verbindung erneut.
    • Ein Stammbaum aus der Forschung lässt sich auch dann bearbeiten, wenn die Forschung nicht läuft. Die Änderungen werden gesendet, sobald sich die Forschung wieder verbindet.
    • Die Brücke läuft, antwortet aber nicht: es hilft strom live stop und ein neuer Start.
  • Bedienung: App: Erneut versuchen, Schließen, So erlauben · Terminal: strom app --live, strom live stop
  • Gilt seit: App 3.9.0

S1.6 Ältere und neuere Versionen

App und Forschung erscheinen getrennt. Die Forschung sagt der App im Status, was sie kann, und die App schaltet danach nur ein, was die Forschung annimmt. Die Forschung wiederum wählt nach der Version der App, was sie ihr sendet.

  • Grenzen:
    • Ältere Forschung (ohne automatisches Senden oder ohne Titel): die App zeigt Die Forschung hat eine ältere Version (v) mit dem Angebot Forschung aktualisieren. Änderungen werden dann nur von Hand gesendet: die App startet die Forschung im Terminal, und diese holt sie ab. Titel bleiben bis zur Aktualisierung nur in der App.
    • Neue Version der Forschung verfügbar: die App zeigt Neue Version Strom Research … mit der Schaltfläche Aktualisieren. Was gerade läuft, endet mit der aktuellen Version.
    • Eine Forschung, die eine neuere Version des Programms strom geschrieben hat: ein älteres Programm öffnet sie nicht und schreibt nicht in sie.
    • Ein Stammbaum, den eine neuere Version der App gespeichert hat: in der App ist er schreibgeschützt, bis die App aktualisiert wird.
  • Bedienung: App: Forschung aktualisieren, Erneut prüfen · Terminal: strom update
  • Gilt seit: App 3.9.0 (Forschung 1.12.0); schreibgeschützter Stammbaum seit App 3.19.0
  • Ab App 3.22.0: Linien aus der App und das Panel ohne Verbindung schalten sich nur mit der Forschung 1.26.0 ein (S4).

S1.7 Mehrere Forschungen auf einem Computer

Jeder Stammbaum aus einer Forschung hat eine eigene Brücke. Die App fragt auch die Brücken von Stammbäumen, die gerade nicht geöffnet sind, und zeigt ihren Status im Stammbaum-Umschalter.

  • Grenzen:
    • Marken am Stammbaum im Umschalter: live (wird verfolgt), läuft oder N Richtungen (ein Agent arbeitet), N offen (Dinge zu erledigen), läuft nicht.
    • Gefragt wird immer nur eine Brücke auf einmal und nur, wenn die Seite sichtbar ist: zuerst nach 3 Sekunden, dann jede Minute. Auf eine Antwort wartet die App höchstens 1,5 Sekunden.
    • Eine nicht laufende Forschung verbindet sich wieder, wenn der Stammbaum aus der Forschung geöffnet wird (strom app).
  • Bedienung: App: Stammbaum-Umschalter; Panel der Forschung, Zeile Anderswo
  • Gilt seit: App 3.13.1

S1.8 Die Daten bleiben auf dem Computer

Die App hält Stammbäume im Speicher des Browsers auf diesem Gerät. Die Forschung hält ihren Stammbaum in ihrem Ordner auf dem Datenträger. Zwischen beiden geht der Stammbaum nur über die Brücke auf diesem Computer (S1.1).

  • Grenzen:
    • Jeder Browser hat einen eigenen Speicher. Ein in Chrome geöffneter Stammbaum ist nicht in Edge.
    • Der Stammbaum in der App und der Stammbaum in der Forschung sind zwei Kopien. Maßgeblich ist der Stammbaum in der App, die Forschung hat eine eigene Kopie, und was die Forschung nicht schreibt, ist in der App immer zu sehen (S2).
  • Gilt seit: App 3.0.0

S1.9 Forschung an: der Schalter der Brücke am Stammbaum

Jeder Stammbaum aus einer Forschung auf diesem Computer hat in der App den Schalter Forschung an. Er zeigt den wirklichen Zustand der Brücke: an, wenn die Brücke antwortet, sonst aus. Eine eingeschaltete Brücke läuft, bis sie mit dem Schalter oder strom live stop ausgeschaltet wird, bis der Computer heruntergefahren wird, oder wie es die Einstellung Forschung bei Untätigkeit ausschalten sagt.

  • Grenzen:
    • Das Ausschalten beendet die Brücke wie strom live stop, nur behält die Brücke ihre Adresse (Port und Schlüssel). Eine ausgeschaltete Brücke bleibt aus: neue Arbeit im Stammbaum bringt sie nicht zurück. Der Stammbaum in der App bleibt und lässt sich weiter bearbeiten (S1.5). Unter dem Schalter steht „Ausgeschaltet. Bleibt aus, bis die Forschung wieder eingeschaltet wird.“
    • Eine wegen Untätigkeit ausgeschaltete Brücke kommt mit neuer Arbeit im Stammbaum von selbst zurück, an derselben Adresse. Unter dem Schalter steht „Nach einer Zeit ohne Arbeit ausgeschaltet. Neue Arbeit im Stammbaum schaltet sie wieder ein.“
    • Das Einschalten schickt der Forschung einen Link, der nur die Brücke an ihrer letzten Adresse startet, ohne Fenster. Wenn nichts passiert oder die Forschung sich aus der App nicht einschalten lässt, zeigt die App den Befehl strom live start (im Terminal im Ordner des Stammbaums auszuführen) mit der Schaltfläche Kopieren. Eine ältere Forschung, die sich aus der App nicht ausschalten lässt, zeigt ebenso den Befehl strom live stop.
    • Nach dem Herunterfahren oder Neustart des Computers läuft die Brücke nicht und startet nicht von selbst. Der Mensch schaltet sie ein: im Panel der Forschung Einschalten, oder strom live start.
    • Forschung bei Untätigkeit ausschalten hat zwei Wahlmöglichkeiten: Bis zum Herunterfahren des Computers (Standard) und Nach 2 Stunden ohne Arbeit. Sie gilt für alle Stammbäume auf diesem Computer, und die Forschung hält sie (live.idleMinutes 0 oder 120). Laufende Brücken übernehmen sie innerhalb einer Minute. Ein im Terminal gesetzter Wert erscheint als Eigener Wert (N Min.). Läuft keine Forschung, die die Wahl annimmt, zeigt die App statt der Wahlmöglichkeiten die Befehle für das Terminal.
    • Auf Telefon und Tablet gibt es keinen Schalter (die Forschung läuft auf einem Computer). Eine Kopie eines Stammbaums aus einer Forschung hat keinen Schalter.
  • Bedienung: App: der Schalter Forschung an im Panel der Forschung (ein Stammbaum, der nicht live verfolgt wird, und nach dem Ende des Verfolgens) und in Stammbäume verwalten in der Zeile des Stammbaums; im Panel der Forschung, wenn die Forschung nicht läuft: Einschalten; Einstellungen → Forschung auf diesem Computer → Forschung bei Untätigkeit ausschalten. Terminal: strom live start, strom live stop, strom config set live.idleMinutes 0 (bis zum Herunterfahren des Computers) oder 120 (nach 2 Stunden ohne Arbeit).
  • Gilt seit: App 3.25.0, Forschung 1.29.0