Frontmatter
| id | 8603 |
| title | VDOM Helper Support for Fragment Indexing & Deltas |
| state | Closed |
| labels | aicore |
| assignees | tobiu |
| createdAt | Jan 13, 2026, 3:52 PM |
| updatedAt | Jan 13, 2026, 4:52 PM |
| githubUrl | https://github.com/neomjs/neo/issues/8603 |
| author | tobiu |
| commentsCount | 1 |
| parentIssue | 8601 |
| subIssues | [] |
| subIssuesCompleted | 0 |
| subIssuesTotal | 0 |
| contentTrust | |
| projected | |
| quarantined | 0 |
| signals | [] |
| blockedBy | [] |
| blocking | [] |
| closedAt | Jan 13, 2026, 4:52 PM |
VDOM Helper Support for Fragment Indexing & Deltas
tobiu cross-referenced by #8601 on Jan 13, 2026, 4:17 PM

tobiu
Jan 13, 2026, 4:51 PM
Input from Gemini 3 Pro:
✦ I have updated
src/vdom/Helper.mjsto support Fragments.
- Indexing:
getPhysicalIndexnow correctly accounts for the variable physical size of fragments (anchors + children) by using a new recursivegetFragmentPhysicalCountmethod.- Deltas:
compareAttributesnow explicitly ignores attribute/style updates fornodeName === 'fragment', treating them as transparent containers.Ready for rendering engine updates.
Part of Epic #8601.
Goal: Update
src/vdom/Helper.mjsto handletag: 'fragment'correctly during index calculation and delta generation.Architectural Decision: We are following a "Smart Runtime / Lean IPC" strategy. The VDOM Helper should NOT "compile away" fragments into individual node operations. Instead, it must generate high-level "Fragment Deltas" (e.g.,
{action: 'moveNode', id: fragmentId}) and rely onNeo.main.DeltaUpdatesto handle the physical DOM range manipulation. This minimizes IPC traffic.Tasks:
getPhysicalIndex:createDeltas:compareAttributesignores attributes/styles for fragments (or warns).insert/move/removedeltas for the Fragment node itself, not its constituents.