- Layer visibility toggles now show/hide individual layer images on canvas
- Added tint red checkbox per layer for manual mask verification
- Mask preview modal uses CSS mask-image to show red overlay only on selected areas (white pixels become semi-transparent red, black pixels remain transparent)
- Added spinner icons to Open and Extract Mask buttons during long operations
- Added console.log statements for debugging frontend interactions
- Fixed canvas setup with proper logging
- Added logging to polygon drawing and mask extraction
- Mask extraction now properly loads and passes base image to ComfyUI
- Polygon overlay support when using polygon hint
- Added ora_editor __init__.py for proper package imports
- Updated README with debugging instructions and improved documentation
- Added console.log statements for debugging throughout the app
- Fixed canvas setup with proper logging
- Added logging to startDrawing and addPolygonPoint
- Polygon canvas click handler improved
- Backend logging added to mask extraction, polygon storage
- Mask extraction now properly loads and passes image to ComfyUI
- Polygon overlay support for ComfyUI workflow
- Added logging throughout the application
- Updated mask extraction to load and pass base image to ComfyUI
- Added polygon overlay support for mask extraction
- Added urllib.parse import for URL encoding
- Better error handling and status reporting
- oraEditor function now defined in <head> before x-data directive
- Added <body> tag with x-data attribute
- Added canvas click handler using () to access Alpine instance
- Added id to imageContainer for canvas interaction
- All tests passing (16/16)
- Restored x-data, x-model, x-show, x-for, x-if directives
- All methods defined in Alpine data component
- Canvas click handler properly uses () to access Alpine store
- Open button now works with @click handler
- Created 45 new room scenes from specs
- Added proper .tscn and .gd files for each room
- Wired up transitions based on spec exit information
- Connected to existing rooms (017, 022, 028, 030, 031) where applicable
- Rooms include: dwarfs areas, caves, swamp, castle, and more
- Added kq4_051_ogres_closet scene
- East exit to room 049 (Ogre's Cottage) - bidirectional connection
- Updated room 049 to fix transition to room 051
- Added kq4_050_ogress_kitchen scene
- West exit to room 049 (Ogre's Cottage) - bidirectional connection
- Updated room 049 to fix transition to room 050
- Added kq4_044_inside_whale scene with exit to room 031
- Updated room 031 to add transition to room 044 (bidirectional connection)
- Both transitions validated with exit checker
- Added kq4_043_desert_island scene with 4 exits (north, east, south, west) to room 031
- Updated room 031 to add transition to room 043 (bidirectional connection)
- All 4 exits from room 043 validated with exit checker
- Added kq4_042_fishermans_shack_inside scene with south exit to room 007
- Updated room 007 to add transition to room 042 (bidirectional connection)
- Fixed corrupted room 007 script file
- Both transitions validated with exit checker
- Added kq4_032_ocean_near_island scene with west, east, and south exits to room 031
- Updated room 031 to add north exit to room 032 (bidirectional connection)
- Room 032 north exit to room 040 omitted (room 040 doesn't exist yet)
- Note: Room 032 has 3 exits to room 031 (west, east, south) with unique node names
since Godot doesn't allow duplicate node names. All three call the same handler.
- Added kq4_012_haunted_forest scene with north exit to room 006 and west exit to room 011
- Updated room 006 to add south exit to room 012 (bidirectional connection)
- Updated room 011 to add target UID for room 012 transition
- Room 012 south exit to room 018 omitted (room 018 doesn't exist yet)
- All 4 transitions validated with exit checker
- Added kq4_006_cave_entrance scene with west exit to room 005
- Updated room 005 to include target UID for room 006 transition
- Room 006 south exit to room 012 omitted (room 012 doesn't exist yet)
- Both transitions validated with exit checker
- Add golden_ball_walk_target Node2D at position (1400, 550) on the grassy area above the bridge
- Add golden_ball SetPiece with polygon resource for interactable area
- Connect touched signal to _on_golden_ball_touched handler
- When player uses hand cursor, they walk to the target and narration reveals the golden ball
- Use ScriptBuilder.and_then() to chain walk_to_deferred and narrate actions