Frontmatter
| id | 9626 |
| title | Epic: Grid Unified Scrolling & VDOM Orchestration |
| state | Closed |
| labels | epicaiarchitecturegrid |
| assignees | tobiu |
| createdAt | Apr 2, 2026, 10:17 AM |
| updatedAt | Apr 3, 2026, 12:52 AM |
| githubUrl | https://github.com/neomjs/neo/issues/9626 |
| author | tobiu |
| commentsCount | 1 |
| parentIssue | 9486 |
| subIssues | 9627 Grid Multi-Body: Introduce `grid.View` and Flatten `grid.Body` DOM 9628 Grid Multi-Body: Map Physical Heights and Transfer Vertical Scrolling 9629 Grid Multi-Body: Implement Atomic VDOM Orchestration Layer 9630 Grid: Implement Main-Thread Addon Hover Synchronization 9631 Grid: Enable Horizontal Scrolling via Locked Regions 9632 Grid: Restore Row Scroll Pinning and Update Drag E2E Tests 9633 Grid: Rename bodyWrapper to view 9634 Grid Container: Remove redundent grid wrapper node |
| subIssuesCompleted | 8 |
| subIssuesTotal | 8 |
| blockedBy | [] |
| blocking | [] |
| closedAt | Apr 3, 2026, 12:52 AM |
Epic: Grid Unified Scrolling & VDOM Orchestration
Closedepicaiarchitecturegrid
tobiu assigned to @tobiu on Apr 2, 2026, 10:17 AM
tobiu added parent issue #9486 on Apr 2, 2026, 10:17 AM
tobiu added sub-issue #9627 on Apr 2, 2026, 10:20 AM
tobiu added sub-issue #9628 on Apr 2, 2026, 10:20 AM
tobiu added sub-issue #9629 on Apr 2, 2026, 10:20 AM

tobiu
Apr 2, 2026, 10:41 AM
All 3 architectural phases for unified vertical scrolling and atomic VDOM updates have been completed successfully. The Grid is fully transformed to top-down orchestration.
tobiu closed this issue on Apr 2, 2026, 10:41 AM
tobiu reopened this issue on Apr 2, 2026, 10:49 AM
tobiu cross-referenced by #9630 on Apr 2, 2026, 11:27 AM
tobiu added sub-issue #9630 on Apr 2, 2026, 11:28 AM
tobiu cross-referenced by #9631 on Apr 2, 2026, 12:11 PM
tobiu cross-referenced by #9632 on Apr 2, 2026, 12:12 PM
tobiu added sub-issue #9631 on Apr 2, 2026, 12:12 PM
tobiu added sub-issue #9632 on Apr 2, 2026, 12:12 PM
tobiu cross-referenced by #9633 on Apr 2, 2026, 3:06 PM
tobiu added sub-issue #9633 on Apr 2, 2026, 3:06 PM
tobiu cross-referenced by #9634 on Apr 2, 2026, 3:55 PM
tobiu added sub-issue #9634 on Apr 2, 2026, 3:56 PM
tobiu closed this issue on Apr 3, 2026, 12:52 AM
This epic tracks the architectural pivot of the Grid Multi-Body structure to a unified vertical scrolling mechanism and centralized VDOM orchestration.
The Problem
Currently, the Grid V2 splits the grid into three independent scrolling bodies (
bodyStart,body,bodyEnd) that sync their offsets dynamically. However, since they update their VDOM payloads independently via their own calculation loops, the larger center body (with more unlocked columns) requires more time to calculate delta patches than the start/end bodies. This results in staggered, non-deterministic VDOM updates arriving on the main thread, leading to horizontal tearing and jitter during rapid scrolling.The Solution:
grid.ViewWe are flattening the child
grid.Bodycomponents to be strictly full-height data strips (no internal scrolling, no stretchers). We introduce a new overarching orchestrator class,neo.grid.View(acting as the unifiedbodyWrapper), which manages vertical scrolling natively.This
grid.Viewclass will take over thecreateViewDatacalculation cycle. During a scroll event, the View calculates the new row index limits and instructs all internal bodies to update their view data silently (silent: true). Once all sub-grids are prepared, the View triggers a single, unified VDOM update (this.update({updateDepth: -1})), guaranteeing that the entire scroll state is painted atomically by the compositor thread.