Rob Colbert
c14c3a235a
fix: ACE editor integration crash — React 19 compat, Vite ?url pattern, Error Boundary
...
Root causes:
- react-ace v12 doesn't support React 19 (project uses ^19.2.5)
- Dynamic import(`ace-builds/src-noconflict/mode-${language}`) broken with Vite
(template-literal dynamic imports can't be statically analyzed)
- No React Error Boundaries — ACE render crash whitescreens entire app
- ace-builds/react-ace duplicated in backend package.json
Fixes:
1. Upgrade react-ace ^12.0.0 → ^14.0.1 (React 19 support)
2. Upgrade ace-builds ^1.36.0 → ^1.43.6
3. Remove ACE deps from backend package.json (not used by Express)
4. Replace broken dynamic imports with Vite ?url + ace.config.setModuleUrl()
pattern (canonical Vite solution per ace#4597)
5. Add ErrorBoundary component wrapping EditorPanel
6. Add vite.d.ts type declarations for ?url/?raw/?worker imports
7. Fix worker-typescript import (doesn't exist — TS uses worker-javascript)
8. Register 24 language modes, 4 workers, 1 theme, 2 extensions
Verified: TypeScript clean, production build passes, heartbeat worker intact.
2026-05-12 21:36:22 -04:00
Rob Colbert
1e13f95808
Phase 2: ACE Editor integration and file operations
...
- Added react-ace and ace-builds dependencies
- Created EditorPanel component with ACE editor integration
- Implemented file read/write socket protocol
- Added backend handlers for fileReadRequest and fileWriteRequest
- Implemented file loading from tree click
- Implemented file saving with Ctrl+S shortcut
- Added dirty state tracking and unsaved changes indicator
- Enforced workspace mode (read-only in Agent mode)
- Added security: path traversal prevention, binary file detection, file size limits
- Updated FilesPanel with split view (tree + editor)
Enables Users to edit files for the first time in Gadget Code.
2026-05-12 19:32:58 -04:00
Rob Colbert
0bb789ea6b
welcome to The Grid
2026-05-01 22:28:22 -04:00
Rob Colbert
404532012e
move from Types.ObjectId to GadgetId (a string)
2026-05-01 14:31:00 -04:00
Rob Colbert
50b9618d4e
project manager and chat session progress
2026-05-01 08:13:22 -04:00
Rob Colbert
f900ecb3dd
added project service
2026-04-28 16:18:21 -04:00
Rob Colbert
cc6d3b901a
refactor gadget-code model interfaces to @gadget/api
...
Moved all Mongoose model interfaces to @gadget/api to commonize the data
structures being passed around the system as JSON objects via HTTP and
Socket.IO.
2026-04-28 12:42:32 -04:00
Rob Colbert
1edc3a85b8
created by merging gadget-code and gadget-drone
2026-04-28 09:20:37 -04:00