Add pyproject.toml with runtime and dev dependency groups plus a uv.lock, replacing requirements.txt and pytest.ini. Update the Makefile and README to use uv (sync/run/test).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Add an internal clipboard on the controller with undoable macro paste, and
Copy/Paste menu actions and shortcuts in the main window. Covered by a test.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Add left node-library dock (grouped, searchable, drag-and-drop vector
symbols), right property dock with type-aware grouped editors (incl.
geometry, catalogue single/multi, color, value list), zoom/pan/fit canvas
view accepting node drops, flow animator, configuration dialog, and the
MainWindow wiring menus/toolbar, undo/redo, delete/duplicate, calculate
flow, save/open (JSON), and PNG/SVG export. Includes a demo sample network,
entry points, and panel + app integration tests.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Add the QGraphicsView layer: NodeItem (SVG symbol + title + draggable,
snap-to-grid), PortItem (relation-colored anchors with compatibility
hints), EdgeItem (orthogonal routing, arc hops on crossings, line styles,
head/tail decorations, animated flow dashes), and DiagramScene binding the
document to items with edge-drawing interaction and a grid background.
Add EditorController with a QUndoStack (add/connect/delete/move/edit) and
scene interaction tests.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Add observable AppConfig (grid/snap/arc-on-crossing/animation/theme),
pure-geometry orthogonal router with grid-snapped bends and perpendicular
crossing detection for arc hops, and a mock flow-distribution solver that
pushes supply to demand along shortest paths and records signed per-edge
flow and direction. Covered by routing and flow-solver tests.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Add UI-agnostic model layer: typed grouped properties (string/int/float/
bool/enum/color/catalogue item(s)/value list), catalogue registry, port
relations with color schemes and compatibility rules, ports, node/edge
models, and DiagramDocument with change signals and JSON round-trip.
Include a starter node library (source/tank/pump/valve/junction/consumer/
transformer) with matching SVG symbols, plus model+document tests.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Set up PyQt6 + QGraphicsView pipeline-editor skeleton, requirements,
pytest headless config, and the actionable implementation plan under
docs/plan.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>