Ethanfel
bf46f9b389
Fail closed on duplicate nodes and observed input types
2026-07-02 18:08:48 +02:00
Ethanfel
3219ec0c39
Track starred collection aliases in static extraction
2026-07-02 17:59:53 +02:00
Ethanfel
c6d2b2d645
Invalidate mapped classes on signature attribute observation
2026-07-02 17:53:04 +02:00
Ethanfel
07822bc3ec
Fail closed on arbitrary static extraction calls
2026-07-02 17:47:11 +02:00
Ethanfel
79d9921ba6
Track starred unpack aliases in static extraction
2026-07-02 17:37:06 +02:00
Ethanfel
5844a0a433
Track namespace-derived class aliases
2026-07-02 17:30:00 +02:00
Ethanfel
b560f238a1
Cover type parameter class extraction hazards
2026-07-02 17:23:58 +02:00
Ethanfel
7c4b83ed0e
Track namespace and getattr aliases
2026-07-02 17:19:07 +02:00
Ethanfel
065c9ae7ec
Skip nontrivial class creation signatures
2026-07-02 17:12:50 +02:00
Ethanfel
34e53e8692
Invalidate namespace lookup mutations
2026-07-02 17:07:25 +02:00
Ethanfel
97e0126a1d
Detect getattr mutating method calls
2026-07-02 17:01:08 +02:00
Ethanfel
2ad3cd3a09
Invalidate dynamic namespace mutations
2026-07-02 16:55:52 +02:00
Ethanfel
d1f49e7c95
Track mapping and class attribute aliases
2026-07-02 16:47:39 +02:00
Ethanfel
f26e441e03
Fail closed on invalid node mapping keys
2026-07-02 16:39:06 +02:00
Ethanfel
2c9452ae67
Fail closed on invalid display mappings
2026-07-02 16:35:19 +02:00
Ethanfel
7e4e85a0bd
Fail closed on dynamic patches and displays
2026-07-02 16:27:48 +02:00
Ethanfel
9752248ee9
Track unpacked and class attribute aliases
2026-07-02 16:12:32 +02:00
Ethanfel
05fa411d47
Fail closed on walrus bindings and invalid input sections
2026-07-02 16:00:05 +02:00
Ethanfel
f5d72b494d
Fail closed on decorated input types and nested aliases
2026-07-02 15:47:17 +02:00
Ethanfel
86ea12924c
Invalidate mappings on duplicate keys and class aliases
2026-07-02 15:34:50 +02:00
Ethanfel
51db0d16e5
Skip decorated and patched mapped classes
2026-07-02 15:19:22 +02:00
Ethanfel
fc92d1db24
Invalidate static extraction for exception and type alias bindings
2026-07-02 15:08:19 +02:00
Ethanfel
8f872baf0b
Invalidate inputs from class definition-time mutations
2026-07-02 14:56:13 +02:00
Ethanfel
317788572e
Detect definition-time mutating expressions
2026-07-02 14:50:03 +02:00
Ethanfel
65c3a57052
Resolve node mappings at assignment time
2026-07-02 14:40:16 +02:00
Ethanfel
45e3cbaad8
Detect mutating calls inside statements
2026-07-02 14:29:04 +02:00
Ethanfel
6c2653c803
Fail closed on final input bindings and transitive aliases
2026-07-02 14:18:38 +02:00
Ethanfel
99d2bb25da
Fail closed on mutable module captures in class signatures
2026-07-02 14:09:07 +02:00
Ethanfel
034e07269d
Fail closed on class alias mutations
2026-07-02 13:58:58 +02:00
Ethanfel
bebd4e09aa
Resolve input and class attribute environments correctly
2026-07-02 13:53:45 +02:00
Ethanfel
67b875cdd5
Require mapped classes to remain top-level bindings
2026-07-02 13:45:45 +02:00
Ethanfel
90b7e3e872
Fail closed on invalid return name declarations
2026-07-02 13:34:13 +02:00
Ethanfel
0456e8033a
Fail closed on invalid return names
2026-07-02 13:29:51 +02:00
Ethanfel
479a70f377
Evaluate class signatures with definition-time env
2026-07-02 13:24:02 +02:00
Ethanfel
c8c1205bde
Skip extraction after wildcard imports
2026-07-02 13:14:16 +02:00
Ethanfel
b2b1bd16bd
Invalidate static extraction on nested wildcard imports
2026-07-02 13:06:51 +02:00
Ethanfel
2845daf90c
Invalidate static extraction on annotated aliases and wildcard imports
2026-07-02 12:58:24 +02:00
Ethanfel
fae0c312bc
Invalidate static extraction on rebinding and alias mutation
2026-07-02 12:50:06 +02:00
Ethanfel
21a29b8846
Invalidate static extraction on deletion and mutation
2026-07-02 12:39:38 +02:00
Ethanfel
6be0fe9d1e
Fail closed on dynamic node mapping extraction
2026-07-02 12:29:27 +02:00
Ethanfel
6a4617f002
Fail closed on dynamic static extraction inputs
2026-07-02 12:23:09 +02:00
Ethanfel
960c41b330
Harden static signature extraction
2026-07-02 12:13:50 +02:00
Ethanfel
669f209930
Add popular node signature extractor
2026-07-02 12:06:19 +02:00
Ethanfel
bf2f6f3b95
Respect serialized input names over generated signatures
2026-07-02 11:56:28 +02:00
Ethanfel
9c17083298
Harden generated signature matching
2026-07-02 11:47:07 +02:00
Ethanfel
38c142d42e
Use generated signatures for missing node matching
2026-07-02 11:38:49 +02:00
Ethanfel
8c45016c00
Add generated signature loader
2026-07-02 11:29:54 +02:00
Ethanfel
55e59f5e1d
Add popular node signature implementation plan
2026-07-02 11:23:29 +02:00
Ethanfel
fef2b8b7f1
Add popular node signature design
2026-07-02 11:09:37 +02:00
Ethanfel
cc728eb50b
Support uninstalled / missing nodes
...
Previously the index was built only from the live registry, so a custom node
that wasn't installed (a red "missing" node in a downloaded workflow) was
invisible — the main point of the tool. Now:
- Backend: utfcn_core split into build_context / build_index / match. build_index
also emits curated candidates for uninstalled source types (curated-only), and
a new POST /utfcn/match matches missing nodes by their serialized signature
against installed core/other-pack nodes.
- Frontend: nodeType() reads a missing placeholder's last_serialization.type;
matchMissing() feeds serialized slots to /utfcn/match and merges the results;
the right-click item moved to a canvas-level getNodeMenuOptions patch so it
reaches missing placeholders too. Bulk dialog labels them "not installed".
Replace a missing node with core without installing its pack. Links are rewired
losslessly; widget values can't be carried for a node whose def is absent.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-07-02 10:43:13 +02:00