helmd: inbäddad webbklient (vanilla SPA) + Docker-image för Pi5 (LAN-only)
All checks were successful
helmd-image / build (push) Successful in 36s
helmd-release / build-release (push) Successful in 1m6s

- web/: token-login, sessionslista, ANSI-skärmvy (SSE+poll), promptfält,
  frågekort, tangentrad, delningsflik (bild/HTML-sandbox/markdown), inställningar
- go:embed via webfs.go — servern förblir en enda binär, strikt CSP
- browser-verifierad mot riktig agy (fråga -> kort -> svar -> kört)
- Dockerfile (alpine + tmux/bash) + helmd-image.yaml -> localhost:5000/helmd
- integrationstest utökat till 29 gröna

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-05 22:17:12 +02:00
parent f9f94e59bc
commit 12ffcaa2bd
13 changed files with 830 additions and 6 deletions

View File

@@ -41,11 +41,22 @@ webb-PWA (LAN/tunnel) ─────┼──► helmd :8788 (Go, REST+SSE, tok
(event-pushar + `POST /api/notify`, topics `agent-helm`/`claude`).
- Isolerat integrationstest i Docker (26 tester), CI-release
`helmd-latest` (x64 + arm64).
2. **Webbklient v2** (`packages/web`): porta till helmd-API:t.
- Sessionslista, skärmvy (poll + SSE), promptfält, frågekort med
knappar, läges-/inställningsvy.
- Delningsflik: html/md renderas, png/jpg visas, md till html.
- Uppdaterad look. Serveras statiskt av helmd (embed) eller nginx.
2. **Webbklient v2** (`helmd/web/`): **ramverksfri** ES-modul-SPA,
inbäddad i binären med `go:embed` — hela v2 är fortfarande EN fil,
ingen Node-toolchain i CI. (Beslut: vanilla i stället för Vue-port —
UI-ytan är liten, eslint/byggkedjan försvinner, agenter underhåller
koden lättare.)
- Token-login (localStorage), sessionslista med status/❓-badge,
ANSI-färgad skärmvy (SSE + poll-fallback), promptfält,
**frågekort med knappar**, tangent-verktygsrad (Esc/pilar/Enter/
^C/Läge), delningsflik (bilder, sandboxad HTML-iframe, egen
md-renderare), inställningsvy mot `PUT /api/config`.
- Browser-verifierad mot riktig agy: prompt → godkännandefråga →
svar via kort → kommandot kört; delningar renderade.
- Deploy på Pi5: docker-stack `helmd` (arm64-image via
`.gitea/workflows/helmd-image.yaml``localhost:5000/helmd`),
**LAN-only — ingen NPM-vhost**; sessioner kör bash/agenter i
containern.
3.**Android-klient**: nytt projekt eller Capacitor-port av PWA:n.
- Egen SSH-tunnel (t.ex. sshj/JSch) → Pi5 → helmd; token +
värdprofil i appen; push via ntfy-appen eller UnifiedPush.