Repository navigation
[Tree-widget]: update deps to latest - #1811
Open
MartynasStrazdas wants to merge 16 commits into
Open
MartynasStrazdas wants to merge 16 commits into
MartynasStrazdas wants to merge 16 commits into
Conversation
There was a problem hiding this comment.
Tree-Widget Next benchmark
| Benchmark suite | Current: c2565f1 | Previous: a84dc3b | Deviation | Status |
|---|---|---|---|---|
models tree 50k 3D elements search > get search paths |
859 ms |
576 ms |
49.13% |
🚨 |
models tree 50k 3D elements search > get search paths (P95 of main thread blocks) |
71 ms |
40 ms |
77.50% |
〰️ |
models tree 50k 3D elements search > load hierarchy from search paths |
86359 ms |
90799 ms |
-4.89% |
〰️ |
models tree 50k 3D elements search > load hierarchy from search paths (P95 of main thread blocks) |
32 ms |
22 ms |
45.45% |
〰️ |
models tree 50k categories > collect nodes |
2548 ms |
1715 ms |
48.57% |
🚨 |
models tree 50k categories > collect nodes (P95 of main thread blocks) |
99 ms |
71 ms |
39.44% |
〰️ |
models tree 50k categories > validate initial visibility |
2688 ms |
1759 ms |
52.81% |
🚨 |
models tree 50k categories > validate initial visibility (P95 of main thread blocks) |
228 ms |
135 ms |
68.89% |
🚨 |
models tree 50k categories > change visibility |
218 ms |
143 ms |
52.45% |
🚨 |
models tree 50k categories > change visibility (P95 of main thread blocks) |
59 ms |
52 ms |
13.46% |
〰️ |
models tree 50k categories > validate changed visibility |
2533 ms |
1807 ms |
40.18% |
🚨 |
models tree 50k categories > validate changed visibility (P95 of main thread blocks) |
28 ms |
0 ms |
2800% |
〰️ |
models tree 50k 3D elements > collect nodes |
33132 ms |
35555 ms |
-6.81% |
〰️ |
models tree 50k 3D elements > collect nodes (P95 of main thread blocks) |
61 ms |
37 ms |
64.86% |
〰️ |
models tree 50k 3D elements > validate initial visibility |
1476 ms |
1280 ms |
15.31% |
🚨 |
models tree 50k 3D elements > validate initial visibility (P95 of main thread blocks) |
0 ms |
21 ms |
-100% |
〰️ |
models tree 50k 3D elements > change model visibility |
113 ms |
63 ms |
79.37% |
〰️ |
models tree 50k 3D elements > change model visibility (P95 of main thread blocks) |
23 ms |
0 ms |
2300% |
〰️ |
models tree 50k 3D elements > validate changed model visibility |
2383 ms |
1730 ms |
37.75% |
🚨 |
models tree 50k 3D elements > validate changed model visibility (P95 of main thread blocks) |
112 ms |
0 ms |
11200% |
🚨 |
models tree 50k 3D elements > change category node visibility |
464 ms |
320 ms |
45% |
🚨 |
models tree 50k 3D elements > change category node visibility (P95 of main thread blocks) |
40 ms |
27 ms |
48.15% |
〰️ |
models tree 50k 3D elements > validate changed category visibility |
1564 ms |
1319 ms |
18.57% |
🚨 |
models tree 50k 3D elements > validate changed category visibility (P95 of main thread blocks) |
0 ms |
0 ms |
0% |
🟰 |
models tree 50k 3D elements > validate per-model category override |
1480 ms |
1297 ms |
14.11% |
🚨 |
models tree 50k 3D elements > validate per-model category override (P95 of main thread blocks) |
0 ms |
0 ms |
0% |
🟰 |
models tree 50k 3D elements > change element visibility |
38 ms |
34 ms |
11.76% |
〰️ |
models tree 50k 3D elements > change element visibility (P95 of main thread blocks) |
0 ms |
0 ms |
0% |
🟰 |
models tree 50k 3D elements > validate changed element visibility |
2252 ms |
1584 ms |
42.17% |
🚨 |
models tree 50k 3D elements > validate changed element visibility (P95 of main thread blocks) |
52 ms |
24 ms |
116.67% |
〰️ |
models tree 50k 3D child elements with different categories > collect nodes |
42331 ms |
47633 ms |
-11.13% |
✅ |
models tree 50k 3D child elements with different categories > collect nodes (P95 of main thread blocks) |
55 ms |
33 ms |
66.67% |
〰️ |
models tree 50k 3D child elements with different categories > validate initial visibility |
2167 ms |
1633 ms |
32.70% |
🚨 |
models tree 50k 3D child elements with different categories > validate initial visibility (P95 of main thread blocks) |
0 ms |
25 ms |
-100% |
〰️ |
models tree 50k 3D child elements with different categories > change visibility |
46 ms |
52 ms |
-11.54% |
〰️ |
models tree 50k 3D child elements with different categories > change visibility (P95 of main thread blocks) |
0 ms |
0 ms |
0% |
🟰 |
models tree 50k 3D child elements with different categories > validate changed visibility |
5456 ms |
4130 ms |
32.11% |
🚨 |
models tree 50k 3D child elements with different categories > validate changed visibility (P95 of main thread blocks) |
76 ms |
42 ms |
80.95% |
〰️ |
models tree 50k 3D child elements with different categories and excluded classes > collect nodes |
42732 ms |
48374 ms |
-11.66% |
✅ |
models tree 50k 3D child elements with different categories and excluded classes > collect nodes (P95 of main thread blocks) |
73 ms |
38 ms |
92.11% |
〰️ |
models tree 50k 3D child elements with different categories and excluded classes > validate initial visibility |
2367 ms |
2111 ms |
12.13% |
🚨 |
models tree 50k 3D child elements with different categories and excluded classes > validate initial visibility (P95 of main thread blocks) |
46 ms |
27 ms |
70.37% |
〰️ |
models tree 50k 3D child elements with different categories and excluded classes > change visibility |
45 ms |
51 ms |
-11.76% |
〰️ |
models tree 50k 3D child elements with different categories and excluded classes > change visibility (P95 of main thread blocks) |
0 ms |
0 ms |
0% |
🟰 |
models tree 50k 3D child elements with different categories and excluded classes > validate changed visibility |
7361 ms |
5504 ms |
33.74% |
🚨 |
models tree 50k 3D child elements with different categories and excluded classes > validate changed visibility (P95 of main thread blocks) |
80 ms |
111 ms |
-27.93% |
〰️ |
categories tree 50k subCategories search > get search paths |
973 ms |
738 ms |
31.84% |
🚨 |
categories tree 50k subCategories search > get search paths (P95 of main thread blocks) |
78 ms |
82 ms |
-4.88% |
〰️ |
categories tree 50k subCategories search > load hierarchy from search paths |
5393 ms |
3292 ms |
63.82% |
🚨 |
categories tree 50k subCategories search > load hierarchy from search paths (P95 of main thread blocks) |
51 ms |
36 ms |
41.67% |
〰️ |
categories tree 50k subCategories > collect nodes |
5226 ms |
3326 ms |
57.13% |
🚨 |
categories tree 50k subCategories > collect nodes (P95 of main thread blocks) |
37 ms |
24 ms |
54.17% |
〰️ |
categories tree 50k subCategories > validate initial visibility |
1226 ms |
1009 ms |
21.51% |
🚨 |
categories tree 50k subCategories > validate initial visibility (P95 of main thread blocks) |
29 ms |
0 ms |
2900% |
〰️ |
categories tree 50k subCategories > change visibility |
356 ms |
320 ms |
11.25% |
〰️ |
categories tree 50k subCategories > change visibility (P95 of main thread blocks) |
23 ms |
0 ms |
2300% |
〰️ |
categories tree 50k subCategories > validate changed visibility |
1114 ms |
968 ms |
15.08% |
🚨 |
categories tree 50k subCategories > validate changed visibility (P95 of main thread blocks) |
30 ms |
0 ms |
3000% |
〰️ |
categories tree 50k categories > collect nodes |
89144 ms |
89103 ms |
0.05% |
〰️ |
categories tree 50k categories > collect nodes (P95 of main thread blocks) |
44 ms |
38 ms |
15.79% |
〰️ |
categories tree 50k categories > validate initial visibility |
6394 ms |
4716 ms |
35.58% |
🚨 |
categories tree 50k categories > validate initial visibility (P95 of main thread blocks) |
119 ms |
76 ms |
56.58% |
〰️ |
categories tree 50k categories > change visibility |
862 ms |
649 ms |
32.82% |
🚨 |
categories tree 50k categories > change visibility (P95 of main thread blocks) |
63 ms |
46 ms |
36.96% |
〰️ |
categories tree 50k categories > validate changed visibility |
5748 ms |
4313 ms |
33.27% |
🚨 |
categories tree 50k categories > validate changed visibility (P95 of main thread blocks) |
41 ms |
0 ms |
4100% |
〰️ |
categories tree 50k categories and excluded classes > collect nodes |
89153 ms |
92873 ms |
-4.01% |
〰️ |
categories tree 50k categories and excluded classes > collect nodes (P95 of main thread blocks) |
40 ms |
34 ms |
17.65% |
〰️ |
categories tree 50k categories and excluded classes > validate initial visibility |
6968 ms |
5032 ms |
38.47% |
🚨 |
categories tree 50k categories and excluded classes > validate initial visibility (P95 of main thread blocks) |
196 ms |
118 ms |
66.10% |
🚨 |
categories tree 50k categories and excluded classes > change visibility |
835 ms |
626 ms |
33.39% |
🚨 |
categories tree 50k categories and excluded classes > change visibility (P95 of main thread blocks) |
60 ms |
45 ms |
33.33% |
〰️ |
categories tree 50k categories and excluded classes > validate changed visibility |
7947 ms |
6124 ms |
29.77% |
🚨 |
categories tree 50k categories and excluded classes > validate changed visibility (P95 of main thread blocks) |
32 ms |
0 ms |
3200% |
〰️ |
classifications tree 50k classifications search > get search paths |
2246 ms |
1556 ms |
44.34% |
🚨 |
classifications tree 50k classifications search > get search paths (P95 of main thread blocks) |
197 ms |
124 ms |
58.87% |
🚨 |
classifications tree 50k classifications search > load hierarchy from search paths |
45217 ms |
48959 ms |
-7.64% |
〰️ |
classifications tree 50k classifications search > load hierarchy from search paths (P95 of main thread blocks) |
0 ms |
27 ms |
-100% |
〰️ |
classifications tree 50k classifications > collect nodes |
16386 ms |
21981 ms |
-25.45% |
✅ |
classifications tree 50k classifications > collect nodes (P95 of main thread blocks) |
105 ms |
29 ms |
262.07% |
🚨 |
classifications tree 50k classifications > validate initial visibility |
10649 ms |
5826 ms |
82.78% |
🚨 |
classifications tree 50k classifications > validate initial visibility (P95 of main thread blocks) |
7659 ms |
3760 ms |
103.70% |
🚨 |
classifications tree 50k classifications > change visibility |
160 ms |
114 ms |
40.35% |
〰️ |
classifications tree 50k classifications > change visibility (P95 of main thread blocks) |
23 ms |
0 ms |
2300% |
〰️ |
classifications tree 50k classifications > validate changed visibility |
3538 ms |
2511 ms |
40.90% |
🚨 |
classifications tree 50k classifications > validate changed visibility (P95 of main thread blocks) |
67 ms |
46 ms |
45.65% |
〰️ |
classifications tree 50k classifications and excluded classes > collect nodes |
17152 ms |
23426 ms |
-26.78% |
✅ |
classifications tree 50k classifications and excluded classes > collect nodes (P95 of main thread blocks) |
41 ms |
24 ms |
70.83% |
〰️ |
classifications tree 50k classifications and excluded classes > validate initial visibility |
11623 ms |
5553 ms |
109.31% |
🚨 |
classifications tree 50k classifications and excluded classes > validate initial visibility (P95 of main thread blocks) |
8887 ms |
3308 ms |
168.65% |
🚨 |
classifications tree 50k classifications and excluded classes > change visibility |
152 ms |
110 ms |
38.18% |
〰️ |
classifications tree 50k classifications and excluded classes > change visibility (P95 of main thread blocks) |
22 ms |
0 ms |
2200% |
〰️ |
classifications tree 50k classifications and excluded classes > validate changed visibility |
3386 ms |
2327 ms |
45.51% |
🚨 |
classifications tree 50k classifications and excluded classes > validate changed visibility (P95 of main thread blocks) |
59 ms |
44 ms |
34.09% |
〰️ |
This comment was automatically generated by workflow using github-action-benchmark.
Contributor
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
Several upgraded packages have peer requirements incompatible with the declared iTwin Core and React versions.
Review effort: Balanced
Findings: 4
Open (4)
What changed in this PR
Updates the tree widget dependency stack and adapts code, styling, tests, and documentation to revised APIs.
Changes:
- Upgrades iTwin Presentation, StrataKit, MUI, and Playwright dependencies.
- Migrates hierarchy access from class inspectors to schema providers.
- Updates spacing tokens, tests, screenshots, and documentation.
| File | Description |
|---|---|
pnpm-workspace.yaml |
Adds Playwright overrides and removes alpha exclusions. |
packages/tree-widget/vitest.config.ts |
Tightens screenshot comparison threshold. |
packages/tree-widget/src/tree-widget-react/trees/models-tree/ModelsTreeDefinition.ts |
Migrates model hierarchy schema access. |
packages/tree-widget/src/tree-widget-react/trees/models-tree/internal/visibility/SearchResultsTree.ts |
Updates schema-access types. |
packages/tree-widget/src/tree-widget-react/trees/models-tree/internal/visibility/ModelsTreeVisibilityHandler.ts |
Updates visibility-handler access types. |
packages/tree-widget/src/tree-widget-react/trees/models-tree/internal/UseSearchPaths.ts |
Updates search-path schema access. |
packages/tree-widget/src/tree-widget-react/trees/imodel-content-tree/IModelContentTreeDefinition.ts |
Migrates hierarchy definition API. |
packages/tree-widget/src/tree-widget-react/trees/external-sources-tree/ExternalSourcesTreeDefinition.ts |
Migrates labels and hierarchy APIs. |
packages/tree-widget/src/tree-widget-react/trees/classifications-tree/internal/visibility/SearchResultsTree.ts |
Updates schema-access types. |
packages/tree-widget/src/tree-widget-react/trees/classifications-tree/internal/visibility/ClassificationsTreeVisibilityHandler.ts |
Updates visibility-handler types. |
packages/tree-widget/src/tree-widget-react/trees/classifications-tree/ClassificationsTreeDefinition.ts |
Migrates classification hierarchy APIs. |
packages/tree-widget/src/tree-widget-react/trees/categories-tree/internal/visibility/SearchResultsTree.ts |
Updates category schema-access types. |
packages/tree-widget/src/tree-widget-react/trees/categories-tree/internal/visibility/CategoriesTreeVisibilityHandler.ts |
Updates visibility-handler types. |
packages/tree-widget/src/tree-widget-react/trees/categories-tree/CategoriesTreeDefinition.ts |
Migrates category hierarchy APIs. |
packages/tree-widget/src/tree-widget-react/tree-header/WidgetHeader.css |
Migrates spacing tokens. |
packages/tree-widget/src/tree-widget-react/tree-header/SelectableTree.css |
Migrates toolbar spacing tokens. |
packages/tree-widget/src/tree-widget-react/shared/internal/hooks/UseIModelAccess.ts |
Uses the new schema-provider API. |
packages/tree-widget/src/tree-widget-react/shared/internal/hooks/UseCachedVisibility.ts |
Updates cached visibility types. |
packages/tree-widget/src/tree-widget-react/shared/components/VisibilityTree.tsx |
Updates the public visibility factory type. |
packages/tree-widget/src/tree-widget-react/shared/components/TreeNodeVisibilityButton.tsx |
Renames the memoized component function. |
packages/tree-widget/src/tree-widget-react/shared/components/TreeNodeCheckbox.scss |
Migrates a spacing token. |
packages/tree-widget/src/tree-widget-react/shared/components/Tree.css |
Migrates tree padding token. |
packages/tree-widget/src/tree-widget-react/shared/components/SkeletonTree.css |
Migrates skeleton spacing tokens. |
packages/tree-widget/src/tree-widget-react/shared/components/EmptyTree.css |
Migrates empty-state spacing tokens. |
packages/tree-widget/src/test/trees/models-tree/internal/ModelsTreeVisibilityHandler.Unit.test.ts |
Uses valid IDs and revised access types. |
packages/tree-widget/src/test/trees/Common.ts |
Updates test schema-provider creation. |
packages/tree-widget/src/test/shared/internal/AlwaysAndNeverDrawnElementInfoCache.test.ts |
Avoids invalid zero IDs. |
packages/tree-widget/src/e2e-tests/IModelContentTree.test.ts |
Adjusts expanded-tree screenshot coverage. |
packages/tree-widget/README.md |
Updates hierarchy API examples. |
packages/tree-widget/package.json |
Upgrades tree-widget dependencies. |
packages/tree-widget/api/tree-widget-react.api.md |
Refreshes the extracted API contract. |
packages/test-utilities/tsconfig.json |
Adds Node global types. |
packages/test-utilities/src/test-utilities/IModelUtils.ts |
Removes obsolete element-property casts. |
packages/test-utilities/package.json |
Upgrades Presentation Shared. |
packages/property-grid/pnpm-lock.yaml |
Refreshes Playwright resolutions. |
packages/property-grid/package.json |
Upgrades Playwright tooling. |
apps/test-viewer/src/components/custom-classifications-tree/CustomClassificationsTree.tsx |
Migrates custom schema-provider creation. |
apps/test-viewer/package.json |
Upgrades viewer dependencies. |
apps/performance-tests/src/tree-widget/StatelessHierarchyProvider.ts |
Simplifies schema-provider construction. |
apps/performance-tests/pnpm-lock.yaml |
Refreshes dependency resolutions. |
apps/performance-tests/package.json |
Upgrades performance-test dependencies. |
apps/learning-snippets/src/test/tree-widget/CustomVisibilityTree.test.tsx |
Updates hierarchy API usage. |
apps/learning-snippets/src/test/tree-widget/CustomTree.test.tsx |
Updates hierarchy API usage. |
apps/learning-snippets/package.json |
Upgrades learning-app dependencies. |
Files not reviewed (2)
- apps/performance-tests/pnpm-lock.yaml: Generated file
- packages/property-grid/pnpm-lock.yaml: Generated file
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
grigasp
reviewed
Oct 2, 2026
grigasp
approved these changes
Oct 9, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

No description provided.