LearnNewsExamplesServices
Frontmatter
id16754
titleDockSplitter drag-start transient (2026-08-02 14:05–14:55Z window): intermittent, trusted-stream, unexplained
stateOpen
labels
bugaitesting
assignees[]
createdAtAug 8, 2026, 11:52 PM
updatedAtAug 10, 2026, 11:07 AM
githubUrlhttps://github.com/neomjs/neo/issues/16754
authorneo-kimi-phoebe
commentsCount1
parentIssuenull
subIssues[]
subIssuesCompleted0
subIssuesTotal0
contentTrust
projected
quarantined0
signals[]
blockedBy[]
blocking[]

DockSplitter drag-start transient (2026-08-02 14:05–14:55Z window): intermittent, trusted-stream, unexplained

neo-kimi-phoebe
neo-kimi-phoebe commented on Aug 8, 2026, 11:52 PM

Context

Spin-out from #16365 at its resolution: the ticket's title defect — the deterministic DockSplitter drag-start wedge at current head — got its mechanism named and repaired in one arc (probe ladder → EventSimulator synthetic streams carry buttons=0 → the #16381 lost-release recovery endGestured every synthetic gesture on its first move; repair: the recovery fires on trusted streams only). What #16365 could never discharge is its ORIGINAL instance: the 2026-08-02 ~14:05–14:55Z transient — real, observed twice independently, unreproduced in ~5.5h of heavy drag activity afterward, and predating #16381 entirely, so tonight's mechanism cannot be its explanation. This ticket is the intermittent-transient tracker; #16365 closes with the deterministic repair.

Live latest-open sweep: latest 20 checked 2026-08-08 ~21:5xZ (newest #16750); no equivalent. A2A herd-window sweep clean. Related tickets distinguished: #14985 (closed, stale-DOM geometry family), the synthetic-stream wedge (resolved, #16365).

The Problem

On 2026-08-02 at dev 5703e0d18f, on this host, BOTH event origins (raw CDP page.mouse AND the InteractionService real-pointer dispatch) wedged the DockSplitter drag chain for ~50 minutes: pointerdown landed at DOM on the splitter, dragStartState stayed false, zero commits, headless included, tab drags healthy throughout — then the identical path self-cleared with zero code change. 10/10 consecutive drags committed at 13:52Z; 0/10 from ~14:05Z. Vega's plane rebuild completed inside the same window — a candidate correlation, still unproven, no mechanism offered.

The full evidence ledger, the retracted hypotheses (stateful-after-commit — artifact-suspect; hidden-pane — confound), and the per-segment probe ladder live in #16365's comment thread (especially the 2026-08-02 19:43Z corrected ledger). Two of three historical "wedge" observations came through synthetic paths and are now attributable to the synthetic-buttons=0 kill; the 08-02 window survives because raw CDP — a trusted stream — wedged too.

The Architectural Reality

  • Chain: DOM pointerdown on .neo-draggable → main-thread DomEvents delegation → Neo.main.draggable.sensor.Mouse'drag:start' CustomEvent → Neo.main.addon.DragDrop#onDragStart → worker message → app-side DragZone.dragStart()DockSplitter.onDragStart (src/dashboard/DockSplitter.mjs:328).
  • The per-segment probe ladder (document probes + DomEvents.testPathInclusion / sendMessageToApp static wraps + app-side dragStartState reads) is built and proven live at head — it named the synthetic-stream mechanism in one run. It rides inside any future live window first.
  • One adjacent observation parked from tonight's probe, NOT yet a second defect ticket: a first-gesture drag:start forwarded with dragZoneId: null while the first move already carried the zone — the app-side start flag never sets though the resize commits via moves. Needs a second witness before it graduates.

The Fix

There is no repair to prescribe yet — the transient is unexplained and currently unreproduced. The ticket's work:

  1. On the next live window (any agent, any session): run the probe ladder inside it BEFORE anything heals; the dead segment must be named with a receipt, not inferred.
  2. Check the Vega plane-rebuild correlation against whatever daemon/supervisor activity logs exist for the window (candidate axis, never a verdict).
  3. If the ladder lands on a segment with an owner, file the mechanism ticket from the receipts and close this tracker as superseded-by-mechanism.

Acceptance Criteria

  • The 08-02 transient class is either reproduced with a per-segment probe receipt naming the dead segment, or bounded with a falsifier for the plane-rebuild correlation (or another named trigger axis).
  • If reproduced: the mechanism ticket is filed with the receipts and this tracker closes as superseded.
  • If a full release cycle (v13.2) ships with zero reproductions across the swarm's drag-heavy lanes, close as not_planned with the accumulation ledger on record.

Out of Scope

  • The synthetic-buttons=0 wedge (resolved: #16365 + its repair PR).
  • The parked dragZoneId: null first-forward observation (needs a second witness; graduates to its own ticket when it gets one).
  • Tab-drag families (healthy through every window so far).

Avoided Traps

  • Naming the Vega plane-rebuild correlation as the cause. It is a timestamp coincidence until a mechanism binds it.
  • Treating the synthetic-stream wedge's resolution as this transient's resolution. The timelines exclude it: the transient predates #16381 by a day.
  • Synthetic-driver "reproductions" without a headed real-input control — the artifact class that manufactured the retracted stateful-after-commit pattern.

Decision Record impact

none.

Related

#16365 (parent ledger + deterministic wedge, closing), #16353, #16362, closed prior-art #14985, #16677 (MC wedge — unrelated infra, distinct).

Origin Session ID: 94296ece-1e77-47de-b74c-d1f3b63d8265

Retrieval Hint: query_raw_memories("DockSplitter drag-start wedge transient probe ladder DomEvents")

tobiu unassigned from @neo-kimi-phoebe on Aug 10, 2026, 11:07 AM