Jede Änderung einer Forschung schreibt strom als Operation in die Protokolle ihrer Geschichte (data/ops) und versiegelt sie mit dem Schlüssel dieses Computers, zusammen mit einem Commit in der Geschichte der Forschung (git). strom verify vergleicht jeden Eintrag und jeden Commit mit seinem Siegel und sagt, was außerhalb von strom geändert wurde. Das Kapitel beschreibt, welche Wege weiter strom anbietet, und ausführlich das Annehmen einer Forschung, wie sie ist (strom seal accept), eine Geschichte, die älter ist als die Forschung, und das Rückgängigmachen einer Reparatur (strom repair undo). Beschrieben wird die Forschung 1.30.1; Änderungen aus einer neueren Version tragen ihre Nummer.
R14.1 Was nicht zu seinem Siegel passt, und die Wege weiter
Was strom verify findet, bestimmt, welcher Weg weiterführt. Jeden startet ein Mensch in seinem eigenen Terminal.
| Was geschah | Weg | Was er tut |
|---|---|---|
| ein Eintrag außerhalb von strom geändert oder angelegt, die Geschichte (git) ist lesbar | strom repair | stellt den letzten versiegelten Stand her: geänderte Einträge werden wiederhergestellt, außerhalb von strom angelegte entfernt; Kopien alles Ersetzten bleiben in .strom/quarantine/; ab Forschung 1.31.0 fragt es den Menschen, bevor es mehr als 3 Einträge entfernt (R14.3), und strom repair undo legt die Kopien zurück (R14.3.1) |
| eine auf einem anderen Computer versiegelte Forschung | strom seal adopt | prüft die Kette der Operationen und den Hash jedes Eintrags und legt für die Forschung den Schlüssel dieses Computers an |
eine verlorene Geschichte: die ältesten Protokolle von data/ops fehlen und die Geschichte (git) ist nicht lesbar oder fehlt; die Einträge sind, wie strom sie schrieb | strom seal accept | stellt nichts her und übernimmt nichts: versiegelt die Forschung, wie sie jetzt ist, als neue Grundlage (R14.2) |
ab Forschung 1.31.0: die Geschichte (git) ist lesbar, aber älter als die Forschung; strom repair würde Arbeit entfernen | nie strom repair: zuerst eine Sicherung des ganzen Ordners, dann .git aus einer Sicherung oder aus Time Machine, oder strom seal accept | nichts wird entfernt (R14.1.1) |
- Prüft der Code:
- bei lesbarer Geschichte (git) verweist strom nicht auf
strom seal accept:strom repairholt die verlorenen Protokolle aus ihr zurück. Ab Forschung 1.31.0 eine Ausnahme: eine Geschichte, älter als die Forschung (R14.1.1); - bei beschädigter oder fehlender Geschichte melden
strom verifyundstrom checkden Befundgit-damaged(die Geschichte ist nicht lesbar, Objekte fehlen, oder die Forschung hat keine Geschichte) und raten bei jeder Datei, die nicht zu ihrem Siegel passt: „die Geschichte (git) ist beschädigt, strom repair stellt sie nicht wieder her – nach Durchsicht der Einträge in einem eigenen Terminal: strom seal accept“; - ein Schreiben in eine Forschung mit beschädigter Geschichte lehnt strom mit „die Geschichte (git) der Forschung ist beschädigt: nichts geschrieben“ (Code
tree.git-damaged) und demselben Rat ab, statt mit dem Fehler von git. Früher blieb daran jedes Schreiben undstrom checkstehen.
- bei lesbarer Geschichte (git) verweist strom nicht auf
- Bedienung: Terminal:
strom verify,strom check,strom repair,strom repair undo,strom seal adopt,strom seal accept. - Gilt seit: Forschung 1.30.1; 1.31.0: Geschichte älter als die Forschung, Frage von
strom repair,strom repair undo
R14.1.1 Eine Geschichte, älter als die Forschung: history-reverted
Ein Cloud-Laufwerk kann eine ältere Kopie der Geschichte (git) in eine Forschung zurücklegen, oft mit iCloud-Kopien in .git (etwa index 2, HEAD 2). Die Geschichte ist lesbar, aber die seit dieser Kopie geschriebenen Einträge fehlen in ihr. strom verify meldet sie dann als außerhalb von strom angelegt, und strom repair würde sie entfernen. Darum ermittelt strom zuerst, was strom repair tun würde, und wo es Arbeit entfernen würde, rät es zu dem Weg, der nichts verliert.
- Prüft der Code:
- die Geschichte gilt als älter als die Forschung, wenn
strom repairmindestens einen Eintrag entfernen würde, den eine unversehrte signierte Operation aus den Protokollen der Geschichte im Ordner geschrieben hat, auf den andere Einträge verweisen oder der eine niedrigere Nummer hat als der höchste Eintrag seiner Art im versiegelten Stand (die älteste Geschichte ging verloren); oder wenn in.gitiCloud-Kopien liegen und die Reparatur etwas entfernen würde; strom verifyundstrom checkmelden dann den Befundhistory-revertedmit der Anzahl: „die Geschichte (git) ist älter als die Forschung: strom repair würde N Einträge entfernen“. Dazu und bei jedem Befund, bei dem sie sonst zustrom repairraten würden, raten sie: „zuerst den ganzen Ordner der Forschung sichern; dann .git aus einer Sicherung oder aus Time Machine zurückholen – oder nach Durchsicht der Einträge in einem eigenen Terminal: strom seal accept (nie strom repair: es würde diese Arbeit entfernen)“;- ein Schreiben in eine solche Forschung lehnt strom mit „die Geschichte (git) ist älter als die Forschung – strom repair würde N Einträge entfernen: nichts geschrieben“ ab (Code
tree.history-reverted), mit demselben Rat und einem Verweis aufstrom verify; - bei beschädigter oder fehlender Geschichte (
git-damaged) gilt weiter der Weg aus R14.1:strom seal accept.
- die Geschichte gilt als älter als die Forschung, wenn
- Bedienung: Terminal:
strom verify,strom check; dann nach dem Rat: eine Sicherung des Ordners,.gitaus einer Sicherung oder aus Time Machine, oderstrom seal accept(R14.2). - Gilt seit: Forschung 1.31.0
- Warum: eine Forschung in iCloud Drive mit einer älteren Kopie von
.gitund ohne ihre ältesten Protokolle meldete Einträge als unversiegelt, undstrom repairhätte Einträge aus Jahren der Arbeit entfernt (Befund vom- 2026).
R14.2 Die Forschung annehmen, wie sie ist: strom seal accept
Ein Cloud-Laufwerk (etwa iCloud Drive) kann einer Forschung die ältesten Protokolle der Geschichte (data/ops) und Objekte ihrer Geschichte (git) nehmen. Die Einträge bleiben, wie strom sie schrieb, aber strom verify meldet sie als außerhalb von strom angelegt oder geändert, und strom repair hat nichts zurückzugeben oder gäbe einen älteren Stand zurück. strom seal accept nimmt die Forschung, wie sie jetzt ist, als neue versiegelte Grundlage. Darüber entscheidet ein Mensch, der die Einträge vorher durchgesehen hat.
- Zuerst die Zahlen: ohne Bestätigung ändert der Befehl nichts. Er listet auf, was das Annehmen täte:
- Einträge ohne Geschichte;
- Einträge neuer als der Rest ihrer Geschichte;
- weitere Dateien der Forschung (Geschichte, Qualität,
strom.json), die nicht zu ihrem Siegel passen; - wie viele Protokolle der Geschichte im Ordner sind;
- den Zustand der Geschichte (git): lesbar (die Änderung kommt hinzu), ihre letzte Änderung nicht von strom (neu versiegelt), beschädigt (ganz beiseitegelegt, nichts gelöscht, eine neue begonnen), keine (eine neue begonnen);
- die iCloud-Kopien von Dateien, die beiseitegelegt werden, und die, die an ihrem Ort bleiben (R14.2.1).
- Bestätigung: ein Mensch beantwortet im eigenen Terminal Die Forschung so annehmen, wie sie jetzt ist?. Die vorgegebene Antwort ist Nein.
- Der Unterschied:
strom repairstellt den letzten versiegelten Stand her,strom seal adoptübernimmt eine auf einem anderen Computer versiegelte Forschung;strom seal acceptstellt nichts her und übernimmt nichts (R14.1). - Bedienung: Terminal:
strom seal accept --preview(nur die Zahlen, darf auch ein Agent),strom seal accept. Geht auch im Strom-Archiv. - Gilt seit: Forschung 1.30.1
R14.2.1 Was das Annehmen tut
Nach der Bestätigung nennt eine versiegelte Änderung jede Datei, die nicht zu ihrem Siegel passt, wie sie jetzt ist: kein Eintrag geändert, nichts gelöscht.
- Prüft der Code:
- eine signierte Operation (
seal.accept) trägt den Hash jeder solchen Datei, und strom hält sie in einem versiegelten Commit fest; - eine beschädigte Geschichte (git) wird ganz in den Ordner
.git-damaged-<wann>neben der Forschung beiseitegelegt und eine neue begonnen; der Ordner mit der alten Geschichte gehört nicht zur neuen. Ohne Geschichte wird eine neue begonnen, eine lesbare Geschichte bekommt nur die Änderung hinzu; - iCloud-Kopien von Dateien (etwa „P0001 2.json“) in den Ordnern
data/,history/undquality/sowie Kopien von Sperren in.strom/kommen nach.strom/accepted-<wann>/; als Einträge werden sie nie versiegelt. Kopien an anderer Stelle der Forschung (nebenstrom.json, in.strom/, inoutput/) werden nur aufgelistet und bleiben, wo sie sind; - am Ende läuft die volle Prüfung erneut: „strom verify: in Ordnung – jeder Eintrag passt zu seinem Siegel“, oder wie viele Probleme bleiben („strom verify findet noch Probleme: N“);
- ein zweiter Lauf tut nichts: „nichts anzunehmen – jeder Eintrag passt zu seinem Siegel“.
- eine signierte Operation (
- Gilt seit: Forschung 1.30.1
R14.2.2 Was das Annehmen hütet und nie regelt
- Prüft der Code:
- eine Forschung nimmt nur ein Mensch im eigenen interaktiven Terminal an, über dasselbe Tor wie
strom seal adopt;--yesnimmt sie nie an („--yes nimmt die Forschung nie an: ein Mensch entscheidet im eigenen Terminal“). Außerhalb eines interaktiven Terminals listet der Befehl nur die Zahlen und den Satz „Über das Annehmen der Forschung entscheidet nur ein Mensch im eigenen Terminal – strom seal accept“; - ein Agent darf nur
--preview; das Annehmen selbst lehnt strom einem Agenten ab, und der Agent nennt dem Menschen den Befehl; - nichts wird angenommen, solange die Brücke zur Strom-App auf der Forschung läuft (
strom live stop, dann erneut) oder an ihr gearbeitet wird (strom session finish, dann erneut); - nach der Bestätigung macht strom den Plan unter der Sperre der Forschung neu; hat sich die Forschung seit der Durchsicht geändert, wird nichts angenommen („die Forschung hat sich seit der Durchsicht geändert: nichts angenommen“);
- eine auf einem anderen Computer versiegelte Forschung wird zuerst übernommen (
strom seal adopt); - andere Befunde der Prüfung regelt das Annehmen nie: ein umgeschriebenes Protokoll, eine gefälschte Operation, einen anderen Schlüssel, Dateien nur in der Cloud, einen gelöschten Eintrag oder eine Datei in
data/, die kein für strom lesbarer Eintrag ist. Mit einem solchen Befund wird nichts angenommen („Nicht angenommen: die Prüfung findet, was das Annehmen nie regelt“), und den Weg sagtstrom verify.
- eine Forschung nimmt nur ein Mensch im eigenen interaktiven Terminal an, über dasselbe Tor wie
- Gilt seit: Forschung 1.30.1
R14.3 strom repair fragt den Menschen
strom repair bringt die Forschung in ihren letzten versiegelten Stand zurück (R14.1). Zuerst ermittelt es, was es tun würde. Würde es mehr Einträge oder Arbeit entfernen, entscheidet der Mensch in seinem eigenen Terminal.
- Grenzen:
- es fragt, wenn es mehr als 3 Einträge entfernen würde oder irgendeinen Eintrag mit einem Zeichen einer Geschichte, die älter ist als die Forschung (R14.1.1); sonst repariert es ohne Frage;
- vor der Frage sagt es, wie viele Einträge (und Dateien) es entfernen und wie viele Dateien es nach dem versiegelten Stand (einem Commit) zurückschreiben würde, und davon wie viele Einträge Operationen geschrieben haben, die in ihren eigenen Protokollen versiegelt sind, auf wie viele andere Einträge verweisen, wie viele älter sind als der versiegelte Stand und welche iCloud-Kopien in
.gitliegen; - dann: „Zuerst den ganzen Ordner der Forschung sichern. Eine Kopie alles Entfernten bleibt in .strom/quarantine/, strom repair undo legt sie zurück.“ Mit einem Zeichen einer älteren Geschichte rät es statt der Reparatur zu
.gitaus einer Sicherung oder aus Time Machine, oder zustrom seal accept; - die Frage N Einträge entfernen? hat als Vorgabe nein (Enter).
- Prüft der Code:
- ein Agent,
--yesund ein Lauf ohne Terminal bekommen die Frage nie: nur die Zahlen und „Über das Entfernen von Einträgen entscheidet nur ein Mensch im eigenen Terminal – strom repair“ (needs-consent, Exit 4); der Agent sagt es dem Menschen; - nach dem Ja macht strom den Plan unter der Sperre der Forschung erneut; hat sich die Forschung seit der Durchsicht geändert, wird nichts repariert („die Forschung hat sich seit der Durchsicht geändert: nichts repariert“);
- neben den Kopien in
.strom/quarantine/<stamp>/bewahrt es eine Liste dessen auf, was es entfernt und was es überschrieben hat, und sagt nach der Reparatur „rückgängig: strom repair undo <stamp>“ (R14.3.1).
- ein Agent,
- Bedienung: Terminal:
strom repair. - Gilt seit: Forschung 1.31.0
R14.3.1 Eine Reparatur rückgängig machen: strom repair undo
Was strom repair entfernt oder überschrieben hat, legt strom repair undo aus seinen Kopien in .strom/quarantine/ zurück.
- Grenzen:
- ohne Stempel listet es die Kopien auf, die
strom repairaufbewahrt hat, die neueste zuerst, jede mit der Zahl ihrer Dateien und Einträge; ohne Kopien: „keine Kopien von strom repair in .strom/quarantine/“. Die Liste darf jeder starten, auch ein Agent; - mit Stempel sagt es zuerst, was das Zurücklegen tun würde: die zurückgelegten Dateien (und die Einträge darunter), seit der Reparatur geänderte Dateien, die bleiben, wie sie jetzt sind, und Dateien, die strom nicht versiegelt (iCloud-Kopien, unbekannte Dateien) und die in der Quarantäne bleiben. Die Frage Zurücklegen? hat als Vorgabe nein;
- es legt eine Datei zurück, die die Reparatur entfernt hat und die seitdem nicht im Ordner ist, und eine Datei, die die Reparatur überschrieben hat und die sich seitdem nicht geändert hat. Bei Kopien aus
strom repairder Forschung 1.30 (ohne Liste dessen, was die Reparatur überschrieben hat) legt es nur Dateien zurück, die im Ordner fehlen; - nichts zurückzulegen: „nichts zurückzulegen – jede Datei ist wie ihre Kopie oder wurde seitdem geändert“.
- ohne Stempel listet es die Kopien auf, die
- Prüft der Code:
- das Zurücklegen mit Stempel ist nur für einen Menschen im eigenen Terminal; anderswo gibt strom nur die Zahlen und „Über das Zurücklegen dessen, was strom repair entfernt hat, entscheidet nur ein Mensch im eigenen Terminal – strom repair undo <stamp>“ (Exit 4);
- es legt nur in eine Forschung zurück, wie strom sie versiegelt hat: mit Änderungen außerhalb von strom wird nichts zurückgelegt („die Forschung hat Änderungen, die strom nicht versiegelt hat: nichts zurückgelegt“, Einzelheiten sagt
strom verify); - nichts wird zurückgelegt, solange über der Forschung die Brücke zur Strom-App läuft (
strom live stop, dann erneut) oder jemand an ihr arbeitet (strom session finish, dann erneut); - nach dem Ja macht es den Plan unter der Sperre der Forschung erneut; hat sich die Forschung seit der Durchsicht geändert, wird nichts zurückgelegt („die Forschung hat sich seit der Durchsicht geändert: nichts zurückgelegt“);
- eine signierte Operation (
repair.undo) nennt jeden zurückgelegten Eintrag, wie er ist, und strom speichert sie mit einem versiegelten Commit; im Ordner wird nichts gelöscht. Am Ende startet es die vollständige Prüfung erneut, wiestrom verify.
- Bedienung: Terminal:
strom repair undo(die Liste),strom repair undo <stamp>. - Gilt seit: Forschung 1.31.0; legt auch Kopien aus
strom repairder Forschung 1.30 zurück