strom-research 1.15.0 → 1.16.0-beta.1
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 +9 -0
- package/CHANGELOG.de.md +9 -0
- package/CHANGELOG.md +9 -0
- package/assets/lang/cs.json +1 -1
- package/dist/core/edge.js +6 -0
- package/dist/core/tree.js +1 -1
- package/dist/gedcom/export.js +12 -2
- package/dist/gedcom/validate.js +4 -0
- package/package.json +4 -1
package/CHANGELOG.cs.md
CHANGED
|
@@ -5,6 +5,15 @@
|
|
|
5
5
|
Změny každé verze ve zkratce. Úplné poznámky a instalační řádky jsou na
|
|
6
6
|
[GitHub Releases](https://github.com/ACiDekCZ/strom-research/releases) (anglicky).
|
|
7
7
|
|
|
8
|
+
## 1.16.0
|
|
9
|
+
|
|
10
|
+
- **Každá osoba na kraji stromu s vlastními variantami.** Když se otevřená hypotéza napojuje na strom u více osob,
|
|
11
|
+
každá nese varianty, které ji jmenují, a rodinu mimo strom, ke které patří; aplikace Strom tak může ukázat všechny,
|
|
12
|
+
ne jen první.
|
|
13
|
+
- **Kraj stromu osobu po osobě.** `strom edge --json` vypíše každou osobu, na kterou hypotéza navazuje, s variantami
|
|
14
|
+
a rodinou každé z nich.
|
|
15
|
+
- **Linie výzkumu.** České texty všude říkají „linie výzkumu“, nikde už „směry“.
|
|
16
|
+
|
|
8
17
|
## 1.15.0
|
|
9
18
|
|
|
10
19
|
*16. 10. 2026 · patří k aplikaci Strom 3.12.0.*
|
package/CHANGELOG.de.md
CHANGED
|
@@ -5,6 +5,15 @@
|
|
|
5
5
|
Die Änderungen jeder Version in Kürze. Die vollständigen Hinweise und die Installationszeilen stehen bei
|
|
6
6
|
[GitHub Releases](https://github.com/ACiDekCZ/strom-research/releases) (auf Englisch).
|
|
7
7
|
|
|
8
|
+
## 1.16.0
|
|
9
|
+
|
|
10
|
+
- **Jede Person am Rand des Stammbaums mit eigenen Varianten.** Wenn eine offene Hypothese den Stammbaum bei mehreren
|
|
11
|
+
Personen anschließt, trägt jede die Varianten, die sie nennen, und die Familie außerhalb des Stammbaums, zu der sie
|
|
12
|
+
gehört; so kann die Strom-App alle zeigen, nicht nur die erste.
|
|
13
|
+
- **Der Rand des Stammbaums, Person für Person.** `strom edge --json` nennt jede Person, an die eine Hypothese
|
|
14
|
+
anschließt, mit den Varianten und der Familie jeder einzelnen.
|
|
15
|
+
- **Forschungslinien auf Tschechisch.** Die tschechischen Texte sagen jetzt überall „linie výzkumu“ (Forschungslinien).
|
|
16
|
+
|
|
8
17
|
## 1.15.0
|
|
9
18
|
|
|
10
19
|
*16.10.2026 · gehört zur Strom-App 3.12.0.*
|
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,15 @@ English · [Čeština](CHANGELOG.cs.md) · [Deutsch](CHANGELOG.de.md)
|
|
|
5
5
|
The changes of each version in short. The full notes and the install lines are on
|
|
6
6
|
[GitHub Releases](https://github.com/ACiDekCZ/strom-research/releases).
|
|
7
7
|
|
|
8
|
+
## 1.16.0
|
|
9
|
+
|
|
10
|
+
- **Each person where the tree ends, with its own variants.** When an open hypothesis joins the tree at several
|
|
11
|
+
people, each of them carries the variants that name it and the family off the tree it belongs to, so the Strom app
|
|
12
|
+
can show all of them, not only the first.
|
|
13
|
+
- **Where the tree ends, person by person.** `strom edge --json` lists each person a hypothesis joins, with the
|
|
14
|
+
variants and the family of each one.
|
|
15
|
+
- **Lines of research in Czech.** The Czech texts say „linie výzkumu“ (lines of research) everywhere now.
|
|
16
|
+
|
|
8
17
|
## 1.15.0
|
|
9
18
|
|
|
10
19
|
*2026-10-16 · goes with the Strom app 3.12.0.*
|
package/assets/lang/cs.json
CHANGED
|
@@ -1920,7 +1920,7 @@
|
|
|
1920
1920
|
"ui.error.fs.no-permission": "chybí oprávnění{where}",
|
|
1921
1921
|
"ui.error.fs.no-permission.hint": "vybrat složku, do které lze zapisovat",
|
|
1922
1922
|
"ui.task.none": "Žádné úkoly.",
|
|
1923
|
-
"ui.research.none": "Žádné
|
|
1923
|
+
"ui.research.none": "Žádné linie výzkumu.",
|
|
1924
1924
|
"ui.person.none": "Žádné osoby.",
|
|
1925
1925
|
"ui.person.nomatch": "Žádná osoba neodpovídá.",
|
|
1926
1926
|
"ui.person.leadsonly": "jen vodítka",
|
package/dist/core/edge.js
CHANGED
|
@@ -289,12 +289,18 @@ export function treeEdges(tree, opts = {}) {
|
|
|
289
289
|
const isle = joins.length && onTree ? isles.get(joins[0]) : undefined;
|
|
290
290
|
// the variants that would make the join: those that name the people off the tree
|
|
291
291
|
const variants = joins.length ? joiningVariants(tree, h, onTree ? joins : (isles.get(p.id)?.people ?? [p.id])) : [];
|
|
292
|
+
const each = joins.map((j) => {
|
|
293
|
+
const named = joiningVariants(tree, h, [j]);
|
|
294
|
+
const own = onTree ? isles.get(j) : undefined;
|
|
295
|
+
return { person: j, ...(named.length ? { variants: named } : {}), ...(own ? { island: { people: own.people.length, held: own.held } } : {}) };
|
|
296
|
+
});
|
|
292
297
|
return {
|
|
293
298
|
id: h.id,
|
|
294
299
|
question: h.question,
|
|
295
300
|
joins,
|
|
296
301
|
...(isle ? { island: { people: isle.people.length, held: isle.held } } : {}),
|
|
297
302
|
...(variants.length ? { variants } : {}),
|
|
303
|
+
...(each.length ? { each } : {}),
|
|
298
304
|
// a task about it, or one whose words name it ("the baptism … (H0007 B)")
|
|
299
305
|
tests: tasks.filter((t) => LIVE.has(t.state) && (t.subject.includes(h.id) || namesId(t.what, h.id))).map((t) => t.id),
|
|
300
306
|
};
|
package/dist/core/tree.js
CHANGED
|
@@ -27,7 +27,7 @@ import { lastBackup } from "./backup.js";
|
|
|
27
27
|
export const TREE_FILE = "strom.json";
|
|
28
28
|
// between releases the candidate being made (a bridge run from the sources says what it is: the Strom app goes by it);
|
|
29
29
|
// at a release the release's own (package.json)
|
|
30
|
-
export const VERSION = "1.
|
|
30
|
+
export const VERSION = "1.16.0-beta.1";
|
|
31
31
|
const GITIGNORE = `# Strom Research — local state and large files are not versioned
|
|
32
32
|
.strom/
|
|
33
33
|
/media/
|
package/dist/gedcom/export.js
CHANGED
|
@@ -725,8 +725,18 @@ export function exportGedcom(tree, opts = {}) {
|
|
|
725
725
|
w.line(2, "_TRIED", id);
|
|
726
726
|
for (const h of e.hypotheses) {
|
|
727
727
|
w.line(2, "_HYPO", h.id);
|
|
728
|
-
for (const j of h.
|
|
729
|
-
w.line(3, "_JOIN", j);
|
|
728
|
+
for (const j of h.each ?? []) {
|
|
729
|
+
w.line(3, "_JOIN", j.person);
|
|
730
|
+
// each join on its own: the variants that name the person, the family off the tree it belongs to (an older app
|
|
731
|
+
// passes level 4 by and takes the numbers of the hypothesis, those of the first join)
|
|
732
|
+
if (opts.hypothesisLinks)
|
|
733
|
+
for (const v of j.variants ?? [])
|
|
734
|
+
w.line(4, "_VAR", v);
|
|
735
|
+
if (j.island) {
|
|
736
|
+
w.line(4, "_ISLAND", String(j.island.people));
|
|
737
|
+
w.line(4, "_HELD", String(j.island.held));
|
|
738
|
+
}
|
|
739
|
+
}
|
|
730
740
|
// which variant would make the join (an app that shows what a hypothesis would connect)
|
|
731
741
|
if (opts.hypothesisLinks)
|
|
732
742
|
for (const v of h.variants ?? [])
|
package/dist/gedcom/validate.js
CHANGED
|
@@ -29,6 +29,8 @@ const CHILDREN = {
|
|
|
29
29
|
"INDI._STROM_SEARCHED": ["TITL", "DATE", "RESN", "_AT"],
|
|
30
30
|
"INDI._STROM_EDGE": ["_SCOPE", "_RESEARCH", "_GEN", "_END", "_NEXT", "_EST", "DATE", "_RECORDS", "_BOOK", "_COVERED", "_NORECORDS", "_TASK", "_TRIED", "_HYPO", "_CONFLICT", "_SEARCHES", "_SESSIONS", "_LAST"],
|
|
31
31
|
"INDI._STROM_ISLAND": ["_HYPO", "_HELD"],
|
|
32
|
+
// one join of a hypothesis at the edge: the variants that name the person, the family off the tree it belongs to
|
|
33
|
+
"_STROM_EDGE._JOIN": ["_VAR", "_ISLAND", "_HELD"],
|
|
32
34
|
// a value of a conflict the app decides by side: its side, a sex as M, F or U
|
|
33
35
|
_STROM_VALUE: ["SOUR", "_STROM_SIDE", "_STROM_RAW"],
|
|
34
36
|
"INDI.NAME": ["TYPE", "GIVN", "SURN", "NPFX", "NSFX", "NICK", "SPFX", "SOUR", "NOTE"],
|
|
@@ -90,6 +92,8 @@ function contextOf(anc) {
|
|
|
90
92
|
return "_LINK";
|
|
91
93
|
if (parent === "_INTREE" && anc[2] === "_VAR")
|
|
92
94
|
return "_INTREE";
|
|
95
|
+
if (parent === "_JOIN" && anc[1] === "_STROM_EDGE" && anc[2] === "_HYPO")
|
|
96
|
+
return "_STROM_EDGE._JOIN";
|
|
93
97
|
if (parent === "ADDR")
|
|
94
98
|
return "ADDR";
|
|
95
99
|
if (parent === "DATA" && anc[depth - 2] === "SOUR")
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "strom-research",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.16.0-beta.1",
|
|
4
4
|
"description": "Genealogical research toolkit for AI coding agents",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -48,5 +48,8 @@
|
|
|
48
48
|
"devDependencies": {
|
|
49
49
|
"@types/node": "^22.20.4",
|
|
50
50
|
"typescript": "^7.0.2"
|
|
51
|
+
},
|
|
52
|
+
"publishConfig": {
|
|
53
|
+
"tag": "beta"
|
|
51
54
|
}
|
|
52
55
|
}
|