Repository navigation
Conversation
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Want reviews to match your repository better? Bugbot Learning can learn team-specific rules from PR activity. A team admin can enable Learning in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 747292e. Configure here.
| <WallTreatmentMiterSystem /> | ||
| <WallSystem geometryAdapter={curtainWallGeometryAdapter} /> | ||
| <WallCutout materialResolver={getCurtainAwareWallMaterials} /> | ||
| <WallCutout materialResolver={materialResolver} /> |
There was a problem hiding this comment.
Resolver updates skip batched walls
Medium Severity
setWallMaterialsResolver refreshes WallCutout through useSyncExternalStore, but WallBatchSystem still keys appearance only on shading, textures, theme, and scene materials. After a floor is sewn, a host swap that changes opaque visible materials leaves the merged meshes on the old set while the per-wall meshes stay hidden.
Additional Locations (1)
Reviewed by Cursor Bugbot for commit 747292e. Configure here.


WallCutoutalready accepts amaterialResolver, butWallSystemshard-wiresgetCurtainAwareWallMaterials, so a host cannot restyle cut-away walls without forking the wall kind (plugins cannot re-registerwall).This adds
setWallMaterialsResolver(resolver | null), read byWallSystemsthroughuseSyncExternalStore(nullrestores the default), and exportsgetCurtainAwareWallMaterialsso a host can wrap the default and replace one variant — for example a low stub in place of the translucent film for cut walls.No behaviour change by default.
bun run check-types --filter=@pascal-app/nodes: passesNote
Low Risk
Opt-in API with the same default resolver; only affects wall cutaway material styling when hosts override it.
Overview
Hosts can now customize how
WallCutoutpicks wall materials (visible, cut-away, translucent, delete) without replacing the built-in wall kind.A new module holds a module-level resolver defaulting to
getCurtainAwareWallMaterials.setWallMaterialsResolver(resolver | null)swaps it and notifies subscribers;nullrestores the default.getCurtainAwareWallMaterialsis exported from@pascal-app/nodesso hosts can wrap the default and tweak one variant (e.g. cut-away styling).WallSystemsreads the active resolver viauseSyncExternalStoreand passes it intoWallCutoutinstead of hard-wiring the curtain-aware helper. Default behavior is unchanged until a host calls the setter.Reviewed by Cursor Bugbot for commit 747292e. Bugbot is set up for automated code reviews on this repo. Configure here.