|
| 1 | +--- |
| 2 | +name: Map Editor - Remaining Work Tracking |
| 3 | +about: Track remaining items for Local Map Editor production readiness |
| 4 | +title: '[Map Editor] ' |
| 5 | +labels: ['map-editor', 'tracking'] |
| 6 | +assignees: [] |
| 7 | +--- |
| 8 | + |
| 9 | +## Map Editor Remaining Work |
| 10 | + |
| 11 | +This issue tracks remaining work for the Local Map Editor feature. |
| 12 | + |
| 13 | +### High Priority |
| 14 | + |
| 15 | +- [ ] **Map Version Check Before Sync** (P1) |
| 16 | + - Call `MapVerifier.check_map_version()` before `execute_edits()` to prevent stale edits |
| 17 | + - File: `roborock/cli.py` |
| 18 | + - Related: `roborock/map/verifier.py:386-433` |
| 19 | + |
| 20 | +- [ ] **Map Boundary Validation** (P2) |
| 21 | + - Prevent walls/zones outside map dimensions |
| 22 | + - File: `roborock/map/editor.py` (validation methods) |
| 23 | + |
| 24 | +### Medium Priority |
| 25 | + |
| 26 | +- [ ] **Complete Missing Edit Types** |
| 27 | + - [ ] `MopForbiddenZoneEdit` - Mop-only forbidden zones |
| 28 | + - [ ] `CarpetAreaEdit` - Carpet detection areas |
| 29 | + - [ ] `SetRoomOrderEdit` - Room cleaning sequence |
| 30 | + - Files: `roborock/map/editor.py`, `roborock/map/translation.py` |
| 31 | + |
| 32 | +- [ ] **Physical Undo Support** |
| 33 | + - After sync, send inverse commands to device for undo |
| 34 | + - Currently undo only affects local virtual state |
| 35 | + - File: `roborock/cli.py`, `roborock/map/translation.py` |
| 36 | + |
| 37 | +- [ ] **Polygon Zone Support** |
| 38 | + - Currently only rectangular zones supported `(x1,y1,x2,y2)` |
| 39 | + - Add polygon support for complex no-go areas |
| 40 | + - Files: `roborock/map/editor.py`, `roborock/map/geometry.py` |
| 41 | + |
| 42 | +### Low Priority |
| 43 | + |
| 44 | +- [ ] **Wall Intersection Detection** |
| 45 | + - Prevent crossing virtual walls that may confuse firmware |
| 46 | + |
| 47 | +- [ ] **Firmware Error Code Mapping** |
| 48 | + - Map firmware-specific rejection codes to user-friendly messages |
| 49 | + |
| 50 | +- [ ] **Multi-Device Coordination** |
| 51 | + - Edit tokens/leases for concurrent editing |
| 52 | + |
| 53 | +--- |
| 54 | + |
| 55 | +## Completed ✅ |
| 56 | + |
| 57 | +- [x] Pre-sync backup & auto-rollback |
| 58 | +- [x] Dynamic protocol detection (V1/B01/A01) |
| 59 | +- [x] VirtualState persistence (JSON save/load) |
| 60 | +- [x] Concurrency locks (asyncio.Lock) |
| 61 | +- [x] E2E tests |
| 62 | +- [x] Fix _bind_to_map side effects |
0 commit comments