docs: added builder notes for task 3

This commit is contained in:
anshk 2026-03-30 20:21:49 +05:30
parent 22cd2eac6b
commit 5d3381114d

View File

@ -0,0 +1,104 @@
# Builder Notes (Thob) — Task 3: Duplicate Object / Duplicate Group
## Thob Observations from Task Notes
- **Possible:** Yes
- **Implementation used:** Duplicate shortcut for both single object and grouped structure.
- **What worked as expected:**
- Duplicating a single object creates a visible copy.
- Duplicating a group also creates a full copied hierarchy.
- Transforms are preserved at duplication time.
- **Key behavior observed:**
- Both object duplicate and group duplicate behave as copy-paste.
- Duplicates are independent; no linking/reference relationship is maintained with source.
- **UX quality:**
- Shortcut-based duplication is fast.
- Missing duplicate mode (linked vs independent) makes behavior limiting for synchronized edits.
- **Builder flow used:**
1. Create base object.
2. Duplicate object using editor shortcut.
3. Create grouped hierarchy.
4. Duplicate the group.
5. Verify copied transforms/structure and check whether source and duplicate remain linked.
- **Complexity:** Medium
- **Main limitation signals:** Editor UX + Schema/Data model.
- **Workaround status:** Use independent duplicate copies only; no linked duplication path found.
## Console Warnings/Errors Seen (Deduplicated) and Probable Meaning
### warn: `Permissions-Policy header unrecognized feature ('browsing-topics')`
- **Type:** Browser/header compatibility warning.
- **Probable meaning:** Server sends a policy directive unsupported by current browser runtime.
- **Impact:** Usually low for duplication behavior; mostly environmental noise.
### warn: `GetBindingData... method already registered` (many IDs)
- **Type:** Duplicate registration warning.
- **Probable meaning:** Binding handlers are re-registered on rerender/reconnect without cleanup.
- **Impact:** High log noise, duplicate callback execution risk, and possible unstable editor reactions.
### warn: `resetPOI method already registered`
- **Type:** Duplicate command registration.
- **Probable meaning:** Camera/POI command pipeline attached multiple times.
- **Impact:** One user action may run multiple times, causing state drift.
### warn: `update-static-component-prop method already registered`
- **Type:** Duplicate update-pipeline registration.
- **Probable meaning:** Static prop update handlers are mounted repeatedly.
- **Impact:** Duplicate writes and inconsistent property panel behavior.
### warn: `Component changing from uncontrolled to controlled` (Popover / RadioGroup / undefined)
- **Type:** React form-state warning.
- **Probable meaning:** Controls mount with unstable/undefined value and later switch to controlled mode.
- **Impact:** UI flicker, unstable inspector controls, and harder-to-trust edit state.
### error: `THREE.GLTFLoader: Invalid plugin found: missing name`
- **Type:** Asset loader/plugin configuration error.
- **Probable meaning:** GLTF plugin object shape is invalid or missing required metadata.
- **Impact:** Import pipeline may partially fail and generate secondary rendering issues.
### warn: `THREE.MaterialLoader: Undefined texture null`
- **Type:** Asset/material reference warning.
- **Probable meaning:** Material references missing texture slot(s).
- **Impact:** Incorrect materials or degraded visual fidelity; usually non-fatal.
### info/warn: `ReconnectingWebSocket reconnecting/open/syncing/...`
- **Type:** Transport/sync lifecycle logs.
- **Probable meaning:** Session reconnect and state sync handshakes are occurring.
- **Impact:** Usually informational, but repeated reconnects can amplify duplicate registration side effects.
### error: `Cannot read properties of null (reading 'contentWindow')`
- **Type:** Runtime exception.
- **Probable meaning:** Message post attempted against iframe/window not mounted or already disposed.
- **Impact:** Preview communication can fail and editor state can desynchronize.
### warn: `Icon component has been deprecated`
- **Type:** Deprecation warning.
- **Probable meaning:** Legacy UI API still in use.
- **Impact:** Low immediate risk; medium future maintenance risk.
### error: `R3F: Div is not part of the THREE namespace`
- **Type:** Critical render-tree composition error.
- **Probable meaning:** DOM node rendered in R3F scene tree without proper bridge/extension.
- **Impact:** Scene subtree can fail rendering, affecting reliability of duplication validation.
### error: `THREE.WebGLRenderer: Context Lost`
- **Type:** Graphics runtime error.
- **Probable meaning:** WebGL context dropped (resource pressure, repeated remounts, browser/GPU reset).
- **Impact:** Canvas interruptions and unreliable editor preview behavior.
### error: `Failed to load resource: 404`
- **Type:** Network/resource error.
- **Probable meaning:** Asset/resource path missing or stale.
- **Impact:** Missing resources can cascade into loader/material warnings.
### warn/error: `Konva has no node with type ambientLight/meshStandardMaterial/boxGeometry/mesh` and layer width/height warnings
- **Type:** Renderer mismatch/runtime warnings.
- **Probable meaning:** Non-Konva scene nodes are being interpreted in a Konva path; invalid layer size updates applied.
- **Impact:** Rendering fallback behavior and layout/render correctness risk.
## Overall Read
- Task objective is functionally reachable in builder: object and group duplication both produce full copies.
- Behavior is strictly independent copy-paste; no linked duplicate mode is currently available.
- Transform and structure preservation are acceptable at duplicate time, but advanced synchronized editing workflows are not supported.
- Console profile indicates substantial runtime/editor noise (duplicate registrations, state-control warnings, renderer/path mismatches), which can reduce confidence in complex scene editing even though basic duplication works.