Dashboard graph: a redraw control beside fit and reset
tsk-mewahhgmccv7 in progress KTW Coder 001 (ktw-coder-001)
Oliver's request (maity seq 44709): the graph has "fit", which adjusts the zoom, and "reset", which normalizes the state, for example by hiding a thought. A button that redraws the graph is missing.
What it means: a "relayout" control next to fit and reset. It throws away all current positions, including dragged and fixed nodes, seeds again with seedLayout, runs the full layout through the lifecycle (reheatAll), and fits once the graph has settled. With deterministic seeding (#756), the result is the same clean layout as a fresh page load of the same data.
Scope:
- The project graph, the family graph, the globe, the corner/side-pane graphs and the mini graph, wherever fit and reset already sit. Use the same placement and style as the existing controls.
- The scene's
layout(timeline stage) follows, as on every relayout. - With motion off, show "laying out N nodes…" until the graph has settled. With motion on, animate.
- Make it reachable by keyboard and give it a title/aria label.
- Docs: mention it in the graph section of
docs/dashboard-views.mdand the dashboard README, if fit and reset are listed there. - Tests:
- After dragging nodes, the redraw returns exactly the positions a fresh build gives (determinism).
- Fixed nodes are released.
- The
scene.layoutcopy equals the graph after settling. - DOM snapshot updated for the new control, with the reason given in the PR body.
Review: all three of the ktw-review-team. Merge only after every verdict is in.