# Builder Notes (Thob) — Task 1: Camera Preset Switching ## Thob Observations from Task Notes - **Possible:** Partial - **Implementation used:** Perspective Camera component with Make Default toggle, plus attempt to bind UI buttons for preset switching. - **What worked as expected:** - Perspective Camera can be set as default view. - Static/default camera setup is achievable quickly. - **Main limitation observed:** - Button-to-camera prop wiring is not intuitive. - Could not make button interaction fully functional end-to-end for preset switching. - **Builder flow used:** 1. Add Perspective Camera component. 2. Toggle Make Default. 3. Create/prepare buttons for camera presets. 4. Attempt to bind button actions to camera property changes. 5. Validate if preset switching works reliably. - **Complexity:** Hard (for interaction wiring), Easy (for static camera setup). - **Main limitation signals:** Editor UX + Event system + Runtime stability concerns. - **Workaround status:** Partial workaround only (use default/static camera view; advanced preset switching done outside current builder flow). ## Console Warnings/Errors Seen (Deduplicated) and Probable Meaning ### warn: `Found both blacklist and siteRules — using siteRules` - **Type:** Configuration precedence warning. - **Probable meaning:** Two rule sources are present and runtime is choosing one (`siteRules`) over another (`blacklist`). - **Impact:** Usually not fatal, but indicates potentially conflicting configuration paths. ### warn: `... changing from uncontrolled to controlled` and `RadioGroup is changing from uncontrolled to controlled` - **Type:** React state-management warning. - **Probable meaning:** Form/UI controls mount without stable values and later receive controlled values. - **Impact:** Can cause inspector/control instability and unpredictable panel interactions. ### warn: `Permissions-Policy header: Unrecognized feature: 'browsing-topics'` - **Type:** Browser/header compatibility warning. - **Probable meaning:** Response includes an unsupported Permissions-Policy directive. - **Impact:** Low impact on core scene behavior; mostly environment noise. ### warn: `Unchecked runtime.lastError: The message port closed before a response was received` - **Type:** Browser runtime/extension messaging warning. - **Probable meaning:** A message channel closed before callback response. - **Impact:** Usually low for core feature validation, but adds debugging noise. ### warn: `GetBindingData method already registered` (repeated) - **Type:** Duplicate registration warning. - **Probable meaning:** Binding handlers are being attached multiple times (rerender/remount/reconnect path). - **Impact:** High log noise, risk of duplicated updates, and potential event binding instability. ### warn: `update-static-component-prop method already registered` - **Type:** Duplicate command/update pipeline warning. - **Probable meaning:** Static prop update handler is registered repeatedly. - **Impact:** Can trigger repeated prop writes and inconsistent behavior while testing button bindings. ### warn: `resetPOI method already registered` - **Type:** Duplicate command registration warning. - **Probable meaning:** Camera/POI reset handler is attached multiple times. - **Impact:** Camera control actions may execute more than once and drift state. ### error: `Failed to load resource: the server responded with a status of 404` - **Type:** Network/resource error. - **Probable meaning:** Requested asset/resource ID is missing, stale, or unavailable. - **Impact:** Missing dependencies can break or partially block expected editor behavior. ### error: `THREE.WebGLRenderer: Context Lost` - **Type:** Graphics runtime error. - **Probable meaning:** WebGL context dropped due to resource pressure, remount cycles, or browser/GPU reset. - **Impact:** Preview can freeze/black out, making interaction validation unreliable. ## Overall Read - Task 1 goal is partially achievable in builder: default camera setup works, but interactive preset switching through button binding remains difficult. - Logs show a strong pattern of duplicate registration warnings around binding and prop update paths, which aligns with the observed interaction wiring problems. - UI controlled/uncontrolled warnings and intermittent WebGL/context/network issues further reduce confidence while testing button-driven camera behavior. - Product priority for this task should focus on reliable action-to-prop binding flow and registration lifecycle cleanup.