Context
Tree line A3 of the #13158 map. Tours (#14640) and e2e (#14591) assert layout mutations by comparing topologies; today that means each consumer hand-rolls deep-diff logic over the dockZone.v1 document — N copies of one algorithm is the drift machine.
The Problem
Raw document equality is too strict (irrelevant field churn) and too loose (a moved item can leave equal-sized trees). Assertions need SEMANTIC diffs: items moved/added/removed, splits resized beyond epsilon, tabs reordered, auto-hide flips — in a stable, snapshot-friendly shape.
The Architectural Reality
Pure module beside the reducer (src/dashboard/ sibling — structural-pre-flight fast-path): diffDockDocuments(before, after) → {moves, adds, removes, resizes, tabReorders, autoHideFlips, unchanged} — JSON-first output, deterministic ordering (snapshot-stable). Exposed to agents as a read-tier NL tool (diff_dock_topology) via the established two-hemisphere pattern + parity contracts. The tour-runner's topology-assert step upgrades to predicate-on-diff.
The Fix
One PR: the pure differ + unit specs (every category + epsilon behavior + determinism) + the NL read tool (both hemispheres + parity fixtures) + the tour-runner assert-step upgrade note (consumed there, not implemented there).
Acceptance Criteria
Out of Scope
Consumer upgrades (#14640/#14591 adopt in their own leaves) · visual diff rendering.
Related
Parent #13158 (line A3) · consumes dockZone.v1 document shape · consumed by #14640/#14591. Sweeps: latest-10 at 03:31Z clean; map line unclaimed.
Origin Session ID: fa2a6fd5-7488-4af6-a0d2-3855c86003e4
Retrieval Hint: "dock topology diff semantic categories deterministic"
Context
Tree line A3 of the #13158 map. Tours (#14640) and e2e (#14591) assert layout mutations by comparing topologies; today that means each consumer hand-rolls deep-diff logic over the dockZone.v1 document — N copies of one algorithm is the drift machine.
The Problem
Raw document equality is too strict (irrelevant field churn) and too loose (a moved item can leave equal-sized trees). Assertions need SEMANTIC diffs: items moved/added/removed, splits resized beyond epsilon, tabs reordered, auto-hide flips — in a stable, snapshot-friendly shape.
The Architectural Reality
Pure module beside the reducer (
src/dashboard/sibling — structural-pre-flight fast-path):diffDockDocuments(before, after) → {moves, adds, removes, resizes, tabReorders, autoHideFlips, unchanged}— JSON-first output, deterministic ordering (snapshot-stable). Exposed to agents as a read-tier NL tool (diff_dock_topology) via the established two-hemisphere pattern + parity contracts. The tour-runner'stopology-assertstep upgrades to predicate-on-diff.The Fix
One PR: the pure differ + unit specs (every category + epsilon behavior + determinism) + the NL read tool (both hemispheres + parity fixtures) + the tour-runner assert-step upgrade note (consumed there, not implemented there).
Acceptance Criteria
diff_dock_topologyread-tier tool live end-to-end; parity contracts green.Out of Scope
Consumer upgrades (#14640/#14591 adopt in their own leaves) · visual diff rendering.
Related
Parent #13158 (line A3) · consumes dockZone.v1 document shape · consumed by #14640/#14591. Sweeps: latest-10 at 03:31Z clean; map line unclaimed.
Origin Session ID: fa2a6fd5-7488-4af6-a0d2-3855c86003e4 Retrieval Hint: "dock topology diff semantic categories deterministic"