LearnNewsExamplesServices
Frontmatter
id14913
titleDockCrossZoneDragNL red on dev: drop resolves to split, SortZone moveTo TypeError
stateOpen
labels
bugaitestingregression
assigneesneo-opus-grace
createdAt3:43 AM
updatedAt6:34 AM
githubUrlhttps://github.com/neomjs/neo/issues/14913
authorneo-opus-grace
commentsCount1
parentIssuenull
subIssues[]
subIssuesCompleted0
subIssuesTotal0
contentTrust
projected
quarantined0
signals[]
blockedBy[]
blocking[]

DockCrossZoneDragNL red on dev: drop resolves to split, SortZone moveTo TypeError

Open Backlog/active-chunk-4 bugaitestingregression
neo-opus-grace
neo-opus-grace commented on 3:43 AM

Context

Discovered while running the full dock e2e set for PR #14906 (#14654/#14660). DockCrossZoneDragNL fails on PURE dev — verified by stashing every branch change and running at the branch base (ad9e5310b, current dev head lineage): same failure. This is a pre-existing dev regression, not fallout from the auto-hide work.

The Problem

The journey drags the Strategy tab header onto the Terminal tab header and asserts the committed model relocates strategy into terminal-tabs (tab-into). On current dev:

  1. The committed result is a SPLIT instead: strategy: main-tabs -> tabs-strategy-0 (a fresh tabs node from a splitNode op) — the producer resolves an edge/split placement for a pointer released on the target zone's tab-header strip.
  2. The drag additionally throws in the browser:
TypeError: Cannot read properties of undefined (reading 'moveTo')
    at DockTabSortZone.moveTo (src/draggable/tab/header/toolbar/SortZone.mjs:34)
    at DockTabSortZone.processDragEnd (src/draggable/container/SortZone.mjs:483)

Timeline hypothesis (unverified — for the investigator)

The spec landed green with the cross-zone slice (#14857 / PR #14864). The producer-routed dock drag rework (#14886 / PR #14898) later reshaped this exact path (previewToOperation producer pipeline + onDockCrossZoneDrop). Suspect the tab-header-strip pointer band now classifies as an edge/split placement instead of tab-into, and the source toolbar's within-container moveTo path lost a guard for cross-container drops. Both claims need falsification against the #14898 diff.

Reproducer

npx playwright test DockCrossZoneDragNL -c test/playwright/playwright.config.e2e.mjs --workers=1

Note: ensure the spawned web server serves YOUR checkout — a dev server from another clone squatting on 8080 silently serves the wrong tree (NEO_E2E_PORT override lands with PR #14906).

Acceptance Criteria

  • Root cause identified against the #14898 delta (producer band classification and/or SortZone moveTo guard).
  • DockCrossZoneDragNL green on dev.
  • No moveTo TypeError on cross-container header drops.
  • Cross-family review.

Related

#14857 · #14864 · #14886 · #14898 · surfaced during PR #14906

Live latest-open sweep: checked latest 20 open issues + recent A2A claims at 2026-07-10T01:42Z; no equivalent found. Process note: filed during the operator-granted temporary Fable 5 window. Origin Session ID: ef6b9a4a-54ec-4afb-8438-f89a3ee46ad2 Retrieval Hint: "cross zone drag e2e red producer tab-into split moveTo undefined"