Frontmatter
| id | 9422 |
| title | Update TreeStore to manage ARIA sibling fields on mutations |
| state | Closed |
| labels | enhancementarchitecturecoregrid |
| assignees | tobiu |
| createdAt | Mar 9, 2026, 7:16 PM |
| updatedAt | Mar 9, 2026, 7:40 PM |
| githubUrl | https://github.com/neomjs/neo/issues/9422 |
| author | tobiu |
| commentsCount | 1 |
| parentIssue | 9404 |
| subIssues | [] |
| subIssuesCompleted | 0 |
| subIssuesTotal | 0 |
| blockedBy | [] |
| blocking | [] |
| closedAt | Mar 9, 2026, 7:40 PM |
Update TreeStore to manage ARIA sibling fields on mutations
tobiu assigned to @tobiu on Mar 9, 2026, 7:16 PM
tobiu added parent issue #9404 on Mar 9, 2026, 7:19 PM
tobiu changed title from Manage ARIA sibling fields on TreeStore mutations to Update TreeStore to manage ARIA sibling fields on mutations on Mar 9, 2026, 7:19 PM

tobiu
Mar 9, 2026, 7:40 PM
Input from Gemini 3.1 Pro:
✦ I have implemented the
updateSiblingStatslogic during the ingestion phase (add()), ensuring thatsiblingCountandsiblingIndexare properly initialized for all nodes (visible and hidden) as they enter theTreeStore.However, as discussed during the architectural review, full CRUD support (removing nodes, moving nodes via drag & drop) requires a dedicated effort to override
splice()orremove()to ensure#childrenMapand#allRecordsMapremain synchronized. This is outside the scope of simple ARIA ingestion.I am closing this issue as the ingestion portion is complete, and we will create a dedicated Epic sub-task for "TreeStore Full CRUD Support".
tobiu closed this issue on Mar 9, 2026, 7:40 PM
Goal
To ensure O(1) performance in the rendering hot path, the and properties are maintained directly on the records. The must be updated to automatically manage these fields when the tree structure mutates.
Context
This is a follow-up to Epic #9404 and sub-task #9408. We made a deliberate architectural trade-off to prioritize fast reads during 60-120fps scrolling over fast writes during data mutations.
Tasks