|
@@ -10,23 +10,23 @@
|
|
|
|
|
|
|
|
### Category: QML Logging Cleanup
|
|
### Category: QML Logging Cleanup
|
|
|
|
|
|
|
|
-- [ ] **REQ-LOG-01**: Remove console.log from onPositionChanged handler in main.qml
|
|
|
|
|
|
|
+- [x] **REQ-LOG-01**: Remove console.log from onPositionChanged handler in main.qml ✅
|
|
|
- Keep `backend.resetActivityTimer()` call
|
|
- Keep `backend.resetActivityTimer()` call
|
|
|
- Delete only the logging statement
|
|
- Delete only the logging statement
|
|
|
|
|
|
|
|
-- [ ] **REQ-LOG-02**: Remove console.log from onPressed handler in main.qml
|
|
|
|
|
|
|
+- [x] **REQ-LOG-02**: Remove console.log from onPressed handler in main.qml ✅
|
|
|
- Keep `backend.resetActivityTimer()` call
|
|
- Keep `backend.resetActivityTimer()` call
|
|
|
|
|
|
|
|
-- [ ] **REQ-LOG-03**: Remove console.log from onClicked handler in main.qml
|
|
|
|
|
|
|
+- [x] **REQ-LOG-03**: Remove console.log from onClicked handler in main.qml ✅
|
|
|
- Keep `backend.resetActivityTimer()` call
|
|
- Keep `backend.resetActivityTimer()` call
|
|
|
|
|
|
|
|
-- [ ] **REQ-LOG-04**: Remove all debug console.log from ConnectionStatus.qml
|
|
|
|
|
|
|
+- [x] **REQ-LOG-04**: Remove all debug console.log from ConnectionStatus.qml ✅
|
|
|
- Lines with "ConnectionStatus:" prefix
|
|
- Lines with "ConnectionStatus:" prefix
|
|
|
|
|
|
|
|
-- [ ] **REQ-LOG-05**: Remove all debug console.log from ExecutionPage.qml
|
|
|
|
|
|
|
+- [x] **REQ-LOG-05**: Remove all debug console.log from ExecutionPage.qml ✅
|
|
|
- Lines with "ExecutionPage:" prefix and image status logs
|
|
- Lines with "ExecutionPage:" prefix and image status logs
|
|
|
|
|
|
|
|
-- [ ] **REQ-LOG-06**: Audit and remove debug logs from other QML files
|
|
|
|
|
|
|
+- [x] **REQ-LOG-06**: Audit and remove debug logs from other QML files ✅
|
|
|
- ModernPatternListPage.qml
|
|
- ModernPatternListPage.qml
|
|
|
- PatternDetailPage.qml
|
|
- PatternDetailPage.qml
|
|
|
- TableControlPage.qml
|
|
- TableControlPage.qml
|
|
@@ -35,47 +35,48 @@
|
|
|
|
|
|
|
|
### Category: Timer Optimization
|
|
### Category: Timer Optimization
|
|
|
|
|
|
|
|
-- [ ] **REQ-TIMER-01**: Convert screen timeout from polling to event-driven
|
|
|
|
|
|
|
+- [x] **REQ-TIMER-01**: Convert screen timeout from polling to event-driven ✅
|
|
|
- Current: 1-second QTimer checking `_check_screen_timeout()` continuously
|
|
- Current: 1-second QTimer checking `_check_screen_timeout()` continuously
|
|
|
- Target: Only schedule timeout check after activity detected
|
|
- Target: Only schedule timeout check after activity detected
|
|
|
- Location: backend.py:140-152
|
|
- Location: backend.py:140-152
|
|
|
|
|
|
|
|
-- [ ] **REQ-TIMER-02**: Ensure screen timeout still works correctly after refactor
|
|
|
|
|
|
|
+- [ ] **REQ-TIMER-02**: Ensure screen timeout still works correctly after refactor ⏳
|
|
|
- Screen should turn off after configured timeout period
|
|
- Screen should turn off after configured timeout period
|
|
|
- Touch should wake screen
|
|
- Touch should wake screen
|
|
|
- No regression in functionality
|
|
- No regression in functionality
|
|
|
|
|
+ - **Status:** Needs hardware testing on Pi
|
|
|
|
|
|
|
|
### Category: WebSocket Optimization
|
|
### Category: WebSocket Optimization
|
|
|
|
|
|
|
|
-- [ ] **REQ-WS-01**: Reduce redundant signal emissions in `_on_ws_message`
|
|
|
|
|
|
|
+- [x] **REQ-WS-01**: Reduce redundant signal emissions in `_on_ws_message` ✅
|
|
|
- Only emit signals when values actually change
|
|
- Only emit signals when values actually change
|
|
|
- Location: backend.py:310-364
|
|
- Location: backend.py:310-364
|
|
|
|
|
|
|
|
-- [ ] **REQ-WS-02**: Remove or reduce print statements in WebSocket handler
|
|
|
|
|
|
|
+- [x] **REQ-WS-02**: Remove or reduce print statements in WebSocket handler ✅
|
|
|
- Keep error logging, remove routine status logging
|
|
- Keep error logging, remove routine status logging
|
|
|
|
|
|
|
|
### Category: Preview Cache Optimization
|
|
### Category: Preview Cache Optimization
|
|
|
|
|
|
|
|
-- [ ] **REQ-CACHE-01**: Cache pattern preview paths after first lookup
|
|
|
|
|
|
|
+- [x] **REQ-CACHE-01**: Cache pattern preview paths after first lookup ✅
|
|
|
- Add dictionary to store `filename → preview_path` mappings
|
|
- Add dictionary to store `filename → preview_path` mappings
|
|
|
- Location: backend.py `_find_pattern_preview()` method
|
|
- Location: backend.py `_find_pattern_preview()` method
|
|
|
|
|
|
|
|
-- [ ] **REQ-CACHE-02**: Invalidate cache appropriately
|
|
|
|
|
|
|
+- [x] **REQ-CACHE-02**: Invalidate cache appropriately ✅
|
|
|
- Clear cache when patterns are refreshed
|
|
- Clear cache when patterns are refreshed
|
|
|
- Don't cache negative results (missing previews)
|
|
- Don't cache negative results (missing previews)
|
|
|
|
|
|
|
|
-### Category: Verification
|
|
|
|
|
|
|
+### Category: Verification (Hardware Required)
|
|
|
|
|
|
|
|
-- [ ] **REQ-VERIFY-01**: Measure idle CPU on Pi 3B+ < 20%
|
|
|
|
|
|
|
+- [ ] **REQ-VERIFY-01**: Measure idle CPU on Pi 3B+ < 20% ⏳
|
|
|
- App running, no user interaction, for 60 seconds
|
|
- App running, no user interaction, for 60 seconds
|
|
|
|
|
|
|
|
-- [ ] **REQ-VERIFY-02**: Measure idle CPU on Pi 4 < 20%
|
|
|
|
|
|
|
+- [ ] **REQ-VERIFY-02**: Measure idle CPU on Pi 4 < 20% ⏳
|
|
|
- App running, no user interaction, for 60 seconds
|
|
- App running, no user interaction, for 60 seconds
|
|
|
|
|
|
|
|
-- [ ] **REQ-VERIFY-03**: Measure idle CPU on Pi 5 < 20%
|
|
|
|
|
|
|
+- [ ] **REQ-VERIFY-03**: Measure idle CPU on Pi 5 < 20% ⏳
|
|
|
- App running, no user interaction, for 60 seconds
|
|
- App running, no user interaction, for 60 seconds
|
|
|
|
|
|
|
|
-- [ ] **REQ-VERIFY-04**: Verify no UI lag during normal operation
|
|
|
|
|
|
|
+- [ ] **REQ-VERIFY-04**: Verify no UI lag during normal operation ⏳
|
|
|
- Scrolling pattern list remains smooth
|
|
- Scrolling pattern list remains smooth
|
|
|
- Touch response remains immediate
|
|
- Touch response remains immediate
|
|
|
|
|
|
|
@@ -93,15 +94,17 @@
|
|
|
|
|
|
|
|
## Summary
|
|
## Summary
|
|
|
|
|
|
|
|
-| Category | v3 Count | Deferred |
|
|
|
|
|
-|----------|----------|----------|
|
|
|
|
|
-| QML Logging | 6 | 0 |
|
|
|
|
|
-| Timer Optimization | 2 | 0 |
|
|
|
|
|
-| WebSocket Optimization | 2 | 0 |
|
|
|
|
|
-| Preview Cache | 2 | 0 |
|
|
|
|
|
-| Verification | 4 | 0 |
|
|
|
|
|
-| **Total** | **16** | **0** |
|
|
|
|
|
|
|
+| Category | v3 Count | Complete | Pending |
|
|
|
|
|
+|----------|----------|----------|---------|
|
|
|
|
|
+| QML Logging | 6 | 6 | 0 |
|
|
|
|
|
+| Timer Optimization | 2 | 1 | 1 |
|
|
|
|
|
+| WebSocket Optimization | 2 | 2 | 0 |
|
|
|
|
|
+| Preview Cache | 2 | 2 | 0 |
|
|
|
|
|
+| Verification | 4 | 0 | 4 |
|
|
|
|
|
+| **Total** | **16** | **11** | **5** |
|
|
|
|
|
+
|
|
|
|
|
+**Note:** 5 pending requirements need hardware verification on Raspberry Pi.
|
|
|
|
|
|
|
|
---
|
|
---
|
|
|
|
|
|
|
|
-*Created: 2026-01-25*
|
|
|
|
|
|
|
+*Updated: 2026-01-25*
|