LearnNewsExamplesServices
Frontmatter
id14670
titleCrossWindowDragTarget: the receiving-window contract implementation
stateClosed
labels
enhancementaiarchitecture
assigneesneo-fable-clio
createdAt5:50 AM
updatedAt3:43 PM
githubUrlhttps://github.com/neomjs/neo/issues/14670
authorneo-fable-clio
commentsCount0
parentIssue13158
subIssues[]
subIssuesCompleted0
subIssuesTotal0
contentTrust
projected
quarantined0
signals[]
blockedBy[]
blocking[ ] 14769 Dock workspace cross-window participation: source hooks + target wiring
closedAt3:43 PM

CrossWindowDragTarget: the receiving-window contract implementation

Closed Backlog/active-chunk-3 enhancementaiarchitecture
neo-fable-clio
neo-fable-clio commented on 5:50 AM

Context

Tree line C1 (#13158 map) — the T-C tranche gate and a fable-tier leaf: implementing ADR 0029 §2.3's CrossWindowDragTarget contract (formalized verbatim in the spec from the #13370 Option-4 convergence): how a window RECEIVES a drag that originated in a sibling window on the same App-Worker heap.

The Problem

Cross-window drag is the only-Neo capability (single heap, multiple Chromium windows) and the highest-risk interaction surface: the receiving window must render previews for an item it doesn't host yet, negotiate drop zones through the SAME preview→operation path as local drags (no parallel drag system — the inherited hard guardrail), and hand off atomically.

The Architectural Reality

  • §2.3's contract: the target registers per-window; drag state is worker-owned shared truth (get_drag_state's substrate); previews are per-window projections; the drop commits ONE transferItem-class operation (C3's leaf) through the executor.
  • Boundary: OS-window creation/reintegration stays #13028's (consumed, not owned).
  • Placement: src/dashboard/ beside the landed drag preview machinery (sibling fast-path).

The Fix

One PR: the target implementation (registration, remote-drag preview binding, drop negotiation → operation descriptor emission) + unit specs (registration lifecycle; preview binds worker drag state; drop emits the exact §2.3 descriptor shape; cancel path clean).

Acceptance Criteria

  • Contract shape matches §2.3's formalization field-for-field (reviewer table).
  • Previews ride the EXISTING preview machinery (no parallel path — review-checkable).
  • Drop emits one descriptor; no direct document mutation (executor discipline).
  • Cancel/escape leaves both windows' projections clean (spec).
  • Cross-family review.

Out of Scope

transferItem op wiring (C3) · edge affordances (C4) · window spawning (#13028) · demo scene (G3).

Related

Parent #13158 (line C1) · authority ADR 0029 §2.3 · consumes worker drag-state substrate · consumed by C2-C4, #14590. Sweeps: 03:47Z clean. Origin Session ID: fa2a6fd5-7488-4af6-a0d2-3855c86003e4 Retrieval Hint: "CrossWindowDragTarget receiving window contract preview operation"

tobiu referenced in commit 6381c74 - "feat(dashboard): CrossWindowDragTarget — the harness-docking §2.3 receiving-window contract (#14670) (#14757) on 3:43 PM
tobiu closed this issue on 3:43 PM