strom-research 1.19.0-beta.6 → 1.19.0-beta.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.cs.md +26 -6
- package/CHANGELOG.de.md +33 -7
- package/CHANGELOG.md +28 -8
- package/README.md +4 -1
- package/assets/lang/cs.json +43 -10
- package/assets/lang/de.json +43 -10
- package/assets/phone/phone.css +1 -1
- package/assets/phone/phone.js +30 -7
- package/dist/agents/files.js +42 -7
- package/dist/agents/global.js +3 -1
- package/dist/agents/launch.js +3 -1
- package/dist/cli/backups.js +21 -2
- package/dist/cli/main.js +48 -15
- package/dist/cli/menu.js +2 -2
- package/dist/cli/registry.js +3 -0
- package/dist/cli/ui.js +43 -10
- package/dist/commands/checks.js +31 -4
- package/dist/commands/connectors.js +3 -0
- package/dist/commands/fixchecks.js +47 -18
- package/dist/commands/fixes.js +7 -6
- package/dist/commands/pack.js +3 -3
- package/dist/commands/session.js +2 -0
- package/dist/commands/setup.js +20 -1
- package/dist/commands/start.js +1 -1
- package/dist/commands/trees.js +63 -15
- package/dist/core/backup.js +6 -2
- package/dist/core/git.js +16 -2
- package/dist/core/live-read.js +6 -2
- package/dist/core/lock.js +177 -9
- package/dist/core/phone.js +37 -12
- package/dist/core/shortcut.js +1 -1
- package/dist/core/tree.js +1 -1
- package/dist/core/trust.js +19 -5
- package/dist/core/which.js +5 -1
- package/dist/core/writable.js +153 -0
- package/package.json +1 -1
package/CHANGELOG.cs.md
CHANGED
|
@@ -7,7 +7,7 @@ Změny každé verze ve zkratce. Úplné poznámky a instalační řádky jsou n
|
|
|
7
7
|
|
|
8
8
|
## 1.19.0
|
|
9
9
|
|
|
10
|
-
*Připravuje se: bety do 1.19.0-beta.
|
|
10
|
+
*Připravuje se: bety do 1.19.0-beta.8. Oddíl bude úplný s vydáním.*
|
|
11
11
|
|
|
12
12
|
- **Na archiv, který zmlkl, se čeká, místo opakovaných dotazů.** Když archiv přestane odpovídat, strom ho nechá na
|
|
13
13
|
pokoji hodinu — a když týž den mlčí dál, dvě a pak čtyři hodiny — a agent se dozví, do kdy: mezitím dělá
|
|
@@ -16,7 +16,8 @@ Změny každé verze ve zkratce. Úplné poznámky a instalační řádky jsou n
|
|
|
16
16
|
- **První úklid staršího výzkumu se jednou nabídne.** Výzkum, u kterého se nastřádalo hodně dat dřív, než si v tom
|
|
17
17
|
strom začal sám dělat pořádek (záznamy práce, náhledy snímků a podobně), dostane v menu jednu nabídku: co by se
|
|
18
18
|
smazalo, kolik a proč — bez souhlasu nic. Po souhlasu se v tom pak udržuje pořádek samo; po odmítnutí menu a
|
|
19
|
-
nastavení dál říkají, co jde uvolnit.
|
|
19
|
+
nastavení dál říkají, co jde uvolnit. `strom pack`, odebrání rodokmenu i menu uvádějí velikost balíku, zálohy nebo
|
|
20
|
+
snímků jako všude jinde (1,5 MB, u malých 24 kB), nikdy „0.0 MB“.
|
|
20
21
|
- **Digitální knihovny napoprvé správně.** U Krameria Národní knihovny ČR a Moravské zemské knihovny a u ANNO
|
|
21
22
|
Rakouské národní knihovny dostane agent jejich vlastní vyhledávací adresy — méně neúspěšných dotazů a hádání.
|
|
22
23
|
- **Ostřejší část snímku se opravdu čte.** Když z archivu přišla část snímku v lepším rozlišení, agent i jeho čtenáři
|
|
@@ -25,13 +26,16 @@ Změny každé verze ve zkratce. Úplné poznámky a instalační řádky jsou n
|
|
|
25
26
|
- **Dokument se přečte spolehlivěji.** Čtenář zapisuje čtení do své zprávy průběžně, a čtení dvou čtenářů, kde četl
|
|
26
27
|
jen jeden, to tak řekne — nikdy, že se shodují.
|
|
27
28
|
- **Propojení s telefonem čeká na výzkum, neříká se jako chyba.** Než se po spuštění počítače spustí výzkum, `strom
|
|
28
|
-
phone` i nastavení řeknou, že propojení je zapnuté a jeho server se znovu spustí se spuštěním výzkumu.
|
|
29
|
+
phone` i nastavení řeknou, že propojení je zapnuté a jeho server se znovu spustí se spuštěním výzkumu. Na iPhonu
|
|
30
|
+
zůstane list fotek při psaní osoby nebo poznámky nad klávesnicí a nabízené osoby na očích; server telefonu se spustí
|
|
31
|
+
jednou, i když ho spouští několik naráz.
|
|
29
32
|
- **Opravy vlastních chyb stromu k rozhodnutí.** Když strom zjistí, že některá jeho dřívější verze ve výzkumu něco
|
|
30
33
|
udělala špatně, `strom fixes` a Nastavení → Údržba → Opravy řeknou, o co jde, co se našlo a co by napravení udělalo,
|
|
31
34
|
i jak je náročné; bez souhlasu se nestane nic a odmítnutí platí. První: slepá čtení ze zmenšeného snímku tam, kde
|
|
32
35
|
byla ostřejší část — přečtou se znovu vedle starých, nejdřív na několika, nic se nepřepíše, rozdíl se stane úkolem.
|
|
33
|
-
Čtení se porovnají podle přečteného — jmen, dat a čísel přepisu, ne slov komentáře čtenáře
|
|
34
|
-
|
|
36
|
+
Čtení se porovnají podle přečteného — jmen, dat a čísel přepisu, ne slov komentáře čtenáře (i v němčině, kde má
|
|
37
|
+
velké písmeno každé podstatné jméno) — a úkol jednou větou řekne, který údaj se liší; kde jméno může jen začínat
|
|
38
|
+
větu, čtení se za shodná nevydávají. Když není co číst znovu, `strom fixes run` to řekne. Druhá: po změně modelu nebo agenta pro čtení dřívější čtení, která stojí za nové přečtení
|
|
35
39
|
— s otevřenými místy, s neshodou čtenářů, s otevřeným rozporem, nepotvrzená u pramene; řečeno jako „četl model X,
|
|
36
40
|
teď se čte modelem Y“, nabídnuto jednou na agenta a model, každé se přečte znovu tak, jak se četlo (snímky jednoho
|
|
37
41
|
čtení spolu, zkouška i část vždy z celých čtení). Počítá se v čteních s jejich místy a náročnost ve voláních
|
|
@@ -40,6 +44,21 @@ Změny každé verze ve zkratce. Úplné poznámky a instalační řádky jsou n
|
|
|
40
44
|
agent nebo model (`strom fixes run <id> --agent <a> --model <m>`), s tím, kdo četl dřív; ten, kdo tu číst nemůže, se
|
|
41
45
|
odmítne hned i s těmi, kdo mohou. Čas napravení se zaokrouhluje nahoru a po zkoušce se přepočítá podle čtení, jak
|
|
42
46
|
běžela souběžně.
|
|
47
|
+
- **Rodokmen, do kterého strom nesmí zapisovat, řekne proč.** strom zapíše do složky výzkumu pravidla pro Codex:
|
|
48
|
+
příkaz strom spuštěný samotný jde mimo sandbox Codexu — i na Windows, kde sandbox držel historii výzkumu zavřenou
|
|
49
|
+
a nic jiného nepustil — a co rozhoduje člověk a samotný git zůstává zakázané. Když zápisu do složky rodokmenu
|
|
50
|
+
sandbox agenta přesto brání, strom to řekne a agentovi poradí, co dělat podle toho, jak běží — spouštět strom
|
|
51
|
+
samotný, spustit Codex ve složce výzkumu, které důvěřuje, nebo nechat příkaz schválit mimo sandbox — místo holého
|
|
52
|
+
„chybí oprávnění“, které agent převyprávěl jako „nemám přístup k rodokmenu“. Kde agent nenechá žádnou svou značku,
|
|
53
|
+
pozná ho strom podle vlastní značky u agentů, které spouští, nebo podle programů, které ho spustily, a jako
|
|
54
|
+
pravděpodobnou příčinu jmenuje jeho sandbox, potom OneDrive nebo řízený přístup ke složkám ve Windows. Odmítnutý
|
|
55
|
+
zápis do historie se už nehlásí jako chybějící oprávnění k samotnému gitu a záloha nebo aktualizace, kterou nešlo
|
|
56
|
+
zapsat, žádá složku, do které lze zapisovat, a už neradí uvolnit místo na disku. `strom doctor` a `strom check`
|
|
57
|
+
zápis do výzkumu zkusí a řeknou, když nejde, i tam, kde složku nejde ani vypsat. Na disku bez pevných odkazů
|
|
58
|
+
(síťové úložiště, disk přesměrovaný přes Vzdálenou plochu) strom zase zapisuje, zámek jde jinou cestou, a zámek,
|
|
59
|
+
který pomalý disk ještě neukáže, už se po chvilce nepřebírá; rodokmen, který tam nejde založit, po sobě nic nenechá
|
|
60
|
+
a řekne to v jazyce výzkumu. Po instalaci přes npm na Windows spustí strom příkaz `strom.cmd` i tam, kde PowerShell
|
|
61
|
+
skripty odmítá.
|
|
43
62
|
|
|
44
63
|
## 1.18.0
|
|
45
64
|
|
|
@@ -99,7 +118,8 @@ Změny každé verze ve zkratce. Úplné poznámky a instalační řádky jsou n
|
|
|
99
118
|
poznámky: výzkum si nechá svůj text. Místo nebo jiný údaj delší než řádek souboru GEDCOM (255 bajtů) už nezastaví
|
|
100
119
|
jeho zápis a žádné emoji se nerozdělí tam, kde dlouhý řádek pokračuje. S `excerpts.for all` dostane v aplikaci Strom
|
|
101
120
|
výřez i pramen, který zatím nikdo necituje, pokud se vedle citovaných vejde do limitu – citované se kvůli němu
|
|
102
|
-
nezmenší; co se nevešlo, se řekne.
|
|
121
|
+
nezmenší; co se nevešlo, se řekne. Aplikace Strom se dozví, které obrazy pramene výzkum má, ale soubor je vynechal,
|
|
122
|
+
a na vyžádání si je z výzkumu načte — pramen po prameni, nebo všechny najednou i s tím, kolik jich je a jak asi velké.
|
|
103
123
|
|
|
104
124
|
## 1.17.0
|
|
105
125
|
|
package/CHANGELOG.de.md
CHANGED
|
@@ -7,7 +7,7 @@ Die Änderungen jeder Version in Kürze. Die vollständigen Hinweise und die Ins
|
|
|
7
7
|
|
|
8
8
|
## 1.19.0
|
|
9
9
|
|
|
10
|
-
*In Vorbereitung: die Betas bis 1.19.0-beta.
|
|
10
|
+
*In Vorbereitung: die Betas bis 1.19.0-beta.8. Der Abschnitt ist mit dem Release vollständig.*
|
|
11
11
|
|
|
12
12
|
- **Auf ein verstummtes Archiv wird gewartet, statt es immer wieder zu fragen.** Antwortet ein Archiv nicht mehr,
|
|
13
13
|
lässt strom es eine Stunde in Ruhe — zwei, dann vier, wenn es am selben Tag still bleibt — und der Agent erfährt, bis
|
|
@@ -16,8 +16,10 @@ Die Änderungen jeder Version in Kürze. Die vollständigen Hinweise und die Ins
|
|
|
16
16
|
immer wieder angefragt.
|
|
17
17
|
- **Das erste Aufräumen einer älteren Forschung wird einmal angeboten.** Eine Forschung, neben der sich viel
|
|
18
18
|
angesammelt hat, bevor strom dort selbst Ordnung hielt (Protokolle der Arbeitssitzungen, Ansichten von Scans und
|
|
19
|
-
Ähnliches), bekommt im Menü ein Angebot: was ginge, wie viel und warum — ohne Ja geht nichts. Nach einem Ja wird
|
|
20
|
-
von selbst Ordnung gehalten; nach einem Nein sagen Menü und Einstellungen weiter, was sich freigeben lässt.
|
|
19
|
+
Ähnliches), bekommt im Menü ein Angebot: was ginge, wie viel und warum — ohne Ja geht nichts. Nach einem Ja wird
|
|
20
|
+
dort von selbst Ordnung gehalten; nach einem Nein sagen Menü und Einstellungen weiter, was sich freigeben lässt.
|
|
21
|
+
`strom pack`, das Entfernen eines Stammbaums und das Menü nennen die Größe eines Pakets, einer Sicherung oder der
|
|
22
|
+
Bilder wie überall sonst (1,5 MB, bei kleinen 24 kB), nie „0.0 MB“.
|
|
21
23
|
- **Digitale Bibliotheken beim ersten Versuch richtig durchsucht.** Für Kramerius der Tschechischen
|
|
22
24
|
Nationalbibliothek und der Mährischen Landesbibliothek und für ANNO der Österreichischen Nationalbibliothek bekommt
|
|
23
25
|
der Agent die eigenen Suchadressen der Bibliotheken — weniger fehlgeschlagene Anfragen und weniger Raten.
|
|
@@ -29,14 +31,18 @@ Die Änderungen jeder Version in Kürze. Die vollständigen Hinweise und die Ins
|
|
|
29
31
|
Lesung zweier Leser, bei der nur einer las, sagt das so — nie, dass sie übereinstimmen.
|
|
30
32
|
- **Die Verbindung mit dem Telefon wartet auf die Forschung, nicht als Fehler genannt.** Bevor die Forschung nach dem
|
|
31
33
|
Neustart des Computers startet, sagen `strom phone` und die Einstellungen, dass die Verbindung an ist und ihr Server
|
|
32
|
-
mit der Forschung wieder startet.
|
|
34
|
+
mit der Forschung wieder startet. Auf einem iPhone bleibt das Blatt der Fotos beim Tippen einer Person oder Notiz über
|
|
35
|
+
der Tastatur, die angebotenen Personen im Blick; der Server des Telefons startet einmal, auch wenn ihn mehrere
|
|
36
|
+
zugleich starten.
|
|
33
37
|
- **Korrekturen eigener Fehler von strom zur Entscheidung.** Findet strom, dass eine frühere Version von ihm in einer
|
|
34
38
|
Forschung etwas falsch gemacht hat, sagen `strom fixes` und Einstellungen → Wartung → Korrekturen, worum es geht,
|
|
35
39
|
was gefunden wurde und was eine Behebung täte, auch wie aufwendig sie ist; ohne Ja geschieht nichts, ein Nein
|
|
36
40
|
bleibt. Die erste: blinde Lesungen aus dem verkleinerten Scan, wo es einen schärferen Teil gab — neben den alten
|
|
37
41
|
noch einmal gelesen, zuerst an einigen, nichts überschrieben, ein Unterschied wird zur Aufgabe. Verglichen wird, was
|
|
38
|
-
gelesen wurde — die Namen, Daten und Zahlen der Abschrift, nicht die Worte des Kommentars
|
|
39
|
-
|
|
42
|
+
gelesen wurde — die Namen, Daten und Zahlen der Abschrift, nicht die Worte des Kommentars (auch auf Deutsch, wo
|
|
43
|
+
jedes Substantiv groß geschrieben wird) —, und die Aufgabe sagt in einem Satz, welche Angabe abweicht; wo ein Name
|
|
44
|
+
nur einen Satz beginnen kann, gelten die Lesungen nicht als gleich. Gibt es nichts neu zu lesen, sagt `strom fixes
|
|
45
|
+
run` das. Die zweite: nach einem Wechsel des Lesemodells oder Agenten die früheren
|
|
40
46
|
Lesungen, die ein neues Lesen lohnen — mit offenen Stellen, uneinigen Lesern, einem offenen Widerspruch, an der
|
|
41
47
|
Quelle nicht bestätigt; gesagt als „gelesen von Modell X, jetzt liest Modell Y“, einmal je Agent und Modell gefragt,
|
|
42
48
|
jede so neu gelesen, wie sie gelesen wurde (die Bilder einer Lesung zusammen, ein Versuch oder ein Teil immer aus
|
|
@@ -46,6 +52,24 @@ Die Änderungen jeder Version in Kürze. Die vollständigen Hinweise und die Ins
|
|
|
46
52
|
bereiter Agent oder ein anderes Modell (`strom fixes run <id> --agent <a> --model <m>`), mit dem, der vorher las;
|
|
47
53
|
einer, der hier nicht lesen kann, wird sofort abgelehnt, mit denen, die es können. Die Zeit einer Behebung wird
|
|
48
54
|
aufgerundet und nach dem Versuch nach den nebeneinander gelaufenen Lesungen neu gemessen.
|
|
55
|
+
- **Ein Stammbaum, in den strom nicht schreiben darf, sagt warum.** strom schreibt Regeln für Codex in den Ordner der
|
|
56
|
+
Forschung: ein allein ausgeführter strom-Befehl läuft außerhalb der Sandbox von Codex — auch unter Windows, wo die
|
|
57
|
+
Sandbox den Verlauf der Forschung verschlossen hielt und nichts anderes zuließ —, während das, was der Mensch
|
|
58
|
+
entscheidet, und git selbst verboten bleiben. Hindert die Sandbox eines Agenten strom trotzdem am Schreiben in den
|
|
59
|
+
Ordner des Stammbaums, sagt strom das und sagt dem Agenten, was zu tun ist, je nachdem, wie er läuft — strom allein
|
|
60
|
+
ausführen, Codex im Ordner der Forschung starten, dem er vertraut, oder den Befehl außerhalb der Sandbox genehmigen
|
|
61
|
+
lassen — statt eines bloßen „keine Berechtigung“, das der Agent als fehlenden Zugriff auf den Stammbaum wiedergab.
|
|
62
|
+
Wo ein Agent kein eigenes Merkmal hinterlässt, erkennt strom ihn an seinem eigenen Merkmal bei den Agenten, die es
|
|
63
|
+
startet, oder an den Programmen, die es gestartet haben, und nennt seine Sandbox als wahrscheinliche Ursache, danach
|
|
64
|
+
OneDrive oder den überwachten Ordnerzugriff von Windows. Ein vom Verlauf verweigertes Schreiben gilt nicht mehr als
|
|
65
|
+
fehlende Berechtigung für git selbst, und eine Sicherung oder ein Update, die nicht geschrieben werden konnten,
|
|
66
|
+
verlangen einen Ordner, in den geschrieben werden darf, statt Platz auf dem Datenträger freizumachen. `strom doctor`
|
|
67
|
+
und `strom check` versuchen, in die Forschung zu schreiben, und sagen, wenn es nicht geht, auch dort, wo sich der
|
|
68
|
+
Ordner nicht einmal auflisten lässt. Auf einem Laufwerk ohne feste Verknüpfungen (eine Netzwerkfreigabe, ein über
|
|
69
|
+
Remotedesktop umgeleitetes Laufwerk) schreibt strom wieder, seine Sperre geht einen anderen Weg, und eine Sperre, die
|
|
70
|
+
ein langsames Laufwerk noch nicht zeigt, wird nicht mehr nach einem Augenblick übernommen; ein Stammbaum, der sich
|
|
71
|
+
dort nicht anlegen lässt, hinterlässt nichts und sagt es in der Sprache der Forschung. Mit npm unter Windows
|
|
72
|
+
installiert, startet `strom.cmd` strom auch dort, wo PowerShell Skripte verweigert.
|
|
49
73
|
|
|
50
74
|
## 1.18.0
|
|
51
75
|
|
|
@@ -117,7 +141,9 @@ Die Änderungen jeder Version in Kürze. Die vollständigen Hinweise und die Ins
|
|
|
117
141
|
GEDCOM-Datei (255 Bytes), hält das Schreiben der Datei nicht mehr auf, und kein Emoji wird dort geteilt, wo eine
|
|
118
142
|
lange Zeile weitergeht. Mit `excerpts.for all` bekommt auch eine Quelle, die noch niemand zitiert, in der Strom-App
|
|
119
143
|
ihren Ausschnitt, soweit er neben den zitierten unter die Grenze passt – die zitierten werden dafür nie kleiner; was
|
|
120
|
-
nicht passte, wird gesagt.
|
|
144
|
+
nicht passte, wird gesagt. Die Strom-App erfährt, welche Bilder einer Quelle die Forschung hat, ihre Datei aber
|
|
145
|
+
wegließ, und lädt sie bei Bedarf aus der Forschung — Quelle für Quelle oder alle auf einmal, mit Anzahl und etwa
|
|
146
|
+
ihrer Größe.
|
|
121
147
|
|
|
122
148
|
## 1.17.0
|
|
123
149
|
|
package/CHANGELOG.md
CHANGED
|
@@ -7,16 +7,17 @@ The changes of each version in short. The full notes and the install lines are o
|
|
|
7
7
|
|
|
8
8
|
## 1.19.0
|
|
9
9
|
|
|
10
|
-
*In preparation: the betas up to 1.19.0-beta.
|
|
10
|
+
*In preparation: the betas up to 1.19.0-beta.8. The section is complete with the release.*
|
|
11
11
|
|
|
12
12
|
- **An archive that went silent is waited for, not asked again and again.** When an archive stops answering, strom
|
|
13
13
|
leaves it alone for an hour — two, then four when it stays silent the same day — and the agent hears until when:
|
|
14
14
|
it goes on with other work, lets a download in the background wait for the archive (up to 30 minutes) and go on by
|
|
15
15
|
itself, or closes the session to go on later. No more asking the archive over and over meanwhile.
|
|
16
|
-
- **The first tidy of an older research is offered once.** A research that gathered much beside it before strom
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
16
|
+
- **The first tidy of an older research is offered once.** A research that gathered much beside it before strom kept
|
|
17
|
+
order there by itself (logs of work sessions, views of scans and the like) gets one offer in the menu: what would
|
|
18
|
+
go, how much and why, and nothing goes without a yes. After a yes it is kept in order by itself; after a no, the
|
|
19
|
+
menu and the settings keep saying what can be freed. `strom pack`, removing a family tree and the menu say how big a
|
|
20
|
+
package, a backup or the images are as everywhere else (1,5 MB in Czech, 24 kB for a small one), never "0.0 MB".
|
|
20
21
|
- **Digital libraries searched right at the first try.** For Kramerius of the Czech National Library and of the
|
|
21
22
|
Moravian Library and for ANNO of the Austrian National Library, the agent gets the libraries' own search
|
|
22
23
|
addresses — fewer failed requests and less guessing.
|
|
@@ -28,13 +29,16 @@ The changes of each version in short. The full notes and the install lines are o
|
|
|
28
29
|
only one read says so, never that they agree.
|
|
29
30
|
- **The phone connection waits for the research, not said as an error.** Before the research starts after the computer
|
|
30
31
|
started again, `strom phone` and the settings say the connection is on and its server starts again with the research.
|
|
32
|
+
On an iPhone the sheet of photos stays above the keyboard while a person or a note is typed, the persons offered in
|
|
33
|
+
sight; the phone's server starts once, also when several start it at the same moment.
|
|
31
34
|
- **Fixes of strom's own mistakes, offered to decide.** When strom finds that an earlier version of its own did
|
|
32
35
|
something wrong in a research, `strom fixes` and Settings → Maintenance → Fixes say what it is about, what was found
|
|
33
36
|
and what a remedy would do, with how demanding it is; nothing happens without a yes, and a no is kept. The first:
|
|
34
37
|
blind readings made from the reduced scan where a sharper part existed — read again beside the old ones, first on a
|
|
35
38
|
few, nothing overwritten, a difference becomes a task. Held against each other by what was read — the names, dates
|
|
36
|
-
and numbers of the transcript, not the words of the reader's comment
|
|
37
|
-
|
|
39
|
+
and numbers of the transcript, not the words of the reader's comment (in German too, where every noun has a
|
|
40
|
+
capital) — the task says in one sentence which of them differs; where a name may only begin a sentence, the readings
|
|
41
|
+
are not said to agree. With nothing to read again, `strom fixes run` says so. The second: after the reading model or agent changed, the earlier readings worth reading again — with open
|
|
38
42
|
places, readers who disagreed, an open conflict, a reading not confirmed at the source; said as "read by model X,
|
|
39
43
|
now read by model Y", asked once per agent and model, each read again as it was read (the images of one reading
|
|
40
44
|
together, a trial or a part always of whole readings). Counted in readings with their places and what a remedy takes
|
|
@@ -43,6 +47,21 @@ The changes of each version in short. The full notes and the install lines are o
|
|
|
43
47
|
ordering them. The remedy may be read by another agent or model ready here (`strom fixes run <id> --agent <a>
|
|
44
48
|
--model <m>`), with which one read before said; one that cannot read here is refused at once, with those that can.
|
|
45
49
|
The time of a remedy is rounded up and, after the trial, measured again by the readings as they ran side by side.
|
|
50
|
+
- **A family tree strom may not write into says why.** strom writes Codex's rules into the research's folder: a strom
|
|
51
|
+
command run on its own goes outside Codex's sandbox — on Windows too, where the sandbox kept the research's history
|
|
52
|
+
closed and let nothing else run — while what the person decides and git itself stay forbidden. When an agent's
|
|
53
|
+
sandbox still keeps strom from writing into the family tree's folder, strom says so and tells the agent what to do as
|
|
54
|
+
it is there — run strom on its own, start Codex in the research's folder it trusts, or have the command approved
|
|
55
|
+
outside the sandbox — instead of a bare "no permission" the agent retold as no access to the family tree. Where an
|
|
56
|
+
agent leaves no mark of its own, strom knows it by its own mark on the agents it starts, or by the programs that
|
|
57
|
+
started it, and names its sandbox as the likely cause, then OneDrive or the controlled folder access of Windows. A
|
|
58
|
+
write the history refused is no longer said as missing rights to git itself, and a backup or an update that could not
|
|
59
|
+
be written asks for a folder with the right to write in it, no longer to free room on the disk. `strom doctor` and
|
|
60
|
+
`strom check` try writing into the research and say when it does not go, also where the folder cannot even be
|
|
61
|
+
listed. On a disk without hard links (a network share, a drive redirected over Remote Desktop) strom writes again,
|
|
62
|
+
its lock made another way, and a lock a slow disk does not show yet is no longer taken over after a moment; a family
|
|
63
|
+
tree that cannot be created there leaves nothing behind, said in the research language. Installed with npm on
|
|
64
|
+
Windows, `strom.cmd` runs strom where PowerShell refuses scripts.
|
|
46
65
|
|
|
47
66
|
## 1.18.0
|
|
48
67
|
|
|
@@ -108,7 +127,8 @@ The changes of each version in short. The full notes and the install lines are o
|
|
|
108
127
|
value longer than a line of the GEDCOM file (255 bytes) no longer stops the file from being written, and no emoji is
|
|
109
128
|
split where a long line goes on. With `excerpts.for all` a source nobody cites yet gets its excerpt in the Strom app
|
|
110
129
|
too, wherever it fits under the limit beside the cited ones, which never get smaller for it; what did not fit is
|
|
111
|
-
said.
|
|
130
|
+
said. The Strom app is told which images of a source the research has but its file left out, and loads them from
|
|
131
|
+
the research on demand — a source at a time, or all at once with how many and about how big.
|
|
112
132
|
|
|
113
133
|
## 1.17.0
|
|
114
134
|
|
package/README.md
CHANGED
|
@@ -34,7 +34,10 @@ Nothing needs admin rights.
|
|
|
34
34
|
- **macOS, Linux**:
|
|
35
35
|
`curl -fsSL https://raw.githubusercontent.com/ACiDekCZ/strom-research/main/install/install.sh | sh`
|
|
36
36
|
|
|
37
|
-
With Node 22.18 or newer: `npm install -g strom-research`.
|
|
37
|
+
With Node 22.18 or newer: `npm install -g strom-research`. On Windows the
|
|
38
|
+
installer above is the recommended way: installed with npm, PowerShell may
|
|
39
|
+
refuse `strom` ("running scripts is disabled on this system") — `strom.cmd`
|
|
40
|
+
runs it.
|
|
38
41
|
|
|
39
42
|
The setup asks a few things — language, where to keep the research, which
|
|
40
43
|
agent (it finds the installed ones and offers Claude if there is none), the
|
package/assets/lang/cs.json
CHANGED
|
@@ -610,6 +610,20 @@
|
|
|
610
610
|
"ui.doc.appurl.env.fix": "proměnnou STROM_APP_URL nastavit na adresu aplikace Strom ({web}, nebo její kopie na tomto počítači http://127.0.0.1:<port>/), nebo odebrat",
|
|
611
611
|
"ui.doc.tree.ok": "{name}: data v pořádku a zapečetěná",
|
|
612
612
|
"ui.doc.tree.bad": "{name}: {n, plural, one {# problém} few {# problémy} other {# problémů}}",
|
|
613
|
+
"ui.doc.write": "zápis do rodokmenu",
|
|
614
|
+
"ui.doc.write.ok": "do jeho .strom i .git lze zapisovat",
|
|
615
|
+
"ui.doc.write.sandbox": "{where}: zápis odepřen – strom běží pod agentem, nejspíš to zakazuje jeho sandbox",
|
|
616
|
+
"ui.doc.write.sandbox.fix": "spustit příkaz mimo sandbox agenta, nebo dát agentovi složku výzkumu jako zapisovatelnou",
|
|
617
|
+
"ui.doc.write.sandbox.fix.codex-strom": "spouštět strom samotný, bez roury a cd (pravidla .codex ve složce výzkumu ho pustí ze sandboxu Codexu; Codex je čte ve složce, které důvěřuje – znovu je zapíše strom agents sync), nebo schválit příkaz mimo sandbox Codexu (Codex se zeptá), nebo v nastavení zvolit úroveň „plná“ – volba jen člověka",
|
|
618
|
+
"ui.doc.write.sandbox.fix.codex": "spustit Codex ve složce výzkumu a důvěřovat jí (pravidla .codex v ní pustí strom ze sandboxu), nebo ho spustit přes strom („Pokračovat ve výzkumu s agentem“ v menu, nebo strom chat), nebo schválit příkaz mimo jeho sandbox",
|
|
619
|
+
"ui.doc.write.sandbox.fix.claude": "spustit Claude Code ve složce výzkumu (strom chat to tak dělá), nebo schválit příkaz mimo jeho sandbox",
|
|
620
|
+
"ui.doc.write.refused": "{where}: zápis odepřen – chybí právo zápisu",
|
|
621
|
+
"ui.doc.write.refused.fix": "složka, do které lze zapisovat",
|
|
622
|
+
"ui.doc.write.refused.fix.windows": "složka, do které lze zapisovat – zápisu může bránit i OneDrive nebo řízený přístup ke složkám v Zabezpečení Windows",
|
|
623
|
+
"ui.doc.write.refused.fix.agent": "strom spustil {agent}: nejspíš jeho sandbox – příkaz schválit mimo něj, nebo {agent} nechat pracovat na úrovni bez sandboxu; jinak složka, do které lze zapisovat",
|
|
624
|
+
"ui.doc.write.refused.fix.agent.windows": "strom spustil {agent}: nejspíš jeho sandbox – příkaz schválit mimo něj, nebo {agent} nechat pracovat na úrovni bez sandboxu; jinak složka, do které lze zapisovat – zápisu může bránit i OneDrive nebo řízený přístup ke složkám v Zabezpečení Windows",
|
|
625
|
+
"ui.doc.write.nolink": "{where}: disk neumí pevné odkazy – zámek jede náhradní cestou (pomalejší, když pracuje víc procesů naráz)",
|
|
626
|
+
"ui.doc.write.nolink.fix": "složka na vlastním disku tohoto počítače",
|
|
613
627
|
"ui.doc.allok": "Všechno potřebné je na místě.",
|
|
614
628
|
"ui.doc.problems": "{n, plural, one {# problém} few {# problémy} other {# problémů}} – co udělat, říkají šipky (strom setup nabídne instalaci toho, co chybí).",
|
|
615
629
|
"ui.menu.fix": "Opravit to hned?",
|
|
@@ -1516,6 +1530,7 @@
|
|
|
1516
1530
|
"ui.check.found": "{errors, plural, one {# chyba} few {# chyby} other {# chyb}}, {warnings} varování",
|
|
1517
1531
|
"ui.check.unproven": "pozn.: osob, které nestojí na žádném vlastním záznamu: {n} → strom person list --unproven",
|
|
1518
1532
|
"ui.check.counter": "počítadlo {prefix} zaostává za existujícími čísly (srovná se samo při příštím zápisu)",
|
|
1533
|
+
"ui.check.unwritable": "zápis sem je odepřen – proč, řekne strom doctor",
|
|
1519
1534
|
"ui.export.file": "{file} ({for}) — {persons, plural, one {# osoba} few {# osoby} other {# osob}} · {families, plural, one {# rodina} few {# rodiny} other {# rodin}} · {facts, plural, one {# údaj} few {# údaje} other {# údajů}} · {sources, plural, one {# pramen} few {# prameny} other {# pramenů}}{skipped}",
|
|
1520
1535
|
"ui.export.for.strom": "pro aplikaci Strom",
|
|
1521
1536
|
"ui.export.for.strom.images": "pro aplikaci Strom, s obrázky",
|
|
@@ -2114,13 +2129,13 @@
|
|
|
2114
2129
|
"ui.trees.pack": "zabalit „{name}“ a poslat někomu (soubor ZIP)",
|
|
2115
2130
|
"ui.trees.unpack": "rodokmen, který někdo poslal (soubor ZIP)",
|
|
2116
2131
|
"ui.pack.which": "Které snímky přibalit?",
|
|
2117
|
-
"ui.pack.opt.records": "jen se zápisy – {
|
|
2118
|
-
"ui.pack.opt.all": "všechny – {
|
|
2119
|
-
"ui.pack.done": "Zabaleno „{name}“: {file} ({
|
|
2132
|
+
"ui.pack.opt.records": "jen se zápisy – {size} (prohledané stránky dá archiv znovu)",
|
|
2133
|
+
"ui.pack.opt.all": "všechny – {size}",
|
|
2134
|
+
"ui.pack.done": "Zabaleno „{name}“: {file} ({size})",
|
|
2120
2135
|
"ui.pack.saved": " rodokmen, jak byl naposledy uložený, i s historií",
|
|
2121
|
-
"ui.pack.images": " snímky: {n} ({
|
|
2122
|
-
"ui.pack.images.all": " snímky: všech {n} ({
|
|
2123
|
-
"ui.pack.left": "
|
|
2136
|
+
"ui.pack.images": " snímky: {n} ({size}) – se zápisy a ostatní, které nikdo znovu nestáhne",
|
|
2137
|
+
"ui.pack.images.all": " snímky: všech {n} ({size})",
|
|
2138
|
+
"ui.pack.left": " vynechané: {n, plural, one {# snímek} few {# snímky} other {# snímků}} ({size}) – prohledané stránky; až budou potřeba, strom je z archivu stáhne znovu",
|
|
2124
2139
|
"ui.pack.connectors": " konektory: {list}",
|
|
2125
2140
|
"ui.pack.noconnector": "⚠ některé vynechané snímky přišly konektorem, který na tomto počítači není – nikdo by je znovu nestáhl: strom pack --all-images",
|
|
2126
2141
|
"ui.pack.missing": "⚠ snímky, které rodokmen uvádí, ale na tomto počítači nejsou: {n} – v balíčku chybí",
|
|
@@ -2151,14 +2166,14 @@
|
|
|
2151
2166
|
"ui.remove.person": "rodokmen z počítače odebírá jen člověk u počítače",
|
|
2152
2167
|
"ui.remove.busy": "na rodokmenu „{name}“ se právě pracuje – odebrat ho jde, až práce skončí",
|
|
2153
2168
|
"ui.remove.what": "„{name}“ ({root}) · osoby: {persons}",
|
|
2154
|
-
"ui.remove.backup": "Nejdřív ho zabalit jako zálohu, se všemi snímky ({
|
|
2169
|
+
"ui.remove.backup": "Nejdřív ho zabalit jako zálohu, se všemi snímky ({size})? Kdykoli se vrátí přes strom unpack.",
|
|
2155
2170
|
"ui.remove.backup.done": " záloha: {file}",
|
|
2156
|
-
"ui.remove.images": "Poslat do koše i snímky, které žádný jiný rodokmen nepoužívá (snímky: {n}, {
|
|
2171
|
+
"ui.remove.images": "Poslat do koše i snímky, které žádný jiný rodokmen nepoužívá (snímky: {n}, {size})?",
|
|
2157
2172
|
"ui.remove.type": "Pro potvrzení napsat název rodokmenu ({name}) – cokoli jiného nic neodebere:",
|
|
2158
2173
|
"ui.remove.cancelled": "Nic se neodebralo.",
|
|
2159
2174
|
"ui.remove.done": "„{name}“ je v koši.",
|
|
2160
2175
|
"ui.remove.live": " aplikace Strom ho už živě nesleduje",
|
|
2161
|
-
"ui.remove.images.done": " jeho snímky v koši: {n} ({
|
|
2176
|
+
"ui.remove.images.done": " jeho snímky v koši: {n} ({size})",
|
|
2162
2177
|
"ui.remove.images.folder": "{name} – snímky",
|
|
2163
2178
|
"ui.remove.backup.back": " vrátí se ze zálohy: strom unpack „{file}“",
|
|
2164
2179
|
"ui.remove.trash.alone": " vrátí se z koše systému, dokud se koš nevysype",
|
|
@@ -2194,10 +2209,24 @@
|
|
|
2194
2209
|
"ui.error.pack.missing.hint": "zadat ZIP soubor, který přišel (přetáhnout ho do terminálu)",
|
|
2195
2210
|
"ui.error.pack.no-manifest": "v {path} není {manifest}: není to výzkum zabalený stromem",
|
|
2196
2211
|
"ui.error.pack.no-manifest.hint": "zadat ZIP soubor, který přišel",
|
|
2197
|
-
"ui.error.fs.no-permission": "chybí
|
|
2212
|
+
"ui.error.fs.no-permission": "chybí oprávnění: {where}",
|
|
2198
2213
|
"ui.error.fs.no-permission.hint": "vybrat složku, do které lze zapisovat",
|
|
2199
2214
|
"ui.error.fs.held": "soubor {file} drží jiný program (antivirus, synchronizace nebo záloha, editor)",
|
|
2200
2215
|
"ui.error.fs.held.hint": "za chvíli spustit tentýž příkaz znovu – nic z něj se neuložilo",
|
|
2216
|
+
"ui.error.fs.no-permission.windows.hint": "vybrat složku, do které lze zapisovat – na Windows může zápisu bránit i OneDrive nebo řízený přístup ke složkám v Zabezpečení Windows",
|
|
2217
|
+
"ui.error.fs.no-permission.agent.hint": "strom spustil {agent} a zápis nejspíš zakazuje jeho sandbox: příkaz schválit mimo sandbox, nebo {agent} nechat pracovat na úrovni bez sandboxu; jinak vybrat složku, do které lze zapisovat",
|
|
2218
|
+
"ui.error.fs.no-permission.agent.windows.hint": "strom spustil {agent} a zápis nejspíš zakazuje jeho sandbox: příkaz schválit mimo sandbox, nebo {agent} nechat pracovat na úrovni bez sandboxu; jinak vybrat složku, do které lze zapisovat – na Windows může zápisu bránit i OneDrive nebo řízený přístup ke složkám v Zabezpečení Windows",
|
|
2219
|
+
"ui.error.fs.no-permission.unseen.hint": "strom nevidí programy, které ho spustily, jako v sandboxu agenta: když strom spustil agent, zápis nejspíš zakazuje jeho sandbox – příkaz schválit mimo sandbox; jinak vybrat složku, do které lze zapisovat",
|
|
2220
|
+
"ui.error.fs.no-permission.unseen.windows.hint": "strom nevidí programy, které ho spustily, jako v sandboxu agenta: když strom spustil agent, zápis nejspíš zakazuje jeho sandbox – příkaz schválit mimo sandbox; jinak vybrat složku, do které lze zapisovat – na Windows může zápisu bránit i OneDrive nebo řízený přístup ke složkám v Zabezpečení Windows",
|
|
2221
|
+
"ui.error.fs.sandboxed": "chybí oprávnění: {where} – strom běží pod agentem a nejspíš to zakazuje jeho sandbox",
|
|
2222
|
+
"ui.error.fs.sandboxed.hint": "spustit příkaz mimo sandbox agenta, nebo pracovat ve složce výzkumu (i s jejími .git a .strom zapisovatelnými)",
|
|
2223
|
+
"ui.error.git.unwritable": "git nemůže zapisovat do výzkumu: {where}",
|
|
2224
|
+
"ui.error.git.unwritable.hint": "vybrat složku, do které lze zapisovat",
|
|
2225
|
+
"ui.error.fs.folder": "místo souboru je zadaná složka: {path}",
|
|
2226
|
+
"ui.error.init.unwritable": "rodokmen nejde založit v {where}: zápis tam je odepřen – nic z něj tam nezůstalo",
|
|
2227
|
+
"ui.error.init.unwritable.hint": "vybrat složku, do které lze zapisovat",
|
|
2228
|
+
"ui.error.init.failed": "rodokmen nejde založit v {where}: {detail} – nic z něj tam nezůstalo",
|
|
2229
|
+
"ui.error.init.failed.hint": "složka na vlastním disku tohoto počítače (síťový nebo přesměrovaný disk může zápis nebo historii odmítnout)",
|
|
2201
2230
|
"ui.task.none": "Žádné úkoly.",
|
|
2202
2231
|
"ui.research.none": "Žádné linie výzkumu.",
|
|
2203
2232
|
"ui.person.none": "Žádné osoby.",
|
|
@@ -2270,6 +2299,10 @@
|
|
|
2270
2299
|
"ui.error.backup.failed.hint": "Uvolnit místo na disku ({where}) a spustit strom znovu – nebo se vrátit: strom update --channel {back}",
|
|
2271
2300
|
"ui.error.backup.failed.update": "Zálohu před přechodem z {from} na {to} se nepodařilo vytvořit: {detail}. Nic se nenainstalovalo.",
|
|
2272
2301
|
"ui.error.backup.failed.update.hint": "Uvolnit místo na disku ({where}) a znovu strom update --channel {channel}",
|
|
2302
|
+
"ui.error.backup.failed.refused.hint": "Zápis do {where} je odepřen: vybrat složku, do které lze zapisovat, pak spustit strom znovu – nebo se vrátit: strom update --channel {back}",
|
|
2303
|
+
"ui.error.backup.failed.other.hint": "Spustit strom znovu (víc řekne strom doctor) – nebo se vrátit: strom update --channel {back}",
|
|
2304
|
+
"ui.error.backup.failed.update.refused.hint": "Zápis do {where} je odepřen: vybrat složku, do které lze zapisovat, pak znovu strom update --channel {channel}",
|
|
2305
|
+
"ui.error.backup.failed.update.other.hint": "Znovu strom update --channel {channel} (víc řekne strom doctor)",
|
|
2273
2306
|
"ui.error.folder.in-program": "{folder} leží ve složce programu strom {program} – aktualizace ji nahrazuje a odinstalace odstraňuje, výzkum by šel s ní. Nic se nezměnilo.",
|
|
2274
2307
|
"ui.error.folder.in-program.hint": "Zvolit složku mimo ni, například {suggested}",
|
|
2275
2308
|
"ui.error.folder.in-program.default.hint": "Zadat složku mimo ni: strom setup --home \"{suggested}\" --yes",
|
package/assets/lang/de.json
CHANGED
|
@@ -610,6 +610,20 @@
|
|
|
610
610
|
"ui.doc.appurl.env.fix": "die Variable STROM_APP_URL auf eine Adresse der Strom-App setzen ({web}, oder eine Kopie auf diesem Computer http://127.0.0.1:<port>/) oder entfernen",
|
|
611
611
|
"ui.doc.tree.ok": "{name}: Daten in Ordnung und versiegelt",
|
|
612
612
|
"ui.doc.tree.bad": "{name}: {n, plural, one {# Problem} other {# Probleme}}",
|
|
613
|
+
"ui.doc.write": "Schreiben in diesen Stammbaum",
|
|
614
|
+
"ui.doc.write.ok": "in sein .strom und .git kann geschrieben werden",
|
|
615
|
+
"ui.doc.write.sandbox": "{where}: Schreiben verweigert – strom läuft unter einem Agenten, wahrscheinlich verbietet es dessen Sandbox",
|
|
616
|
+
"ui.doc.write.sandbox.fix": "den Befehl außerhalb der Sandbox des Agenten ausführen, oder dem Agenten den Ordner der Forschung als beschreibbar geben",
|
|
617
|
+
"ui.doc.write.sandbox.fix.codex-strom": "strom allein ausführen, ohne Pipe und cd (die Regeln in .codex im Ordner der Forschung lassen es aus der Sandbox von Codex; Codex liest sie in einem Ordner, dem es vertraut – strom agents sync schreibt sie neu), oder den Befehl außerhalb der Sandbox von Codex genehmigen (Codex fragt), oder in den Einstellungen die Stufe „voll“ wählen – allein die Wahl des Menschen",
|
|
618
|
+
"ui.doc.write.sandbox.fix.codex": "Codex im Ordner der Forschung starten und ihm vertrauen (die Regeln in .codex lassen strom aus der Sandbox), oder über strom starten („Die Forschung mit dem Agenten fortsetzen“ im Menü, oder strom chat), oder den Befehl außerhalb seiner Sandbox genehmigen",
|
|
619
|
+
"ui.doc.write.sandbox.fix.claude": "Claude Code im Ordner der Forschung starten (strom chat tut das), oder den Befehl außerhalb seiner Sandbox genehmigen",
|
|
620
|
+
"ui.doc.write.refused": "{where}: Schreiben verweigert – keine Schreibberechtigung",
|
|
621
|
+
"ui.doc.write.refused.fix": "ein Ordner, in den geschrieben werden darf",
|
|
622
|
+
"ui.doc.write.refused.fix.windows": "ein Ordner, in den geschrieben werden darf – auch OneDrive oder der überwachte Ordnerzugriff der Windows-Sicherheit kann das Schreiben verhindern",
|
|
623
|
+
"ui.doc.write.refused.fix.agent": "strom wurde von {agent} gestartet: vermutlich dessen Sandbox – den Befehl außerhalb genehmigen oder {agent} auf einer Stufe ohne Sandbox arbeiten lassen; sonst ein Ordner, in den geschrieben werden darf",
|
|
624
|
+
"ui.doc.write.refused.fix.agent.windows": "strom wurde von {agent} gestartet: vermutlich dessen Sandbox – den Befehl außerhalb genehmigen oder {agent} auf einer Stufe ohne Sandbox arbeiten lassen; sonst ein Ordner, in den geschrieben werden darf – auch OneDrive oder der überwachte Ordnerzugriff der Windows-Sicherheit kann das Schreiben verhindern",
|
|
625
|
+
"ui.doc.write.nolink": "{where}: das Laufwerk kann keine festen Verknüpfungen – die Sperre geht einen anderen Weg (langsamer, wenn mehrere zugleich arbeiten)",
|
|
626
|
+
"ui.doc.write.nolink.fix": "ein Ordner auf der eigenen Festplatte dieses Computers",
|
|
613
627
|
"ui.doc.allok": "Alles Nötige ist vorhanden.",
|
|
614
628
|
"ui.doc.problems": "{n, plural, one {# Problem} other {# Probleme}} – den Pfeilen folgen (strom setup bietet an, Fehlendes zu installieren).",
|
|
615
629
|
"ui.menu.fix": "Jetzt beheben?",
|
|
@@ -1516,6 +1530,7 @@
|
|
|
1516
1530
|
"ui.check.found": "{errors} Fehler, {warnings, plural, one {# Warnung} other {# Warnungen}}",
|
|
1517
1531
|
"ui.check.unproven": "Hinweis: Personen, die sich auf keinen eigenen Eintrag stützen: {n} → strom person list --unproven",
|
|
1518
1532
|
"ui.check.counter": "Zähler {prefix} liegt hinter den vorhandenen Nummern (gleicht sich beim nächsten Schreiben selbst aus)",
|
|
1533
|
+
"ui.check.unwritable": "Schreiben hierher verweigert – warum, sagt strom doctor",
|
|
1519
1534
|
"ui.export.file": "{file} ({for}) — {persons, plural, one {# Person} other {# Personen}} · {families, plural, one {# Familie} other {# Familien}} · {facts, plural, one {# Angabe} other {# Angaben}} · {sources, plural, one {# Quelle} other {# Quellen}}{skipped}",
|
|
1520
1535
|
"ui.export.for.strom": "für die Strom-App",
|
|
1521
1536
|
"ui.export.for.strom.images": "für die Strom-App, mit Bildern",
|
|
@@ -2114,13 +2129,13 @@
|
|
|
2114
2129
|
"ui.trees.pack": "„{name}“ einpacken und jemandem schicken (eine ZIP-Datei)",
|
|
2115
2130
|
"ui.trees.unpack": "ein zugeschickter Stammbaum (eine ZIP-Datei)",
|
|
2116
2131
|
"ui.pack.which": "Welche Bilder kommen mit?",
|
|
2117
|
-
"ui.pack.opt.records": "die, auf denen die Einträge stehen – {
|
|
2118
|
-
"ui.pack.opt.all": "alle – {
|
|
2119
|
-
"ui.pack.done": "„{name}“ eingepackt: {file} ({
|
|
2132
|
+
"ui.pack.opt.records": "die, auf denen die Einträge stehen – {size} (die durchgesehenen Seiten gibt das Archiv wieder)",
|
|
2133
|
+
"ui.pack.opt.all": "alle – {size}",
|
|
2134
|
+
"ui.pack.done": "„{name}“ eingepackt: {file} ({size})",
|
|
2120
2135
|
"ui.pack.saved": " der Stammbaum, wie er zuletzt gespeichert wurde, mit seiner Geschichte",
|
|
2121
|
-
"ui.pack.images": " Bilder: {n} ({
|
|
2122
|
-
"ui.pack.images.all": " Bilder: alle {n} ({
|
|
2123
|
-
"ui.pack.left": " weggelassen: {n, plural, one {# Bild} other {# Bilder}} ({
|
|
2136
|
+
"ui.pack.images": " Bilder: {n} ({size}) – die, auf denen die Einträge stehen, und die, die niemand wieder laden kann",
|
|
2137
|
+
"ui.pack.images.all": " Bilder: alle {n} ({size})",
|
|
2138
|
+
"ui.pack.left": " weggelassen: {n, plural, one {# Bild} other {# Bilder}} ({size}) – durchgesehene Seiten; strom lädt sie aus dem Archiv wieder, wenn sie gebraucht werden",
|
|
2124
2139
|
"ui.pack.connectors": " Konnektoren: {list}",
|
|
2125
2140
|
"ui.pack.noconnector": "⚠ einige weggelassene Bilder kamen über einen Konnektor, der auf diesem Computer fehlt – niemand könnte sie wieder laden: strom pack --all-images",
|
|
2126
2141
|
"ui.pack.missing": "⚠ {n, plural, one {# Bild, das der Stammbaum nennt, ist} other {# Bilder, die der Stammbaum nennt, sind}} nicht auf diesem Computer – nicht im Paket",
|
|
@@ -2151,14 +2166,14 @@
|
|
|
2151
2166
|
"ui.remove.person": "einen Stammbaum nimmt nur die Person am Computer herunter",
|
|
2152
2167
|
"ui.remove.busy": "an „{name}“ wird gerade gearbeitet – er kann weg, wenn die Arbeit vorbei ist",
|
|
2153
2168
|
"ui.remove.what": "„{name}“ ({root}) · Personen: {persons}",
|
|
2154
|
-
"ui.remove.backup": "Zuerst als Sicherung einpacken, mit allen Bildern ({
|
|
2169
|
+
"ui.remove.backup": "Zuerst als Sicherung einpacken, mit allen Bildern ({size})? Er kommt jederzeit mit strom unpack zurück.",
|
|
2155
2170
|
"ui.remove.backup.done": " Sicherung: {file}",
|
|
2156
|
-
"ui.remove.images": "Auch die Bilder, die kein anderer Stammbaum nutzt, in den Papierkorb ({n}, {
|
|
2171
|
+
"ui.remove.images": "Auch die Bilder, die kein anderer Stammbaum nutzt, in den Papierkorb ({n}, {size})?",
|
|
2157
2172
|
"ui.remove.type": "Zur Bestätigung den Namen des Stammbaums ({name}) tippen – alles andere nimmt nichts weg:",
|
|
2158
2173
|
"ui.remove.cancelled": "Nichts wurde weggenommen.",
|
|
2159
2174
|
"ui.remove.done": "„{name}“ ist im Papierkorb.",
|
|
2160
2175
|
"ui.remove.live": " die Strom-App verfolgt ihn nicht mehr live",
|
|
2161
|
-
"ui.remove.images.done": " seine Bilder im Papierkorb: {n} ({
|
|
2176
|
+
"ui.remove.images.done": " seine Bilder im Papierkorb: {n} ({size})",
|
|
2162
2177
|
"ui.remove.images.folder": "{name} – Bilder",
|
|
2163
2178
|
"ui.remove.backup.back": " er kommt aus der Sicherung zurück: strom unpack „{file}“",
|
|
2164
2179
|
"ui.remove.trash.alone": " er kommt aus dem Papierkorb des Systems zurück, bis er geleert wird",
|
|
@@ -2194,10 +2209,24 @@
|
|
|
2194
2209
|
"ui.error.pack.missing.hint": "die ZIP-Datei angeben, die gekommen ist (ins Terminal ziehen)",
|
|
2195
2210
|
"ui.error.pack.no-manifest": "keine {manifest} in {path}: keine von strom gepackte Forschung",
|
|
2196
2211
|
"ui.error.pack.no-manifest.hint": "die ZIP-Datei angeben, die gekommen ist",
|
|
2197
|
-
"ui.error.fs.no-permission": "keine Berechtigung{where}",
|
|
2212
|
+
"ui.error.fs.no-permission": "keine Berechtigung: {where}",
|
|
2198
2213
|
"ui.error.fs.no-permission.hint": "einen Ordner wählen, in den geschrieben werden darf",
|
|
2199
2214
|
"ui.error.fs.held": "ein anderes Programm hält {file} (Virenschutz, Synchronisation oder Sicherung, Editor)",
|
|
2200
2215
|
"ui.error.fs.held.hint": "denselben Befehl gleich noch einmal ausführen – nichts davon wurde gespeichert",
|
|
2216
|
+
"ui.error.fs.no-permission.windows.hint": "einen Ordner wählen, in den geschrieben werden darf – unter Windows kann auch OneDrive oder der überwachte Ordnerzugriff der Windows-Sicherheit das Schreiben verhindern",
|
|
2217
|
+
"ui.error.fs.no-permission.agent.hint": "strom wurde von {agent} gestartet, und vermutlich verbietet dessen Sandbox das Schreiben: den Befehl außerhalb der Sandbox genehmigen oder {agent} auf einer Stufe ohne Sandbox arbeiten lassen; sonst einen Ordner wählen, in den geschrieben werden darf",
|
|
2218
|
+
"ui.error.fs.no-permission.agent.windows.hint": "strom wurde von {agent} gestartet, und vermutlich verbietet dessen Sandbox das Schreiben: den Befehl außerhalb der Sandbox genehmigen oder {agent} auf einer Stufe ohne Sandbox arbeiten lassen; sonst einen Ordner wählen, in den geschrieben werden darf – unter Windows kann auch OneDrive oder der überwachte Ordnerzugriff der Windows-Sicherheit das Schreiben verhindern",
|
|
2219
|
+
"ui.error.fs.no-permission.unseen.hint": "strom sieht die Programme nicht, die es gestartet haben, wie in der Sandbox eines Agenten: wurde strom von einem Agenten gestartet, verbietet vermutlich dessen Sandbox das Schreiben – den Befehl außerhalb der Sandbox genehmigen; sonst einen Ordner wählen, in den geschrieben werden darf",
|
|
2220
|
+
"ui.error.fs.no-permission.unseen.windows.hint": "strom sieht die Programme nicht, die es gestartet haben, wie in der Sandbox eines Agenten: wurde strom von einem Agenten gestartet, verbietet vermutlich dessen Sandbox das Schreiben – den Befehl außerhalb der Sandbox genehmigen; sonst einen Ordner wählen, in den geschrieben werden darf – unter Windows kann auch OneDrive oder der überwachte Ordnerzugriff der Windows-Sicherheit das Schreiben verhindern",
|
|
2221
|
+
"ui.error.fs.sandboxed": "keine Berechtigung: {where} – strom läuft unter einem Agenten, und wahrscheinlich verbietet es dessen Sandbox",
|
|
2222
|
+
"ui.error.fs.sandboxed.hint": "den Befehl außerhalb der Sandbox des Agenten ausführen, oder im Ordner der Forschung arbeiten (auch dessen .git und .strom beschreibbar)",
|
|
2223
|
+
"ui.error.git.unwritable": "git kann nicht in die Forschung schreiben: {where}",
|
|
2224
|
+
"ui.error.git.unwritable.hint": "einen Ordner wählen, in den geschrieben werden darf",
|
|
2225
|
+
"ui.error.fs.folder": "statt einer Datei wurde ein Ordner angegeben: {path}",
|
|
2226
|
+
"ui.error.init.unwritable": "der Stammbaum lässt sich in {where} nicht anlegen: das Schreiben dort wird verweigert – nichts davon ist dort geblieben",
|
|
2227
|
+
"ui.error.init.unwritable.hint": "einen Ordner wählen, in den geschrieben werden darf",
|
|
2228
|
+
"ui.error.init.failed": "der Stammbaum lässt sich in {where} nicht anlegen: {detail} – nichts davon ist dort geblieben",
|
|
2229
|
+
"ui.error.init.failed.hint": "ein Ordner auf der eigenen Festplatte dieses Computers (ein Netz- oder umgeleitetes Laufwerk kann das Schreiben oder den Verlauf verweigern)",
|
|
2201
2230
|
"ui.task.none": "Keine Aufgaben.",
|
|
2202
2231
|
"ui.research.none": "Keine Forschungsrichtungen.",
|
|
2203
2232
|
"ui.person.none": "Keine Personen.",
|
|
@@ -2270,6 +2299,10 @@
|
|
|
2270
2299
|
"ui.error.backup.failed.hint": "Platz auf dem Datenträger freimachen ({where}) und strom erneut starten – oder zurück: strom update --channel {back}",
|
|
2271
2300
|
"ui.error.backup.failed.update": "Die Sicherung vor dem Wechsel von {from} auf {to} ließ sich nicht erstellen: {detail}. Es wurde nichts installiert.",
|
|
2272
2301
|
"ui.error.backup.failed.update.hint": "Platz auf dem Datenträger freimachen ({where}), dann erneut strom update --channel {channel}",
|
|
2302
|
+
"ui.error.backup.failed.refused.hint": "Das Schreiben in {where} wird verweigert: einen Ordner wählen, in den geschrieben werden darf, dann strom erneut starten – oder zurück: strom update --channel {back}",
|
|
2303
|
+
"ui.error.backup.failed.other.hint": "strom erneut starten (strom doctor sagt mehr) – oder zurück: strom update --channel {back}",
|
|
2304
|
+
"ui.error.backup.failed.update.refused.hint": "Das Schreiben in {where} wird verweigert: einen Ordner wählen, in den geschrieben werden darf, dann erneut strom update --channel {channel}",
|
|
2305
|
+
"ui.error.backup.failed.update.other.hint": "Erneut strom update --channel {channel} (strom doctor sagt mehr)",
|
|
2273
2306
|
"ui.error.folder.in-program": "{folder} liegt im Programmordner von strom {program} – ein Update von strom ersetzt, was dort liegt, und die Deinstallation entfernt es, die Forschung mit. Nichts wurde geändert.",
|
|
2274
2307
|
"ui.error.folder.in-program.hint": "Einen Ordner außerhalb wählen, zum Beispiel {suggested}",
|
|
2275
2308
|
"ui.error.folder.in-program.default.hint": "Einen Ordner außerhalb angeben: strom setup --home \"{suggested}\" --yes",
|
package/assets/phone/phone.css
CHANGED
|
@@ -122,7 +122,7 @@ button{font:inherit;color:inherit}
|
|
|
122
122
|
.strip.warn{color:var(--warning-text)}
|
|
123
123
|
|
|
124
124
|
/* the sheet of the photos to send */
|
|
125
|
-
.sheet{position:fixed;left:0;right:0;top:
|
|
125
|
+
.sheet{position:fixed;left:0;right:0;top:var(--vvt,0px);height:var(--vvh,100%);z-index:10;background:var(--bg);display:flex;flex-direction:column;max-width:560px;margin:0 auto}
|
|
126
126
|
.sheet-head{display:flex;align-items:flex-start;gap:8px;padding:max(12px,env(safe-area-inset-top)) 8px 10px 16px;background:var(--surface);border-bottom:1px solid var(--divider)}
|
|
127
127
|
.sheet-head>div{flex:1;min-width:0}
|
|
128
128
|
.sheet-head h2{margin:2px 0 2px}
|
package/assets/phone/phone.js
CHANGED
|
@@ -1158,16 +1158,17 @@
|
|
|
1158
1158
|
$("doneBox").hidden = !handed;
|
|
1159
1159
|
if (handed) $("doneText").textContent = t("commit.done", { n: b.done });
|
|
1160
1160
|
// the foot: the camera's photos only here, handing over
|
|
1161
|
-
|
|
1161
|
+
// while typing, only what ends the typing: the rest of the foot would take what the keyboard leaves of the sheet
|
|
1162
|
+
$("captureNote").hidden = !!S.typing || !items.some((i) => i.capture && i.blob);
|
|
1162
1163
|
$("photoRow").hidden = !!S.typing;
|
|
1163
1164
|
$("typingRow").hidden = !S.typing;
|
|
1164
1165
|
$("noPersonBtn").hidden = S.typing !== "person";
|
|
1165
1166
|
const committing = !!(b && b.commit);
|
|
1166
|
-
$("commitBtn").hidden = !items.length;
|
|
1167
|
+
$("commitBtn").hidden = !items.length || !!S.typing;
|
|
1167
1168
|
$("commitBtn").disabled = committing || !items.some((i) => !FINAL(i));
|
|
1168
1169
|
$("commitBtn").textContent = committing ? t("commit.wait") : t("commit");
|
|
1169
1170
|
$("commitCancel").hidden = !committing;
|
|
1170
|
-
$("commitLater").hidden = !items.length || committing;
|
|
1171
|
+
$("commitLater").hidden = !items.length || committing || !!S.typing;
|
|
1171
1172
|
};
|
|
1172
1173
|
|
|
1173
1174
|
const renderUnpaired = () => {
|
|
@@ -1275,6 +1276,17 @@
|
|
|
1275
1276
|
render();
|
|
1276
1277
|
};
|
|
1277
1278
|
|
|
1279
|
+
// the field typed in at the top of the sheet's body, what it offers under it (the keyboard leaves little of the sheet)
|
|
1280
|
+
const keepTyped = () => {
|
|
1281
|
+
const f = document.activeElement;
|
|
1282
|
+
if (!f || (f.id !== "person" && f.id !== "note") || $("sheet").hidden) return;
|
|
1283
|
+
const body = $("sheet").querySelector(".sheet-body");
|
|
1284
|
+
const field = (f.closest && f.closest(".field")) || f;
|
|
1285
|
+
if (!body) return;
|
|
1286
|
+
const off = field.getBoundingClientRect().top - body.getBoundingClientRect().top - 8;
|
|
1287
|
+
if (Math.abs(off) > 1) body.scrollTop += off;
|
|
1288
|
+
};
|
|
1289
|
+
|
|
1278
1290
|
let lookFor = 0;
|
|
1279
1291
|
let asked = "";
|
|
1280
1292
|
const findPeople = () => {
|
|
@@ -1317,6 +1329,7 @@
|
|
|
1317
1329
|
ul.append(li);
|
|
1318
1330
|
}
|
|
1319
1331
|
ul.hidden = !people.length;
|
|
1332
|
+
if (people.length) keepTyped();
|
|
1320
1333
|
}, 250);
|
|
1321
1334
|
};
|
|
1322
1335
|
|
|
@@ -1469,12 +1482,22 @@
|
|
|
1469
1482
|
renderPill();
|
|
1470
1483
|
};
|
|
1471
1484
|
window.addEventListener("scroll", () => S.newCount && window.scrollY <= 4 && renderPill(), { passive: true });
|
|
1472
|
-
// the keyboard: the sheet as high as what is seen of the page
|
|
1485
|
+
// the keyboard: the sheet as high as what is seen of the page and where it is seen (iOS Safari keeps the page as tall
|
|
1486
|
+
// and moves what is seen of it up above the keyboard: a sheet fixed at the page's top would end under the field), its
|
|
1487
|
+
// foot above the keyboard, the field typed in kept in sight; without visualViewport the sheet is the whole window
|
|
1473
1488
|
const vv = window.visualViewport;
|
|
1474
1489
|
if (vv) {
|
|
1475
|
-
const
|
|
1476
|
-
|
|
1477
|
-
|
|
1490
|
+
const place = () => {
|
|
1491
|
+
const root = document.documentElement.style;
|
|
1492
|
+
root.setProperty("--vvh", `${Math.round(vv.height)}px`);
|
|
1493
|
+
root.setProperty("--vvt", `${Math.max(0, Math.round(vv.offsetTop || 0))}px`);
|
|
1494
|
+
};
|
|
1495
|
+
vv.addEventListener("resize", () => {
|
|
1496
|
+
place();
|
|
1497
|
+
keepTyped();
|
|
1498
|
+
});
|
|
1499
|
+
vv.addEventListener("scroll", place);
|
|
1500
|
+
place();
|
|
1478
1501
|
}
|
|
1479
1502
|
|
|
1480
1503
|
// looked at again: asked at once; every 10 s while open
|