Files
wenilandClaude Opus 4.8 25b101d086 v2: kick off v2-dev — version constant + roadmap
Freeze the classic line on main (tagged v1.0-classic) and open the v2
development branch. Add a firmware version constant (2.0.0-dev) reported in
the boot banner so the daemon can tell classic from v2, and document the
phased v2 plan in docs/v2-roadmap.md.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 13:49:40 +03:00

56 lines
2.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Clawdmeter v2 — roadmap
v2 turns Clawdmeter from a single-purpose usage indicator into a small
multi-app wrist companion for the Waveshare AMOLED-2.06 watch.
- **Classic line** — the stable 2.06 port + working Windows BLE daemon. Frozen on
`main`, tagged `v1.0-classic`. Bugfix-only.
- **v2 development** — this branch (`v2-dev`). When it's ready it merges to `main`
and is tagged `v2.0.0`.
## Architecture decisions (locked)
- **Navigation:** tap the Claude logo (top-left) → app launcher. Each feature is an
"app" screen registered in a registry (`{id, icon, label, show/hide}`), mirroring
the board-HAL pattern: a new app = one registry entry + one screen module, no
edits to shared navigation code.
- **Home Assistant:** routed **through the desktop daemon** (watch → BLE → daemon →
HA REST API). The watch stays dumb; the HA URL/token live on the PC. No WiFi
provisioning or secrets on the watch.
- **Desktop companion:** a **local web UI** (FastAPI, opened from the tray) for
config, firmware flashing, and per-app setup (soundpad labels, HA entity map,
Now Playing).
- **Soundpad:** on-screen buttons emit **F13F18** over the existing BLE HID
keyboard. Requires raising the HID report map's keycode ceiling (currently 101 /
0x65; F13F24 are 0x680x73).
## Phases
| # | Phase | Depends on | Daemon work |
|---|-------|-----------|-------------|
| 0 | Version split — freeze classic, branch `v2-dev`, version constant | — | no |
| 1 | Touch foundation — verify FT3168 coordinate accuracy, calibrate swap/mirror, logo hit-area | — | no |
| 2 | Menu / launcher — app registry, launcher screen, nav stack, back affordance | 1 | no |
| 3 | Soundpad — raise HID ceiling to F24, 6-button screen → F13F18 | 2 | no |
| 4 | Session / tokens — daemon computes today's tokens/$; extend payload + parser + screen | 2 | data |
| 5 | Now Playing — daemon reads Windows media session; new screen | 2 | media |
| 6 | Home Assistant — watch→daemon command characteristic, HA bridge, control screen | 2 | HA bridge |
| 7 | Desktop companion — local web UI: config + one-click firmware flash (esptool, bins from Gitea Releases) | — | big upgrade |
| 8 | Release v2.0 — docs, icons, Gitea release with firmware binaries | all | — |
Each UI phase is verified on hardware via the `screenshot` serial command before
moving on.
## BLE data channel (current + planned)
Custom GATT service `4c41555a-…0001`:
| Char | Dir | Now | v2 plan |
|------|-----|-----|---------|
| `…0002` RX | PC→watch | JSON usage payload | + session/tokens, now-playing fields |
| `…0003` TX | watch→PC | ack/nack | (unchanged) |
| `…0004` REQ | watch→PC | refresh request (0x01) | (unchanged) |
| `…0005` CMD | watch→PC | — | **new:** app commands (HA toggle, etc.) |
Plus the standard BLE HID keyboard (0x1812) for Space / Shift+Tab / soundpad keys.