@andespindola/brainlink 0.1.0-beta.74 → 0.1.0-beta.75
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/application/frontend/client-js.js +19 -4
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -594,7 +594,7 @@ The graph UI shows:
|
|
|
594
594
|
- double-click on canvas zooms in at cursor position
|
|
595
595
|
- floating graph totals (notes, links, tags) below the Brainlink title
|
|
596
596
|
- large-graph rendering safeguards (edge draw caps, lower redraw rate, zoom-aware interaction)
|
|
597
|
-
- massive-graph LOD progression: very low zoom uses spatial overview
|
|
597
|
+
- massive-graph LOD progression: very low zoom uses spatial overview sampling to preserve whole-vault shape while keeping node visuals consistent, then progressively reveals nodes and edges as zoom increases
|
|
598
598
|
|
|
599
599
|
The server indexes before starting by default. Use `--no-index` to skip that step:
|
|
600
600
|
|
|
@@ -1758,6 +1758,18 @@ const clusterViewportNodes = viewportNodes => {
|
|
|
1758
1758
|
}))
|
|
1759
1759
|
}
|
|
1760
1760
|
|
|
1761
|
+
const representativeNodesFromClusters = (clusters, limit) => {
|
|
1762
|
+
const representatives = clusters
|
|
1763
|
+
.map((cluster) => cluster.representative)
|
|
1764
|
+
.filter((node) => Boolean(node))
|
|
1765
|
+
const merged = mergeUniqueNodes(
|
|
1766
|
+
representatives,
|
|
1767
|
+
state.renderNodes ?? [],
|
|
1768
|
+
Math.max(1, limit)
|
|
1769
|
+
)
|
|
1770
|
+
return ensureHubNodesInRenderedSet(merged)
|
|
1771
|
+
}
|
|
1772
|
+
|
|
1761
1773
|
const computeRenderVisibility = () => {
|
|
1762
1774
|
if (!hasValidTransform()) {
|
|
1763
1775
|
fitView({ useFiltered: true })
|
|
@@ -1816,8 +1828,11 @@ const computeRenderVisibility = () => {
|
|
|
1816
1828
|
.sort((left, right) => right.count - left.count)
|
|
1817
1829
|
.slice(0, Math.min(renderNodeBudget, clusterBudgetForScale(state.transform.scale)))
|
|
1818
1830
|
if (overviewClusters.length > 0) {
|
|
1819
|
-
state.renderClusters =
|
|
1820
|
-
state.renderNodes =
|
|
1831
|
+
state.renderClusters = []
|
|
1832
|
+
state.renderNodes = representativeNodesFromClusters(
|
|
1833
|
+
overviewClusters,
|
|
1834
|
+
Math.min(renderNodeBudget, clusterBudgetForScale(state.transform.scale))
|
|
1835
|
+
)
|
|
1821
1836
|
state.renderEdges = []
|
|
1822
1837
|
return
|
|
1823
1838
|
}
|
|
@@ -1877,8 +1892,8 @@ const computeRenderVisibility = () => {
|
|
|
1877
1892
|
const viewportNodes = viewportNodesFromSpatialIndex(viewport)
|
|
1878
1893
|
const clusters = clusterViewportNodes(viewportNodes)
|
|
1879
1894
|
if (clusters.length > 0) {
|
|
1880
|
-
state.renderClusters =
|
|
1881
|
-
state.renderNodes = clusters.
|
|
1895
|
+
state.renderClusters = []
|
|
1896
|
+
state.renderNodes = representativeNodesFromClusters(clusters, Math.min(renderNodeBudget, 900))
|
|
1882
1897
|
state.renderEdges = []
|
|
1883
1898
|
return
|
|
1884
1899
|
}
|
package/package.json
CHANGED