LearnNewsExamplesServices
Frontmatter
id19472
titleStandalone dock lacks heavy-content split-drag evidence
stateClosed
labels
enhancementaitestinggriddashboard
assigneesneo-gpt
createdAtOct 8, 2026, 7:48 AM
updatedAtOct 8, 2026, 11:19 AM
githubUrlhttps://github.com/neomjs/neo/issues/19472
authorneo-gpt
commentsCount0
parentIssue17844
subIssues[]
subIssuesCompleted0
subIssuesTotal0
contentTrust
projected
quarantined0
signals[]
blockedBy[]
blocking[]
closedAtOct 8, 2026, 11:19 AM

Standalone dock lacks heavy-content split-drag evidence

Closed v13.2.0/archive-v13-2-0-chunk-24 enhancementaitestinggriddashboard
neo-gpt
neo-gpt commented on Oct 8, 2026, 7:48 AM

Context

Parent #17844 AC-4 explicitly retains the #17820 heavy-content journey evidence. Its current full headless census at 63bbeb6397 passes both Workstation Matrix geometry cases, but the inspected standalone dock journeys use plain component panes. SplitterHeavyContent lives in the component tier and is not selected by that E2E battery.

The Problem

The standalone example has not supplied the real-pointer repeated split-drag receipt for representative Grid/TreeGrid panes. Plain panels cannot falsify buffered row/column geometry or final scrollability. Stored tree row count alone is also insufficient when every folder is collapsed.

Design authority: #17844 AC-4 and its explicit journey-authoring scope amendment; the landed main-thread conserved-pair preview from #17820. This ticket supplies evidence, not a new resize mechanism.

The Architectural Reality

  • examples/dashboard/dock/MainContainer.mjs is the actual standalone consumer and accepts construction-time pane/perspective declarations.
  • Workspace#onAfterConstructed captures declarations once; runtime mutation of panes does not replace them.
  • Existing RMA creation/destruction under the same Viewport permits a cold actual MainContainer with heavy declarations, without app changes or fixture subclasses.
  • Neo.grid.Container consumes data.Store; its TreeStore mode supplies TreeGrid behavior.
  • Existing BigData/TreeBigData models supply the numeric-column field shapes.
  • WorkstationSplitterGridGeometryNL and DockSplitterProxyPaintNL establish geometry and Engine-floor E2E patterns.

The Fix

Add one owning E2E sibling, test/playwright/e2e/dashboard/DockHeavyContentSplitNL.spec.mjs, on /examples/dashboard/dock/. Cold-create the actual example MainContainer under its existing Viewport with ordinary heavy Grid/TreeGrid pane declarations, isolated existing storage key and one declared heavy perspective. Use deterministic Store/TreeStore records with an expanded root and sufficient visible rows/columns.

Exercise both split axes, repeated real-pointer movements in both directions and Escape. Observe conserved live pair geometry and unchanged committed document while held; then await the semantic commit/projection and verify keyed header/body/worker agreement and actual scrolling. Assert pane/store identities survive. Preserve unexpected-error failure.

No production source/config changes. If the journey exposes a product defect, preserve the failing witness and route a separate attributed repair under the parent.

Contract Ledger: N/A — test-only consumption of existing public primitives, no added surface. Decision Record impact: aligned-with ADR 0029 runtime preview/committed-document separation; no authority mutation. Structure map: N/A — existing Body E2E directory and sibling pattern.

Acceptance Criteria

  • The actual standalone example route cold-mounts ordinary MainContainer declarations with live Grid and TreeGrid, representative visible data and observed readiness.
  • Both axes execute repeated real-pointer drags in both directions; held frames show a conserved moving pair, no proxy in live mode, and byte-identical committed document.
  • Release commits one semantic resize and coherent settled worker/header/body geometry without replacing pane/store identities.
  • Escape restores captured geometry and leaves the document unchanged; final horizontal/vertical scrolling remains observable for both widgets.
  • The complete new spec executes through the external-Brain E2E config, with unexpected errors retained; receipts name exact source/runtime and are linked to #17844.
  • Existing Workstation geometry and standalone splitter witnesses remain green; no full-parent or native/headed acceptance is inferred from this focused leaf.

Out of Scope

Generic resize/VDOM repair, new app features, custom fixture classes, fixture-only semantic commits, and closing parent acceptance.

Avoided Traps

Do not replace the actual example with an empty-viewport-only host, mutate declarations after capture, treat collapsed stored rows as scroll evidence, or use direct semantic operations as the real-pointer witness.

Related

Related: #17844 Related: #17820 Related: #16375

Origin Session ID: 01a11843-6adc-72c0-b895-ab4207603b32 Retrieval Hint: "standalone dock heavy Grid TreeGrid conserved split pair repeated pointer scroll evidence"

Creation sweep: live latest20 open issues and recent all-state30 claims rechecked immediately before filing; no equivalent/overlap. Exact open and historical standalone/Grid/split searches found none. MC problem-noun sweeps returned earlier standalone-example and adjacent dock reasoning, with no ruling against this retained acceptance step. Own assignments body-read: parent17844 owns the gap;19461/19467 are separate repairs. KB synthesis was insufficient, so current source and the measured census are authority. Ownership: neo-gpt will implement this one-PR leaf.

tobiu referenced in commit 37fc027 - "test(dock): witness heavy standalone split journeys (#19472) (#19473) on Oct 8, 2026, 11:19 AM
tobiu closed this issue on Oct 8, 2026, 11:19 AM