feat(ai-editor): graph-scoped subgraph nodes + explorer DnD + export pruning - #12
Merged
Conversation
…t sync
The entry node inside a subgraph now exposes the signature's value_inputs
as value_outputs, and the symmetric exit node receives flow_outputs and
value_outputs as inputs. Both are registered per-graph under stable type
names (graph:entry, graph:exit) matching the runtime in evo-hl-library
feat/subgraphes.
Editing a graph signature applies a slot diff in place: added/removed
slots are reflected on the entry/exit nodes and (on next reopen) on
every AISubGraphNode consumer in other graphs. Renaming/type-change
loses links (no stable id v1).
export_omnissiah now produces the {value_inputs, value_outputs,
flow_outputs, nodes} shape consumed by GraphLoader.partially_load_graph.
…t fixes
Explorer DnD:
- Native HTML5 drag-and-drop on entries with a custom MIME
(application/x-explorer-entry) so stray drags from outside the app
don't get interpreted as reorder.
- New graph_reordered_event on Project; explorer subscribes and
rerenders entries in the new order.
- reorder_subgraph_types on AINodeTypes: replaces the subgraph slice
while preserving atomic node types from node_types.json5.
- Numeric slot connections accepted across float/int variants
(NUMERIC_SLOT_TYPES override of LiteGraph.isValidConnection).
- Hide widgets on inputs that get connected
(AIGraphNode.onConnectionsChange).
- Apply signature to entry/exit nodes when refreshing subgraph nodes.
Export fixes (orthogonal but shipping in the same commit):
- Don't recurse signature on re-export of a closed graph: omnissiah_data
is already the full {value_inputs, value_outputs, flow_outputs, nodes}
blob, only the .nodes map belongs in the new export's nodes.
- Map subgraph/<name> to graph:call:<name> at export time. The editor
uses subgraph/ as a menu category; the lib registers call nodes as
graph:call:<name>. AISubGraphNode.export() does the translation so
the in-editor type stays for menu grouping.
…raph data Editor data drifts away from the lib-canonical export shape over the course of normal editing: deleted nodes leave dangling links, wired inputs leave widget values null, slot replugs leave flow↔value mismatches, and the in-editor 'subgraph/<name>' / ':in' conventions diverge from the lib's 'graph:call:<name>' / ':flow'. Exporting any of these tripped the omnissiah-side ConfigValidationError. Add a single export-time pass that: - maps subgraph/<name> → graph:call:<name> on both opened and unopened graphs (canonicalize the omnissiah_data re-export path symmetrically), - remaps subgraph flow input 'in' → 'flow' on links, - omits null/undefined value inputs so the lib falls back to type defaults, - drops links pointing to non-existent nodes (with console.warn), - drops cross-type slot links (flow→value or vice-versa), with the validation living in prune_invalid_node_data so opened and unopened graphs are checked uniformly via a slot-type resolver that knows static node types, graph signatures, and graph:call: subgraph signatures.
TheCrabe
force-pushed
the
feat/explorer-reorder
branch
from
May 3, 2026 15:14
598dcb9 to
832d059
Compare
TheCrabe
marked this pull request as ready for review
May 4, 2026 22:20
kolte200
approved these changes
May 5, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stack
Parallel (independent): #10 ll-app-initializer.
Changes