11 Commits

Author SHA1 Message Date
Ilya Ashikhmin
58184d8691 build: add Makefile wrapping npm scripts
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-03 19:09:06 +02:00
Ilya Ashikhmin
e9351fbdf8 chore: ignore TypeScript build info artifacts 2026-07-02 23:41:37 +02:00
Ilya Ashikhmin
29ec717b47 docs: add README, screenshots and finalize plan checklist
Document features, stack and layout; mark completed milestones and list
deferred nice-to-haves; include verified Electron screenshots.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-02 23:41:19 +02:00
Ilya Ashikhmin
e43ace1853 feat(engine): canvas panning, wheel zoom and link editing tools
Drag empty space to pan, mouse-wheel to zoom, and selecting a link now
shows vertex/segment/arrowhead/remove tools so connectors can be rerouted
and deleted interactively.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-02 23:39:55 +02:00
Ilya Ashikhmin
8779c88e66 fix(engine): use Paper.setGrid runtime API instead of missing drawGrid
JointJS 4.2.5 has no drawGrid/clearGrid methods; calling them threw during
seedSample and blanked the renderer. Switch grid toggling to setGrid, which
also clears via setGrid(false).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-02 23:38:15 +02:00
Ilya Ashikhmin
e70ec822c9 test: cover domain, engine and controller scenarios; add headless mode
Add Vitest suites for relations, properties, catalogue, symbols, edge
styles, flow solver, settings, JointJS shapes/serialization and the
controller lifecycle (add/connect/edit/delete, undo-redo, copy-paste,
flow, save-load). Introduce headless DiagramController (Paper-less) so the
controller is testable outside a browser, and fix the flow direction sign.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-02 23:31:12 +02:00
Ilya Ashikhmin
e4783c31f2 feat(ui): React shell with stencil, property panel, toolbar and settings
Three-pane editor: searchable grouped symbol stencil with drag-drop,
typed/grouped property panel (string/int/float/enum/color/catalogue/list
editors), toolbar (file, undo/redo, edit, zoom, run-flow), settings dialog
(grid, snap, jumpover, color scheme, theme) and flow legend. Wires global
keyboard shortcuts and seeds a demo network.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-02 23:24:32 +02:00
Ilya Ashikhmin
4769412070 feat(engine): JointJS canvas controller with ports, routing and flow
Add custom SVG node element and styled links, grid-aligned manhattan
router with optional jumpover arcs, medium-based connection validation,
selection/highlighting, undo-redo history, copy/paste, settings, and a
marching-ants flow animator driven by the mock solver.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-02 23:18:36 +02:00
Ilya Ashikhmin
372c2c25c4 feat(domain): add relations, properties, catalogue, symbols and flow model
Pure, framework-free core: port media + color schemes with compatibility
rules, typed/grouped property model with coercion and validation,
catalogue store with physics seeds, SVG symbol registry with port layouts,
and a mass-conserving mock flow solver.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-02 23:13:45 +02:00
Ilya Ashikhmin
8a1d2d0da6 docs: add pipeline editor implementation plan
Records the library research (JointJS core chosen), tech stack, and a
milestone checklist covering nodes, ports, edges, properties, catalogue,
mock flow and editing UX.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-02 23:13:45 +02:00
Ilya Ashikhmin
dcfc0094e4 chore: scaffold Electron + Vite + React + TypeScript project
Set up electron-vite build (main/preload/renderer split), TypeScript
project references, Vitest config, and a secure preload bridge exposing
save/open diagram IPC.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-02 23:13:45 +02:00