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>