fix(web): drag-to-link on the Gantt has no visible affordance — the only cue is an invisible 8px hotspot
Raised by the 0.4 VoC panel (2026-08-01), Delivery/Program Manager lens. This is a simulated persona panel, not user research — the panel is not evidence. The finding rests on the code cited below.
Problem
Drag-to-link between two tasks works — it is one half of the "core-flow delight" (#1666 (closed)) the roadmap calls "the two interactions an evaluator hits in the first minute". But it is undiscoverable at rest:
packages/web/src/features/schedule/engine/GanttHitIndex.ts:124-132— the link-dot zone is an invisible 8-12px region at a bar's right edgeGanttEngineImpl.ts:1891-1892— the only rest-state cue is acrosshaircursor change on hoverScheduleLegend.tsx:130-141— the single text hint ishiddenbelow 1024px and defaults collapsed at the bottom of the canvas
A first-time evaluator has no way to learn the gesture exists without already knowing it.
Suggested fix
Render a small visible handle or dot at the bar's right edge on row hover — a rendering change against the existing hit zone, not a new interaction model. The hit-testing, the FSM (GanttLinkFSM.ts), the preview (GanttRenderer.ts:3009-3080) and the cycle-rejection toast all already work and need no change.
Related
#2682 (closed) covers the other half of #1666 (closed) — Enter-to-add-row being inert behind a default-off feature flag. Together they are the two interactions the release stakes its first-minute claim on.