Julien Calixte
32498d51d1
fix(editor): render the palette above the loop-badge overlay
2026-06-20 10:13:21 +02:00
Julien Calixte
cd276d9d2a
feat(editor): add glossary tooltips to the palette
2026-06-20 10:08:30 +02:00
Julien Calixte
e1efa3c823
feat(editor): gloss the selected element in a panel
2026-06-20 10:08:30 +02:00
Julien Calixte
6815b81701
fix(editor): fit the view after loaded nodes are measured
2026-06-20 10:07:59 +02:00
Julien Calixte
5e50b2dfd4
feat(model): add node and link glossary definitions
2026-06-20 10:05:58 +02:00
Julien Calixte
72ef29413a
feat(editor): wire autosave and add JSON import/export
2026-06-20 10:02:42 +02:00
Julien Calixte
75ebb39848
feat(editor): add debounced model autosave composable
2026-06-20 10:01:44 +02:00
Julien Calixte
4c55ff9ffa
feat(model): add IndexedDB-backed model repository
2026-06-20 10:01:44 +02:00
Julien Calixte
9f71febca0
feat(model): round-trip models as versioned JSON
2026-06-20 10:01:43 +02:00
Julien Calixte
bc90a9bca9
fix(editor): keep loop badges on nodes while dragging
...
Badge centroids now read Vue Flow's live computedPosition instead of the
store, which commits positions only on drop — so badges no longer lag a
node drag. Centres use real node dimensions, dropping the hard-coded nudge.
2026-06-20 09:42:37 +02:00
Julien Calixte
d3119e8a20
feat(editor): wire the canvas and mount the editor
2026-06-20 09:37:50 +02:00
Julien Calixte
03848ae893
feat(editor): add node, edge, palette, and loop-overlay components
2026-06-20 09:37:42 +02:00
Julien Calixte
0416581799
feat(editor): add shared loop-highlight state
2026-06-20 09:37:32 +02:00
Julien Calixte
0aaa4114d9
feat(store): add model store with snapshot undo/redo and loops
2026-06-20 09:37:32 +02:00
Julien Calixte
6d03d706a0
feat(model): add a gallery of sample models
2026-06-20 09:37:32 +02:00
Julien Calixte
5c3f467a24
feat(model): detect and classify feedback loops
...
Loops are derived from the wiring, never stored (ADR-0001): a signed
graph (link polarities plus flows' inherent inflow/outflow) is searched
with Tarjan SCC and a capped enumeration, classifying each cycle R or B
by the parity of its negative links. Both the result count and the
search are bounded so detection can never blow the frame budget.
2026-06-20 09:37:26 +02:00
Julien Calixte
fd94a8b7ed
feat(model): guard connections to preserve valid structure
2026-06-20 09:37:19 +02:00
Julien Calixte
8fac6f4694
feat(model): project the model into a Vue Flow graph
2026-06-20 09:37:19 +02:00
Julien Calixte
95990b0d1f
feat(model): add domain types and model factory
2026-06-20 09:37:18 +02:00
Julien Calixte
68a8c303d9
chore: initial scaffold
2026-06-20 01:28:32 +02:00