Skip to content

Resolve hosted roof support and refuse ambiguous conversion identities - #1110

Merged
Aymericr merged 1 commit into
mainfrom
feat/v2-author-identities
Oct 20, 2026
Merged

Aymericr merged 1 commit into
mainfrom
feat/v2-author-identities

Conversation

@Aymericr

@Aymericr Aymericr commented Oct 20, 2026 •

Copy link
Copy Markdown
Contributor

A hosted create_roof call failed because roof elevation read the browser scene store through the spatial-grid singleton. Resolve wall support and wall tops from the supplied scene graph so the same operation works on the server and in the editor, including raised slabs and support offsets.

A conversion that reused source identifiers across floors could overwrite its candidate nodes and fail with a missing-parent patch. Reject duplicate wall, item, opening and generated mapping keys before any compilation or scene change, with the conflicting ID in the refusal.

Validation: 71 focused core conversion/roof tests and the MCP author_scene/construction suites passed; the core, geometry-script and MCP packages rebuilt. Regression cases cover an unavailable browser store, repeated storey IDs and collisions with generated source mappings. The by-hand alternative remains normal roof placement and scene-tree editing.


Note

Medium Risk
Roof placement logic changed paths from spatial-grid to graph-based wall tops (behavior should match but affects construction); author_scene now hard-fails duplicate ids that might have partially applied before.

Overview
Roof elevation no longer goes through the browser spatial-grid / scene store when computing wall tops. resolveRoofWallTopElevation now derives level ancestry, slab support, and wall height from the passed-in nodes graph (wallSupportForNodes, getWallTop), so hosted MCP create_roof works on saved scenes without useScene.

author_scene rejects duplicate source keys up front—wall and item ids across all levels, opening keys (wallId/i), and generated ids like level/n, room/n/i, light/n/i—with duplicate_source_id and no scene mutation. Tool copy for wall id now states global uniqueness.

Regression tests cover an unavailable browser store, repeated storey wall ids, and item ids that collide with other items or generated mappings.

Reviewed by Cursor Bugbot for commit 14a6c74. Bugbot is set up for automated code reviews on this repo. Configure here.

@Aymericr
Aymericr merged commit 161c931 into main Oct 20, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant