Design: overlays, notification placement, DSH-1 in the MVP
D25: dashboard tabs and world overlays; premultiplied-alpha flag. D26: one world overlay for all notifications. D27: MVP placement "spawn in front, then stay". D28: DSH-1 (web UI out-of-the-box test) joins the MVP, full dashboard becomes DSH-2. Add the research on notification UI in VR (DESIGN.md, Appendix A). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -103,7 +103,8 @@ FrameAssistant.
|
||||
|
||||
| ID | Requirement | Prio | MVP | Acceptance criteria |
|
||||
|----|-------------|------|-----|---------------------|
|
||||
| DSH-1 | A dashboard tab to control HA entities in VR (approach: Q2, Q3). | S | | Defined after design exploration. |
|
||||
| DSH-1 | A dashboard tab shows HA's web UI (Qt WebEngine) at a configured URL, as a "does it work out of the box" test. | M | ✓ | The page loads in VR and can be operated with the laser; whatever doesn't work out of the box is documented and moved to a later iteration. |
|
||||
| DSH-2 | The full dashboard to control HA entities in VR: everything beyond DSH-1, e.g. login comfort, opening a given HA view (SRV-4), possibly a native approach (Q2, Q3). | S | | Defined after design exploration. |
|
||||
|
||||
### Non-functional (NFR)
|
||||
|
||||
@@ -161,6 +162,7 @@ FrameAssistant.
|
||||
| D14 | 2026-10-05 | MQTT client: **libmosquitto** from Debian's package in the build container, shipped in the release package like `libopenvr_api.so` | Not on the Frame; Qt MQTT would need the exact Qt version (Appendix B) |
|
||||
| D15 | 2026-10-05 | HA MQTT discovery: **own small layer on Qt's JSON classes**, using device-based discovery (one `<prefix>/device/<id>/config` topic with all entities under `cmps`) | No suitable library (Appendix B); HA recommends device-based discovery for multi-entity devices (NFR-7) |
|
||||
| D20 | 2026-10-05 | New requirement UI-1 (status display in the main tab), MVP | Helps testing on the device; little effort |
|
||||
| D28 | 2026-10-05 | DSH-1 split: DSH-1 (MVP) = HA web UI in a tab as an out-of-the-box test; DSH-2 (Should) = the full dashboard. The MVP (D8) now also contains DSH-1 | The user wants to see early whether the simple variant works |
|
||||
|
||||
Design decisions (D16 onward) are in [DESIGN.md](DESIGN.md).
|
||||
|
||||
@@ -271,8 +273,8 @@ use Qt's private API, which requires the exact Qt version.
|
||||
| Sounds, audio from URL | NOT-4, SRV-8 | Qt Multimedia + QtNetwork | ✓ `libQt6Multimedia`, FFmpeg plugin | no |
|
||||
| HTTPS (downloads, WebSocket) | SRV-8, Q3 | Qt TLS plugin | ✓ `libqopensslbackend.so` | no |
|
||||
| Translations | NFR-4 | `QTranslator`, `lupdate`/`lrelease` | ✓ (build-time tools) | no |
|
||||
| Dashboard, HA web UI | DSH-1, Q2 | Qt WebEngine (Quick) | ✓ `libQt6WebEngineCore`, `libQt6WebEngineQuick`, `libQt6WebView` | no; works with our off-screen renderer and Vulkan? Needs a spike |
|
||||
| Dashboard, native UI | DSH-1, Q2/Q3 | HA WebSocket API via Qt WebSockets | ✓ `libQt6WebSockets` | no |
|
||||
| Dashboard, HA web UI | DSH-1, DSH-2, Q2 | Qt WebEngine (Quick) | ✓ `libQt6WebEngineCore`, `libQt6WebEngineQuick`, `libQt6WebView` | no; works with our off-screen renderer and Vulkan? Needs a spike |
|
||||
| Dashboard, native UI | DSH-2, Q2/Q3 | HA WebSocket API via Qt WebSockets | ✓ `libQt6WebSockets` | no |
|
||||
| Haptics, fade, apps | SRV-1/2 | OpenVR | ✓ | no |
|
||||
| Tests | NFR-8 | QtTest | ✓ (host only) | no |
|
||||
|
||||
|
||||
Reference in New Issue
Block a user