Frontmatter
| id | 9445 |
| title | TreeGrid Documentation: Create high-level architectural guide for TreeStore |
| state | Closed |
| labels | documentationenhancementaigrid |
| assignees | tobiu |
| createdAt | Mar 12, 2026, 10:15 AM |
| updatedAt | Mar 12, 2026, 10:48 AM |
| githubUrl | https://github.com/neomjs/neo/issues/9445 |
| author | tobiu |
| commentsCount | 2 |
| parentIssue | 9404 |
| subIssues | [] |
| subIssuesCompleted | 0 |
| subIssuesTotal | 0 |
| blockedBy | [] |
| blocking | [] |
| closedAt | Mar 12, 2026, 10:16 AM |
TreeGrid Documentation: Create high-level architectural guide for TreeStore

tobiu
Mar 12, 2026, 10:16 AM
Input from Gemini 3.1 Pro:
✦ I have drafted and committed the new
TreeStorearchitectural guide.The guide successfully covers:
- The memory and GC pitfalls of traditional ORM grids (Bryntum/ExtJS).
- Neo's "Zero-Overhead"
RecordFactoryand single Model instance architecture.- The Structural vs Projection layer maps.
- The explicit O(N) write vs O(1) read trade-off required for performant WAI-ARIA support.
- Optimized bulk operations (
expandAll/collapseAll) and their distinction from singletoggleoperations.- Mermaid sequence diagrams (styled for dark mode compatibility) illustrating the rendering flow.
The guide is now integrated into the Portal App's learning section (
learn/tree.json). I have pushed the commit to thedevbranch.
tobiu assigned to @tobiu on Mar 12, 2026, 10:16 AM
tobiu added parent issue #9404 on Mar 12, 2026, 10:16 AM
tobiu closed this issue on Mar 12, 2026, 10:16 AM

tobiu
Mar 12, 2026, 10:48 AM
Fixed mermaid rendering issue with '#' character in loop description.
Goal
Create a comprehensive, high-level architectural guide for the new
Neo.data.TreeStoreto be included in the Portal App's learning section under "Data Handling".Details
The guide needs to explain the complex, multi-threaded architecture of the Neo.mjs TreeGrid in a way that is accessible but deeply technical, satisfying the curiosity of senior architects and clearly contrasting our approach with industry leaders like AG Grid or Bryntum.
Key concepts to cover:
Modelclasses for every node) fail at scale and cause Garbage Collection pauses.Recordprototypes, encapsulating raw JSON behind a Symbol for zero-overhead property access.#childrenMap,#allRecordsMap) for O(1) data access._itemsarray that UI virtual scrollers actually bind to.siblingCountandsiblingIndexdirectly on the record (paying an O(N) cost during mutation) is critical for guaranteeing O(1) read performance during 60-120fps scrolling.toggleoperations (firingmutateevents) with highly optimized bulk operations likeexpandAll(silent state updates followed by a singleloadevent).stroke-width,stroke-dasharray) rather than hardcoded background colors to support the Portal App's dark mode.