Frontmatter
| id | 8627 |
| title | Fragment hidden config fails: removeNode delta missing parentId |
| state | Closed |
| labels | bugaicore |
| assignees | tobiu |
| createdAt | Jan 14, 2026, 1:48 AM |
| updatedAt | Jan 14, 2026, 1:49 AM |
| githubUrl | https://github.com/neomjs/neo/issues/8627 |
| author | tobiu |
| commentsCount | 1 |
| parentIssue | 8601 |
| subIssues | [] |
| subIssuesCompleted | 0 |
| subIssuesTotal | 0 |
| blockedBy | [] |
| blocking | [] |
| closedAt | Jan 14, 2026, 1:49 AM |
Fragment hidden config fails: removeNode delta missing parentId
tobiu added parent issue #8601 on Jan 14, 2026, 1:49 AM
tobiu assigned to @tobiu on Jan 14, 2026, 1:49 AM

tobiu
Jan 14, 2026, 1:49 AM
Input from Gemini 3 Pro:
✦ I have fixed the issue where
Neo.container.Fragmenthidden: trueconfig would fail to remove the DOM nodes.Fix Details:
- File:
src/vdom/Helper.mjs- Change: Updated
removeNodeto include theparentIdin the delta when the node is a Fragment (nodeName === 'fragment'). This allowsNeo.main.DeltaUpdatesto correctly locate the fragment anchors for removal.Verification:
- Created a new unit test
test/playwright/unit/vdom/FragmentHidden.spec.mjswhich verifies that theremoveNodedelta for a Fragment includes theparentIdand that the subsequentinsertNodedelta is correct.Changes committed and pushed.
tobiu closed this issue on Jan 14, 2026, 1:49 AM
tobiu cross-referenced by #8616 on Jan 14, 2026, 1:51 AM
tobiu cross-referenced by #8625 on Jan 14, 2026, 1:59 AM
The
hiddenconfig on aNeo.container.Fragment(which setsremoveDom: trueon the VDOM node) fails to remove the Fragment from the DOM.Root Cause:
Neo.vdom.Helper.removeNodeonly includes theparentIdin the delta forvtype: 'text'nodes. However,Neo.main.DeltaUpdates.removeNoderequiresparentIdto locate and remove Fragments (since they consist of start/end comment anchors and don't have a single element ID to look up).Symptoms:
hidden: trueon a Fragment does nothing (DOM remains).hidden: falseafterwards causes duplication (new content inserted, old content remains).Fix: Update
Neo.vdom.Helper.removeNodeto includeparentIdin the delta if the node is a Fragment (nodeName === 'fragment').