Node-Palette: Treffer im Namen vor Treffern in der Beschreibung ziehen.
Stand: sortiert wird nach Kategorie, dann alphabetisch; gesucht wird auch in Typ und Beschreibung. Suche "variable" + Enter landet deshalb auf Run behavior (Kategorie flow, Beschreibung enthält "variables"), nicht auf Variables.
Übernommen aus todo-notes/palette-exact-match.md beim Umzug auf das Issue-System (2026-09-12).
Angelegt: 2026-09-11 · bf41919 — Add todo notes for the next round of features, gaps and upkeep
Gemeldet von: Claude (Assistent)
Node-Palette: Treffer im Namen vor Treffern in der Beschreibung ziehen.
Stand: sortiert wird nach Kategorie, dann alphabetisch; gesucht wird auch in Typ und Beschreibung. Suche "variable" + Enter landet deshalb auf `Run behavior` (Kategorie flow, Beschreibung enthält "variables"), nicht auf `Variables`.
---
*Übernommen aus `todo-notes/palette-exact-match.md` beim Umzug auf das Issue-System (2026-09-12).*
- **Angelegt:** 2026-09-11 · `bf41919` — Add todo notes for the next round of features, gaps and upkeep
- **Gemeldet von:** Claude (Assistent)
außerdem könnte man gleich die sortierung beim "+ Assetmenü" machen:
was auch noch gut wäre: die maximale größe von allen dropdown nix fix sondern bis zur gesamt canvashöhe nach unten mit ein bisschen bottom margin.
außerdem könnte man gleich die sortierung beim "+ Assetmenü" machen:
<img width="635" alt="image.png" src="attachments/29a3bf48-778e-46a5-bd4b-5564d62729f2">
was auch noch gut wäre: die maximale größe von allen dropdown nix fix sondern bis zur gesamt canvashöhe nach unten mit ein bisschen bottom margin.
1 · Palette exact match — die Rangfolge steckt jetzt in src/ui/search.ts (searchRank) und wird in paletteEntries.rankedEntries() angewandt: exakter Treffer auf Label oder Typ, dann Präfix auf dem Label, dann Label enthält, dann Typ, und ganz zuletzt ein Treffer, der nur in der Beschreibung steckt. Kategorie und Alphabet sortieren nur noch innerhalb eines Rangs. variable + Enter landet damit auf Variable statt auf Run behavior. Dasselbe searchRank benutzt das suchbare Menu, damit "suchen" im Editor überall dasselbe heißt.
2 · +-Menü sortiert — assetMenuGroups() (src/editor/panels/assetMenu.ts) liefert zwei alphabetische Gruppen mit Trennlinie dazwischen: erst die Typen, die in einer Szene landen, dann die, die in der Bibliothek bleiben — die Trennung, die isPlaceableType ohnehin schon zieht. ASSET_TYPES selbst bleibt unangetastet, das ist auch Serialisierungs- und Prüfreihenfolge. Eine Suche flacht die Gruppen ab und lässt die Linien weg.
3 · Höhe am Canvas statt an festen Zahlen — Popup.roomFor() misst das eigene Drumherum (Suchfeld, Kopf, Fußzeile, Padding) und nimmt die Fensterhöhe minus einem Zehntel an jedem Ende. Ersetzt die festen 320 (Menu), 260 (Palette) und 340 (Image-, Font-, Sound-Picker).
Die Platzierung klemmt dabei asymmetrisch: unten ist der Zehntel erzwungen, oben ist er nur Budget für die Höhe. Sonst würde ein Menü, das an einem Button nahe der Oberkante hängt, ins Band hinuntergeschoben und von seinem Button losgerissen — das +-Menü sitzt jetzt bei y = 71 direkt unter seinem Button statt bei 80.
Tests:npm run check grün, 85 Files / 1071 Tests (vorher 81 / 1050). Neu: tests/ui/search.test.ts, tests/ui/popup-placement.test.ts, tests/editor/palette-ranking.test.ts (gegen den echten Node-Katalog, inklusive des variable-Falls) und tests/editor/asset-menu.test.ts. Im Harness neu: __gm.menuRows() und __gm.graph.paletteRows() — hier ist die Reihenfolge die ganze Antwort, und keine Farbprüfung sieht eine Reihenfolge. Step 4 → 44 Checks, Step 6 → 105 Checks, beide grün.
Offen: der volle e2e-Lauf dreht noch; die Gesamtzahl in Development.md steht deshalb weiter auf 901 und wird nachgezogen, sobald der CI-Lauf auf 3b03938 seine Zahl liefert.
Umgesetzt in `3b03938`, Wiki in `779c850`.
**1 · Palette exact match** — die Rangfolge steckt jetzt in `src/ui/search.ts` (`searchRank`) und wird in `paletteEntries.rankedEntries()` angewandt: exakter Treffer auf Label oder Typ, dann Präfix auf dem Label, dann Label enthält, dann Typ, und ganz zuletzt ein Treffer, der nur in der Beschreibung steckt. Kategorie und Alphabet sortieren nur noch *innerhalb* eines Rangs. `variable` + Enter landet damit auf `Variable` statt auf `Run behavior`. Dasselbe `searchRank` benutzt das suchbare `Menu`, damit "suchen" im Editor überall dasselbe heißt.
**2 · `+`-Menü sortiert** — `assetMenuGroups()` (`src/editor/panels/assetMenu.ts`) liefert zwei alphabetische Gruppen mit Trennlinie dazwischen: erst die Typen, die in einer Szene landen, dann die, die in der Bibliothek bleiben — die Trennung, die `isPlaceableType` ohnehin schon zieht. `ASSET_TYPES` selbst bleibt unangetastet, das ist auch Serialisierungs- und Prüfreihenfolge. Eine Suche flacht die Gruppen ab und lässt die Linien weg.
**3 · Höhe am Canvas statt an festen Zahlen** — `Popup.roomFor()` misst das eigene Drumherum (Suchfeld, Kopf, Fußzeile, Padding) und nimmt die Fensterhöhe minus einem Zehntel an jedem Ende. Ersetzt die festen 320 (Menu), 260 (Palette) und 340 (Image-, Font-, Sound-Picker).
Die Platzierung klemmt dabei **asymmetrisch**: unten ist der Zehntel erzwungen, oben ist er nur Budget für die Höhe. Sonst würde ein Menü, das an einem Button nahe der Oberkante hängt, ins Band hinuntergeschoben und von seinem Button losgerissen — das `+`-Menü sitzt jetzt bei `y = 71` direkt unter seinem Button statt bei 80.
**Tests:** `npm run check` grün, 85 Files / 1071 Tests (vorher 81 / 1050). Neu: `tests/ui/search.test.ts`, `tests/ui/popup-placement.test.ts`, `tests/editor/palette-ranking.test.ts` (gegen den echten Node-Katalog, inklusive des `variable`-Falls) und `tests/editor/asset-menu.test.ts`. Im Harness neu: `__gm.menuRows()` und `__gm.graph.paletteRows()` — hier ist die *Reihenfolge* die ganze Antwort, und keine Farbprüfung sieht eine Reihenfolge. Step 4 → 44 Checks, Step 6 → 105 Checks, beide grün.
Offen: der volle e2e-Lauf dreht noch; die Gesamtzahl in `Development.md` steht deshalb weiter auf 901 und wird nachgezogen, sobald der CI-Lauf auf `3b03938` seine Zahl liefert.
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.
Node-Palette: Treffer im Namen vor Treffern in der Beschreibung ziehen.
Stand: sortiert wird nach Kategorie, dann alphabetisch; gesucht wird auch in Typ und Beschreibung. Suche "variable" + Enter landet deshalb auf
Run behavior(Kategorie flow, Beschreibung enthält "variables"), nicht aufVariables.Übernommen aus
todo-notes/palette-exact-match.mdbeim Umzug auf das Issue-System (2026-09-12).bf41919— Add todo notes for the next round of features, gaps and upkeepaußerdem könnte man gleich die sortierung beim "+ Assetmenü" machen:
was auch noch gut wäre: die maximale größe von allen dropdown nix fix sondern bis zur gesamt canvashöhe nach unten mit ein bisschen bottom margin.
Umgesetzt in
3b03938, Wiki in779c850.1 · Palette exact match — die Rangfolge steckt jetzt in
src/ui/search.ts(searchRank) und wird inpaletteEntries.rankedEntries()angewandt: exakter Treffer auf Label oder Typ, dann Präfix auf dem Label, dann Label enthält, dann Typ, und ganz zuletzt ein Treffer, der nur in der Beschreibung steckt. Kategorie und Alphabet sortieren nur noch innerhalb eines Rangs.variable+ Enter landet damit aufVariablestatt aufRun behavior. DasselbesearchRankbenutzt das suchbareMenu, damit "suchen" im Editor überall dasselbe heißt.2 ·
+-Menü sortiert —assetMenuGroups()(src/editor/panels/assetMenu.ts) liefert zwei alphabetische Gruppen mit Trennlinie dazwischen: erst die Typen, die in einer Szene landen, dann die, die in der Bibliothek bleiben — die Trennung, dieisPlaceableTypeohnehin schon zieht.ASSET_TYPESselbst bleibt unangetastet, das ist auch Serialisierungs- und Prüfreihenfolge. Eine Suche flacht die Gruppen ab und lässt die Linien weg.3 · Höhe am Canvas statt an festen Zahlen —
Popup.roomFor()misst das eigene Drumherum (Suchfeld, Kopf, Fußzeile, Padding) und nimmt die Fensterhöhe minus einem Zehntel an jedem Ende. Ersetzt die festen 320 (Menu), 260 (Palette) und 340 (Image-, Font-, Sound-Picker).Die Platzierung klemmt dabei asymmetrisch: unten ist der Zehntel erzwungen, oben ist er nur Budget für die Höhe. Sonst würde ein Menü, das an einem Button nahe der Oberkante hängt, ins Band hinuntergeschoben und von seinem Button losgerissen — das
+-Menü sitzt jetzt beiy = 71direkt unter seinem Button statt bei 80.Tests:
npm run checkgrün, 85 Files / 1071 Tests (vorher 81 / 1050). Neu:tests/ui/search.test.ts,tests/ui/popup-placement.test.ts,tests/editor/palette-ranking.test.ts(gegen den echten Node-Katalog, inklusive desvariable-Falls) undtests/editor/asset-menu.test.ts. Im Harness neu:__gm.menuRows()und__gm.graph.paletteRows()— hier ist die Reihenfolge die ganze Antwort, und keine Farbprüfung sieht eine Reihenfolge. Step 4 → 44 Checks, Step 6 → 105 Checks, beide grün.Offen: der volle e2e-Lauf dreht noch; die Gesamtzahl in
Development.mdsteht deshalb weiter auf 901 und wird nachgezogen, sobald der CI-Lauf auf3b03938seine Zahl liefert.