Wire scripts/lib/agent-proximity/ and the #3028 coordination inventory into
the control pane as one read-only live view, ecc.control-plane.view.v1,
shaped as tasks, lanes and events.
- agent-proximity/projection.js: rolling z-score per channel, tails clipped
at the 2.5th and 97.5th percentile, mapped back to [0, 1], static channel
weights, PCA (Jacobi on the 3x3 covariance) over x_tree, x_overlap, x_dep.
Raw mode until the window holds 8 samples. No runtime dependencies.
- agent-proximity/index.js: airspace links now carry the per-channel values.
- agent-proximity/distance.js: rightOfWay(a, b) extracted from advise().
- control-pane/proximity.js: snapshot includes agent summaries (files,
progress, startedAt) so the view can join sessions to working sets.
- control-pane/control-plane-view.js: builds the view from the snapshot;
advisory events derived from every pair link against the view's static
thresholds (ta 0.35, ra 0.7), deterministic ids, steer/hold from
rightOfWay; lease conflicts from the inventory as events; inventory
manifest built from live sessions with sanitized ids, declared-only.
- control-pane/server.js: GET /control-plane (self-contained page with the
2D canvas), GET /api/control-plane, GET /api/control-plane/events; one
projection window per server so z-scores roll across polls.
- docs/control-plane/VIEW-CONTRACT.md: the task/lane/event contract for
reuse by the Ito ops control plane.
- docs/control-plane/TCAS-HOOK.md: design for slice (b), not implemented.
The view does not acquire leases, steer or pause agents, and claims no
conflict-reduction number.