- communication.ts에서 machine 프록시를 모듈 로드 시 한 번만 초기화
- 10개 API 메서드에서 매번 hostObjects.machine 접근하던 오버헤드 제거
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Backend changes (C#):
- Add CopyRecipe method to MachineBridge
- Generates new GUID for copied recipe
- Returns new recipe with current timestamp
- Add DeleteRecipe method to MachineBridge
- Prevents deletion of currently selected recipe
- Returns success/failure status
- Add COPY_RECIPE and DELETE_RECIPE handlers in WebSocketServer
Frontend changes (React/TypeScript):
- Add CopyRecipe and DeleteRecipe to Window interface types
- Add copyRecipe and deleteRecipe methods to communication layer
- Implement handleCopy in RecipePage
- Prompts user for new name
- Adds copied recipe to list
- Selects newly copied recipe
- Implement handleDelete in RecipePage
- Shows confirmation dialog
- Removes recipe from list
- Selects next available recipe
- Connect Copy and Delete buttons with handlers
- Disable buttons when no recipe is selected
🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
- Update Window interface in types.ts to include SelectRecipe method
- Change chrome and webview to optional properties (chrome?, webview?)
- Add non-null assertions (!) to all window.chrome.webview accesses
- Remove LoadRecipe (replaced with SelectRecipe)
- Fix TypeScript strict null checking errors
🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
- Implement WebView2-based HMI frontend with React + TypeScript + Vite
- Add C# .NET backend with WebSocket communication layer
- Separate UI components into modular structure:
* RecipePanel: Recipe selection and management
* IOPanel: I/O monitoring and control (32 inputs/outputs)
* MotionPanel: Servo control for X/Y/Z axes
* CameraPanel: Vision system feed with HUD overlay
* SettingsModal: System configuration management
- Create reusable UI components (CyberPanel, TechButton, PanelHeader)
- Implement dual-mode communication (WebView2 native + WebSocket fallback)
- Add 3D visualization with Three.js/React Three Fiber
- Fix JSON parsing bug in configuration save handler
- Include comprehensive .gitignore for .NET and Node.js projects
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>