Breaking
- db v4 schema: 'num_gates' renamed to 'feeders_per_root'; dropped
  'valid', 'is_normalized', 'stuntC'. migrate.py accepts v2 and v3.

Highlights
- OR-Tools MILP backend switched to MathOpt API (unified wrapper).
- Pyomo CPLEX/Gurobi switched to persistent interfaces.
- PathFinder: 'A' now mandatory; improved heuristics and defaults.
- LKH: capacity-violation-triggered iterations; new 'warmstart' arg.
- Better pre-optimization estimate of obstructed feeder lengths.
- Context-managed database connection API with 'timeout' argument.
- CI matrix on Python 3.11-3.14 (default 3.14).

Fixes
- Numerous PathFinder and make_planar_embedding robustness fixes.
- validate_routeset detour-range and touchpoint corrections.
- SQLite WAL mode removed (issues on shared clusters).
- Stunt vertices no longer placed in G.
- migrate.py ImportError fixed.