Files
Dustin 9fb31dd7e0 v0.2.0-alpha: Dynamic input expansion and type detection (Phase 2)
Inputs grow/shrink dynamically based on connections (minimum 3, no maximum).
Output slot shows the detected type of the selected input instead of generic *.

- FlexibleOptionalInputType accepts undeclared inputs (input_04 through input_99)
- switch() iterates kwargs dynamically via regex (no hardcoded input range)
- VALIDATE_INPUTS bypasses server-side combo validation for dynamic dropdown
- Debounced stabilize cycle (64ms) orchestrates slot management and type detection
- Type detection walks LiteGraph connection graph (follows Reroute + chained DazzleSwitches)
- Output type label updates on dropdown change, connection change, and slot rename
- Label watcher via Object.defineProperty for live dropdown updates on rename
- Dropdown preserves user selection when selected input is disconnected
- Fix pre-commit hook regex: escape dots and add $ anchors (prevents false matches like "logic")
- Pre-push hook integration via run_tests.py
- 36 one-off tests (18 new for Phase 2)
- Example workflow: examples/DazzleSwitch-Test.json

Closes #4 (dynamic inputs)
Closes #5 (type detection)
Closes #3 (Phase 2 epic)

Design: 2026-02-23__04-11-22__phase2-dynamic-inputs-type-detection.md
Postmortem: 2026-02-23__05-31-13__full-postmortem_phase2-dynamic-inputs-type-detection.md
2026-02-23 05:44:39 -05:00
..