Design: threads and test strategy; high-level architecture done

D29: only the MQTT client runs in its own thread; OpenVR and the HA
layer stay in the main thread. D30: four-level test strategy.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-05 21:36:22 +02:00
co-authored by Claude Opus 5.5
parent 06de5cf184
commit 7e71b83c61
2 changed files with 65 additions and 19 deletions
+15 -16
View File
@@ -5,27 +5,24 @@ CLAUDE.md ("Working rules").
## Current state
- **Iteration 1, phase 2 (planning and design) started.** Phase 1 is approved (D13);
[REQUIREMENTS.md](REQUIREMENTS.md) is the baseline.
- **Iteration 1, phase 2 (planning and design).** Phase 1 is approved (D13);
[REQUIREMENTS.md](REQUIREMENTS.md) is the baseline. High-level architecture done
([DESIGN.md](DESIGN.md)); MVP details next.
## Next steps
Phase 2: first the high-level architecture, then the details for the MVP (D8, plus DSH-1 by
D28). High-level
questions, in this order:
Phase 2: the high-level architecture is done (D16–D30, [DESIGN.md](DESIGN.md)). Next, the
details for the MVP (D8, plus DSH-1 by D28), in this order:
1. ~~Process model~~: one process, several threads (D16).
2. ~~Layers~~: presentation, business logic, I/O (D17).
3. ~~How features plug in~~: object classes (D18), configuration injection (D19), one class
per HA entity type with native types preferred (D23).
4. ~~HA channels~~: MQTT for the device, own channel for the dashboard later (D24).
5. Overlay kinds: dashboard tabs and world overlays (D25), one notification overlay (D26),
MVP placement (D27); DSH-1 web UI test in the MVP (D28).
6. Runtime model: which work runs in which thread (D16: several threads).
7. Test strategy at a high level.
1. Topics and payloads: topic scheme, device and entity ids, discovery content, MVP entity
list, retain and availability.
2. MVP notification: command format and title (MQTT `notify` drops the title).
3. Configuration file format, incl. TLS/CA settings.
4. Shipping libmosquitto (build, package, licence text).
5. NFR-3 measurement method.
Details afterwards (MQTT library done: D14, D15): topics and payloads, basic notification,
configuration, packaging of libmosquitto.
Then the platform changes (start-up hook D21, desktop modes D22, world overlay D25, WebEngine
initialisation for DSH-1) and the implementation plan for iteration 1.
## Log
@@ -42,6 +39,8 @@ configuration, packaging of libmosquitto.
present (relevant for Q2/Q3).
- libmosquitto ABI check: Debian's 2.0.21 needs at most `OPENSSL_3.0.0`/`GLIBC_2.34`; the
Frame has OpenSSL 3.2.1 and glibc 2.39. No libcjson dependency. D14 holds.
- Test strategy in four levels (D30). High-level architecture done.
- Threads: MQTT client in its own thread, everything else incl. OpenVR in the main thread (D29).
- DSH-1 split: web UI out-of-the-box test in the MVP, full dashboard as DSH-2 (D28).
- Overlays: two kinds (D25), one overlay for all notifications (D26), MVP placement "spawn in
front, then stay" (D27). Researched notification UI in VR (DESIGN.md, Appendix A). Found: