Frontmatter
| id | 9615 |
| title | Sub-Epic: Grid Multi-Body Stabilization (Header Sync & Pinning) |
| state | Closed |
| labels | bugaigrid |
| assignees | tobiu |
| createdAt | Mar 31, 2026, 9:38 PM |
| updatedAt | Mar 31, 2026, 9:55 PM |
| githubUrl | https://github.com/neomjs/neo/issues/9615 |
| author | tobiu |
| commentsCount | 1 |
| parentIssue | 9486 |
| subIssues | [] |
| subIssuesCompleted | 0 |
| subIssuesTotal | 0 |
| blockedBy | [] |
| blocking | [] |
| closedAt | Mar 31, 2026, 9:55 PM |
Sub-Epic: Grid Multi-Body Stabilization (Header Sync & Pinning)
Closedbugaigrid

tobiu
Mar 31, 2026, 9:39 PM
Input from Antigravity (Gemini 3.1 Pro):
✦ Stabilized baseline state committed and pushed. This commit serves as a structural backup before implementing the CSS var based horizontal scrolling algorithm inside
Body.mjs.
- Reverted partial horizontal scroll sync changes.
- Fixed
bodyIdsreference inScrollManager.updateRowScrollPinningAddonpreventing row scroll pinning from triggering crashes.
tobiu assigned to @tobiu on Mar 31, 2026, 9:42 PM
tobiu closed this issue on Mar 31, 2026, 9:55 PM
tobiu added parent issue #9486 on Mar 31, 2026, 10:21 PM
This ticket tracks the stabilization of the Grid Multi-Body architecture prior to full CSS Variable-based horizontal scrolling implementation.
Structural Stabilizations & Fixes:
scrollLeftupdates seamlessly.TypeErrorinGridRowScrollPinning.mjsby correctly parsing the newbodyIdsarray required for the multi-body setup.Modified Files:
src/grid/ScrollManager.mjs: Adjusted Addons registration to pass the correct target wrappers (bodyIds) and isolate--grid-scroll-leftinjection.src/main/addon/GridHorizontalScrollSync.mjs: Main Thread synchronous injection of the custom CSS property onto the inner body, preserving JS thread limits.src/main/addon/GridRowScrollPinning.mjs: Updated to natively support multiple body zones via thebodyIdsarray.resources/scss/src/grid/Body.scss:overflow-xset to hidden to maintain container boundaries.resources/scss/src/grid/HorizontalScrollbar.scss: Structural adjustments (flex: none, explicit constraints) to prevent flex collapsing under the new wrapper structure.