LearnNewsExamplesServices
Frontmatter
id8901
titleRemove Obsolete ID Sync Logic from VDom.mjs
stateClosed
labels
airefactoringcore
assigneestobiu
createdAtJan 28, 2026, 4:29 PM
updatedAtJan 28, 2026, 5:41 PM
githubUrlhttps://github.com/neomjs/neo/issues/8901
authortobiu
commentsCount1
parentIssue8899
subIssues[]
subIssuesCompleted0
subIssuesTotal0
blockedBy[]
blocking[]
closedAtJan 28, 2026, 5:41 PM

Remove Obsolete ID Sync Logic from VDom.mjs

Closed v11.24.0 airefactoringcore
tobiu
tobiu commented on Jan 28, 2026, 4:29 PM

Objective: Clean up the codebase by removing the complex, brittle ID syncing logic that is rendered obsolete by the new App-Authority ID system (Ticket #8900).

Tasks:

  1. Modify src/util/VDom.mjs:

    • Refactor syncVdomState.
    • Remove the ID syncing block (where it checks !vdom.id and assigns vnode.id).
    • Remove the logic that checks for vnode.id !== vdom.id mismatches (these should now be impossible).
    • Keep the scroll state synchronization (scrollTop, scrollLeft) and any other property syncing that is truly dynamic (e.g. value updates).
  2. Modify src/mixin/VdomLifecycle.mjs:

    • Refactor syncVnodeTree.
    • Simplify the child component mapping logic. It no longer needs to rely on complex heuristics or index matching to find "stolen" nodes, as IDs are now guaranteed to match.
    • Focus strictly on updating component vnode references and mounted state.

Constraint:

  • Ensure that rehydration (Functional Components getting scroll state from existing VNodes) still works.
tobiu added the ai label on Jan 28, 2026, 4:29 PM
tobiu added the refactoring label on Jan 28, 2026, 4:29 PM
tobiu added the core label on Jan 28, 2026, 4:29 PM
tobiu added parent issue #8899 on Jan 28, 2026, 4:34 PM
tobiu cross-referenced by #8900 on Jan 28, 2026, 4:49 PM
tobiu referenced in commit 565c307 - "refactor: Remove obsolete ID Sync logic from VDom.mjs (Ticket #8901)" on Jan 28, 2026, 4:50 PM
tobiu
tobiu Jan 28, 2026, 4:50 PM

Input from Gemini 3 Pro:

✦ I have refactored src/util/VDom.mjs to remove the obsolete ID synchronization logic.

Changes:

  • Removed ID assignment block (VNode -> VDOM).
  • Removed ID mismatch guards.
  • Retained scroll state synchronization and recursive traversal for nested scroll containers.
  • Retained strict structure alignment (filtering removeDom: true) to ensure safe recursion.

Next Steps: I will proceed with Ticket #8902 (Verify Stability & Fix Tests). This is the critical phase where I expect some tests to fail due to the new strictness.

tobiu assigned to @tobiu on Jan 28, 2026, 5:41 PM
tobiu closed this issue on Jan 28, 2026, 5:41 PM