You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: resources/content/release-notes/v12.1.0.md
+48Lines changed: 48 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -35,12 +35,60 @@ We engineered a completely new hierarchical data foundation that fully supports
35
35
***Structural Integrity:** Complex operations like `updateKey` have been overridden to automatically migrate descendant `parentId` references, ensuring the "split-brain" State (where lookup maps get out of sync with record data) is impossible. Full CRUD support is built-in.
36
36
***Async Subtree Loading:** For massive datasets that cannot be sent to the client at once, the `TreeStore` supports asynchronous, on-demand loading of child nodes when a user expands a parent branch. We also implemented explicit Error States and dedicated events to handle network failures gracefully within the UI.
37
37
38
+
```mermaid
39
+
graph TD
40
+
subgraph "Structural Layer (Deep Maps)"
41
+
Root((Root)) --> A(Node A <br/> Expanded)
42
+
Root --> B(Node B <br/> Collapsed)
43
+
A --> A1(Node A.1)
44
+
A --> A2(Node A.2)
45
+
B --> B1(Node B.1)
46
+
47
+
classDef collapsed stroke-dasharray: 5 5;
48
+
classDef expanded stroke-width:3px;
49
+
50
+
class A expanded;
51
+
class B collapsed;
52
+
end
53
+
54
+
subgraph "Projection Layer (Flat Array)"
55
+
F1[Index 0: Node A]
56
+
F2[Index 1: Node A.1]
57
+
F3[Index 2: Node A.2]
58
+
F4[Index 3: Node B]
59
+
60
+
F1 -.-> F2
61
+
F2 -.-> F3
62
+
F3 -.-> F4
63
+
end
64
+
65
+
A -.-> F1
66
+
A1 -.-> F2
67
+
A2 -.-> F3
68
+
B -.-> F4
69
+
```
70
+
38
71
### 2. The Data Pipeline Modernization
39
72
To feed the newly minted `TreeStore`, we completely overhauled the Data Worker's ingestion pipeline.
40
73
***The Parser-Normalizer Split:** Previously, data came through a single pipeline. We refactored this into a strict, modular flow: `Connection -> Parser -> Normalizer`. The new `Neo.data.normalizer.Base` (and its hierarchical sibling, `Tree`) acts as the final transformation layer, normalizing complex nested payloads from external APIs before handing pure JSON to the App Worker.
41
74
***Push-Based WebSocket IPC & RPC:** We integrated persistent WebSocket connections and RPC APIs directly into the `Connection` architecture, enabling real-time streaming of hierarchical mutations from the server directly to the VDOM without polling.
42
75
***Dynamic Module Loading:**`Neo.worker.Data` can now dynamically request and instantiate parser/normalizer modules at runtime, deeply minimizing the initial Data Worker bundle size.
The visual counterpart to the `TreeStore` is the new `TreeGrid` column component.
46
94
***O(1) Rendering Hierarchy:** It utilizes semantic indentation (`padding-left` derived from node depth) and interactive expand/collapse toggles natively rendered inside the pooled Grid Cells.
0 commit comments