Der Node First not empty (#205) bekommt einen Parameter, der festlegt, was als leer gilt.
Der Schalter
(Entscheidung im Chat, 2026-09-22)
Aus (Vorgabe, wie heute): Leerwert jeder Art zählt als leer — nichts verbunden bzw. kein Objekt, 0, "", false, leere Liste, Struct mit nur leeren Feldern.
Ein: Nur „wirklich nichts" zählt als leer. 0, false und ein leerer Text sind dann echte Werte und werden durchgereicht.
Die Vorgabe ist Aus, bestehende Graphen verhalten sich also unverändert.
Warum
Bei Zahlen ist „0 ist leer" irgendwann im Weg: 0 Schaden, 0 Geschwindigkeit oder false als Schalter sind echte Werte, die nicht überschrieben werden sollen.
Befund, der die Entscheidung unten betrifft
Der Anlassfall aus dem Chat (Behavior-Parameter Animation mit Variable als Rückfall) funktioniert nur, weil eine Animation als Text reist (kinds.ts, travels: 'string', empty: '') und ein nicht gesetzter Parameter damit der leere Text ist. Im Ein-Zustand des Schalters würde genau dieser Fall nicht mehr zurückfallen, wenn "" dort als echter Wert gilt. Die Vorgabe Aus deckt den Fall weiter ab, aber die Frage, was „wirklich nichts" genau heißt, entscheidet, ob der Schalter für Texte überhaupt brauchbar ist.
Rückfragen
Was ist im Ein-Zustand leer?
a) Nur null bzw. kein Objekt und ein unverbundener Eingang. "", leere Liste und leerer Struct sind echte Werte. (Das ist deine Formulierung wörtlich genommen.)
b) Wie a), aber ein leerer Text, eine leere Liste und ein Struct ohne Felder zählen weiter als leer — leer bleibt „nichts da", nur 0 und false werden zu echten Werten. (Damit bliebe der Animations-Fall auch im Ein-Zustand heil.)
Wie heißt der Schalter im Inspector? Vorschlag: Only null counts as empty (Aus = Vorgabe). Alternativ eine Auswahl mit zwei Stufen statt einer Checkbox: Any empty value / Only nothing.
Mehr als zwei Eingänge?a, b, c … wachsen mit, sobald der letzte belegt ist, wie bei Sequence (derivePorts). Dann braucht eine Kette aus drei Rückfällen nur einen Node statt zwei. Soll das mit hinein, oder bleibt es bei zwei Eingängen?
Umfang
isEmptyValue in src/core/graph/values.ts bekommt eine Stufe als zweites Argument.
FirstNotEmpty bekommt den Parameter und reicht ihn durch.
Unit-Fälle in der Katalog-Tabelle für beide Stufen.
Wiki Behaviors, Zeile der Node-Liste.
Der Node `First not empty` (#205) bekommt einen Parameter, der festlegt, was als leer gilt.
## Der Schalter
(Entscheidung im Chat, 2026-09-22)
- **Aus (Vorgabe, wie heute):** Leerwert jeder Art zählt als leer — nichts verbunden bzw. kein Objekt, `0`, `""`, `false`, leere Liste, Struct mit nur leeren Feldern.
- **Ein:** Nur „wirklich nichts" zählt als leer. `0`, `false` und ein leerer Text sind dann echte Werte und werden durchgereicht.
Die Vorgabe ist Aus, bestehende Graphen verhalten sich also unverändert.
## Warum
Bei Zahlen ist „`0` ist leer" irgendwann im Weg: `0` Schaden, `0` Geschwindigkeit oder `false` als Schalter sind echte Werte, die nicht überschrieben werden sollen.
## Befund, der die Entscheidung unten betrifft
Der Anlassfall aus dem Chat (Behavior-Parameter `Animation` mit Variable als Rückfall) funktioniert nur, weil eine Animation als Text reist (`kinds.ts`, `travels: 'string'`, `empty: ''`) und ein nicht gesetzter Parameter damit der leere Text ist. **Im Ein-Zustand des Schalters würde genau dieser Fall nicht mehr zurückfallen**, wenn `""` dort als echter Wert gilt. Die Vorgabe Aus deckt den Fall weiter ab, aber die Frage, was „wirklich nichts" genau heißt, entscheidet, ob der Schalter für Texte überhaupt brauchbar ist.
## Rückfragen
1. **Was ist im Ein-Zustand leer?**
a) Nur `null` bzw. kein Objekt und ein unverbundener Eingang. `""`, leere Liste und leerer Struct sind echte Werte. (Das ist deine Formulierung wörtlich genommen.)
b) Wie a), aber ein leerer Text, eine leere Liste und ein Struct ohne Felder zählen weiter als leer — leer bleibt „nichts da", nur `0` und `false` werden zu echten Werten. (Damit bliebe der Animations-Fall auch im Ein-Zustand heil.)
2. **Wie heißt der Schalter im Inspector?** Vorschlag: `Only null counts as empty` (Aus = Vorgabe). Alternativ eine Auswahl mit zwei Stufen statt einer Checkbox: `Any empty value` / `Only nothing`.
3. **Mehr als zwei Eingänge?** `a`, `b`, `c` … wachsen mit, sobald der letzte belegt ist, wie bei `Sequence` (`derivePorts`). Dann braucht eine Kette aus drei Rückfällen nur einen Node statt zwei. Soll das mit hinein, oder bleibt es bei zwei Eingängen?
## Umfang
- `isEmptyValue` in `src/core/graph/values.ts` bekommt eine Stufe als zweites Argument.
- `FirstNotEmpty` bekommt den Parameter und reicht ihn durch.
- Unit-Fälle in der Katalog-Tabelle für beide Stufen.
- Wiki *Behaviors*, Zeile der Node-Liste.
tristate/dropdown (state wie jetzt - wie bisher, state 2 - "b)", state 3 = "a)")
passend zu 1.
meehr eingänge brauchen wir nicht, lassen wir bei den 2 die wir haben
1. tristate/dropdown (state wie jetzt - wie bisher, state 2 - "b)", state 3 = "a)")
2. passend zu 1.
3. meehr eingänge brauchen wir nicht, lassen wir bei den 2 die wir haben
admin
added this to the Development project 2026-09-22 20:16:01 +02:00
admin
moved this to Next in Development on 2026-09-22 20:16:03 +02:00
Der Node hat jetzt den Parameter Empty means mit den drei Stufen aus deiner Antwort:
Stufe
Was als leer gilt
Any empty value (Vorgabe, wie bisher)
nichts da, 0, "", false, leere Liste, Struct mit nur leeren Feldern (also auch Position (0,0))
Nothing there (0 and false count)
nichts da, leerer Text, leere Liste, leerer Struct. 0 und false sind echte Werte, Position (0,0) ebenso
Only a missing value
nur, wenn gar nichts ankommt. "", leere Liste und leerer Struct sind echte Werte
Entscheidungen:
Die Vorgabe ist Any empty value, bestehende Graphen verhalten sich unverändert — auch der Aufbau mit einem nicht gesetzten Behavior-Parameter, der als leerer Text ankommt.
Mehr Eingänge (a, b, c …) gibt es wie gewünscht nicht, es bleibt bei zwei.
Die Regel steckt in isEmptyValue(value, mode) (src/core/graph/values.ts), der Node reicht die Stufe nur durch. Eine unbekannte Einstellung verhält sich wie die Vorgabe, genau wie bei Compare.
Die Node-Beschreibung ist kürzer, weil die alte im Inspector abgeschnitten wurde.
Befund: In der Stufe Nothing there ist ein Struct nur dann leer, wenn seine Felder nach derselben Stufe leer sind — eine Position (0,0) bleibt damit ein echter Wert.
9 neue Unit-Fälle in der Katalog-Tabelle: je Stufe die Grenzfälle (0, false, leerer Text, leere Liste, Position (0,0), unverbundenes a) plus „unbekannte Einstellung = Vorgabe“.
Zwei Gegenproben greifen: Lässt man Nothing there wie Any wirken, fallen genau die 3 Fälle mit 0/false/Position; nimmt man die Stufe Only a missing value heraus, fallen die 2 Fälle mit leerem Text und leerer Liste. Originale danach zurückgeholt und neu gebaut.
Im Browser angesehen: Der Node zeigt „Empty means: Any empty value“, das Dropdown im Inspector listet alle drei Stufen.
Kein e2e-Check — einzelne Data-Nodes haben hier keine e2e-Abdeckung, die Check-Summe bleibt bei 1293 (gerechnet).
Auf den CI-Lauf zu 1a3babf wurde nicht gewartet.
Umgesetzt in `1a3babf`, Wiki in `a526c0b`.
Der Node hat jetzt den Parameter **`Empty means`** mit den drei Stufen aus deiner Antwort:
| Stufe | Was als leer gilt |
|---|---|
| **Any empty value** (Vorgabe, wie bisher) | nichts da, `0`, `""`, `false`, leere Liste, Struct mit nur leeren Feldern (also auch Position (0,0)) |
| **Nothing there (0 and false count)** | nichts da, leerer Text, leere Liste, leerer Struct. `0` und `false` sind echte Werte, Position (0,0) ebenso |
| **Only a missing value** | nur, wenn gar nichts ankommt. `""`, leere Liste und leerer Struct sind echte Werte |
Entscheidungen:
- Die Vorgabe ist `Any empty value`, bestehende Graphen verhalten sich unverändert — auch der Aufbau mit einem nicht gesetzten Behavior-Parameter, der als leerer Text ankommt.
- Mehr Eingänge (`a`, `b`, `c` …) gibt es wie gewünscht nicht, es bleibt bei zwei.
- Die Regel steckt in `isEmptyValue(value, mode)` (`src/core/graph/values.ts`), der Node reicht die Stufe nur durch. Eine unbekannte Einstellung verhält sich wie die Vorgabe, genau wie bei `Compare`.
- Die Node-Beschreibung ist kürzer, weil die alte im Inspector abgeschnitten wurde.
Befund: In der Stufe `Nothing there` ist ein Struct nur dann leer, wenn seine Felder nach derselben Stufe leer sind — eine Position (0,0) bleibt damit ein echter Wert.
Tests:
```
./check.sh → 142 Files, 2113 Tests, CHECK EXIT 0 (vorher 2104)
npm run build → BUILD EXIT 0
```
- 9 neue Unit-Fälle in der Katalog-Tabelle: je Stufe die Grenzfälle (`0`, `false`, leerer Text, leere Liste, Position (0,0), unverbundenes `a`) plus „unbekannte Einstellung = Vorgabe“.
- Zwei Gegenproben greifen: Lässt man `Nothing there` wie `Any` wirken, fallen genau die 3 Fälle mit `0`/`false`/Position; nimmt man die Stufe `Only a missing value` heraus, fallen die 2 Fälle mit leerem Text und leerer Liste. Originale danach zurückgeholt und neu gebaut.
- Im Browser angesehen: Der Node zeigt „Empty means: Any empty value“, das Dropdown im Inspector listet alle drei Stufen.
- **Kein e2e-Check** — einzelne Data-Nodes haben hier keine e2e-Abdeckung, die Check-Summe bleibt bei 1293 (gerechnet).
- Auf den CI-Lauf zu `1a3babf` wurde nicht gewartet.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Der Node
First not empty(#205) bekommt einen Parameter, der festlegt, was als leer gilt.Der Schalter
(Entscheidung im Chat, 2026-09-22)
0,"",false, leere Liste, Struct mit nur leeren Feldern.0,falseund ein leerer Text sind dann echte Werte und werden durchgereicht.Die Vorgabe ist Aus, bestehende Graphen verhalten sich also unverändert.
Warum
Bei Zahlen ist „
0ist leer" irgendwann im Weg:0Schaden,0Geschwindigkeit oderfalseals Schalter sind echte Werte, die nicht überschrieben werden sollen.Befund, der die Entscheidung unten betrifft
Der Anlassfall aus dem Chat (Behavior-Parameter
Animationmit Variable als Rückfall) funktioniert nur, weil eine Animation als Text reist (kinds.ts,travels: 'string',empty: '') und ein nicht gesetzter Parameter damit der leere Text ist. Im Ein-Zustand des Schalters würde genau dieser Fall nicht mehr zurückfallen, wenn""dort als echter Wert gilt. Die Vorgabe Aus deckt den Fall weiter ab, aber die Frage, was „wirklich nichts" genau heißt, entscheidet, ob der Schalter für Texte überhaupt brauchbar ist.Rückfragen
Was ist im Ein-Zustand leer?
a) Nur
nullbzw. kein Objekt und ein unverbundener Eingang."", leere Liste und leerer Struct sind echte Werte. (Das ist deine Formulierung wörtlich genommen.)b) Wie a), aber ein leerer Text, eine leere Liste und ein Struct ohne Felder zählen weiter als leer — leer bleibt „nichts da", nur
0undfalsewerden zu echten Werten. (Damit bliebe der Animations-Fall auch im Ein-Zustand heil.)Wie heißt der Schalter im Inspector? Vorschlag:
Only null counts as empty(Aus = Vorgabe). Alternativ eine Auswahl mit zwei Stufen statt einer Checkbox:Any empty value/Only nothing.Mehr als zwei Eingänge?
a,b,c… wachsen mit, sobald der letzte belegt ist, wie beiSequence(derivePorts). Dann braucht eine Kette aus drei Rückfällen nur einen Node statt zwei. Soll das mit hinein, oder bleibt es bei zwei Eingängen?Umfang
isEmptyValueinsrc/core/graph/values.tsbekommt eine Stufe als zweites Argument.FirstNotEmptybekommt den Parameter und reicht ihn durch.Umgesetzt in
1a3babf, Wiki ina526c0b.Der Node hat jetzt den Parameter
Empty meansmit den drei Stufen aus deiner Antwort:0,"",false, leere Liste, Struct mit nur leeren Feldern (also auch Position (0,0))0undfalsesind echte Werte, Position (0,0) ebenso"", leere Liste und leerer Struct sind echte WerteEntscheidungen:
Any empty value, bestehende Graphen verhalten sich unverändert — auch der Aufbau mit einem nicht gesetzten Behavior-Parameter, der als leerer Text ankommt.a,b,c…) gibt es wie gewünscht nicht, es bleibt bei zwei.isEmptyValue(value, mode)(src/core/graph/values.ts), der Node reicht die Stufe nur durch. Eine unbekannte Einstellung verhält sich wie die Vorgabe, genau wie beiCompare.Befund: In der Stufe
Nothing thereist ein Struct nur dann leer, wenn seine Felder nach derselben Stufe leer sind — eine Position (0,0) bleibt damit ein echter Wert.Tests:
0,false, leerer Text, leere Liste, Position (0,0), unverbundenesa) plus „unbekannte Einstellung = Vorgabe“.Nothing therewieAnywirken, fallen genau die 3 Fälle mit0/false/Position; nimmt man die StufeOnly a missing valueheraus, fallen die 2 Fälle mit leerem Text und leerer Liste. Originale danach zurückgeholt und neu gebaut.1a3babfwurde nicht gewartet.