doc: statusnotering för v2-implementationen (doc/status.md) + länk i README

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

View File

@@ -18,10 +18,14 @@ hooks). **v2** byter fundament: en enskild Go-binär, [`helmd/`](helmd/),
äger en tmux-session med agenten (**agy**) och exponerar REST+SSE — äger en tmux-session med agenten (**agy**) och exponerar REST+SSE —
tmux-skärmen är sanningskällan i stället för agent-specifika hooks. tmux-skärmen är sanningskällan i stället för agent-specifika hooks.
- Server: klar — se [`helmd/README.md`](helmd/README.md) (API, säkerhet, test) - **Status just nu: [`doc/status.md`](doc/status.md)** (vad som är klart,
deployat, verifierat och vad som återstår)
- Server + webbklient: klara — se [`helmd/README.md`](helmd/README.md)
(API, säkerhet, test)
- Plan (server → webbklient → Android): [`doc/plan.md`](doc/plan.md) - Plan (server → webbklient → Android): [`doc/plan.md`](doc/plan.md)
- Release: rullande [`helmd-latest`](https://gitea.brasse-pc.eu/brasse/agent-helm/releases) - Release: rullande [`helmd-latest`](https://gitea.brasse-pc.eu/brasse/agent-helm/releases)
(`helmd-linux-x64` + arm64) (`helmd-linux-x64` + arm64, webbklienten inbyggd); Pi5-instans på
`http://192.168.0.19:8788` (LAN-only)
Allt nedanför denna linje beskriver **v1** (Node-stacken i Allt nedanför denna linje beskriver **v1** (Node-stacken i
`packages/`), som ligger kvar tills webbklienten är portad. `packages/`), som ligger kvar tills webbklienten är portad.

70
doc/status.md Normal file
View File

@@ -0,0 +1,70 @@
# agent-helm v2 — statusnotering 2026-08-05
Var vi står i implementationen. Uppdatera denna fil när läget ändras.
(Planen och besluten: [plan.md](plan.md). Full teknisk doc:
[../helmd/README.md](../helmd/README.md).)
## Läge: steg 1 + 2 klara och deployade, steg 3 (Android) kvar
| Del | Status | Var |
|-----|--------|-----|
| **helmd-servern** (Go, REST+SSE, tmux-ägare) | ✅ klar, testad | `helmd/` |
| **Webbklienten** (ramverksfri SPA, `go:embed`) | ✅ klar, browser-testad mot riktig agy | `helmd/web/` |
| **Release-binärer** (x64 + arm64, webbklient inbyggd) | ✅ rullande `helmd-latest` | [releases](https://gitea.brasse-pc.eu/brasse/agent-helm/releases) |
| **Docker-image** (arm64, alpine + tmux/bash) | ✅ byggs i CI | `localhost:5000/helmd:latest` |
| **Pi5-deploy** (LAN-only, ingen NPM-vhost) | ✅ kör | stack `/srv/dockge-staks/helmd/`, `http://192.168.0.19:8788` |
| **Android-klient** (egen SSH-tunnel) | ⬜ ej påbörjad | steg 3 i plan.md |
| v1 (Node: daemon/server/web + rcai.brasse-pc.eu) | 🟡 kvar orörd tills v2 helt ersatt | `packages/` |
## Så kör man det (snabbref)
```bash
# Arbetsstationen (styr riktiga agy):
curl -fsSL -o ~/.local/bin/helmd https://gitea.brasse-pc.eu/brasse/agent-helm/releases/download/helmd-latest/helmd-linux-x64
chmod +x ~/.local/bin/helmd
helmd serve # UI + API på http://127.0.0.1:8788
helmd token # token till login
# Pi5-instansen (sessioner kör i containern):
# UI: http://192.168.0.19:8788 (endast LAN)
# token: sudo docker exec helmd helmd token
# Utifrån: ssh -L 8788:192.168.0.19:8788 <pi5> och surfa till localhost:8788
# Dela en fil från agenten till klienterna:
helmd share --note "rapport" fil.html
```
## Vad som är verifierat
- 29/29 integrationstester i isolerad Docker-container
(`helmd/scripts/run-integration.sh`) — hela API-ytan inkl. auth,
frågesvar (siffer- och pilnavigering), delningar, notify-regler, SSE.
- Enhetstester för frågedetektorn mot **riktiga agy 1.1.9-dumpar**
(godkännande, trust, inramad picker, markdown-falsklarm).
- End-to-end i browser mot riktig agy: prompt → godkännandefråga →
frågekort → svar → kommandot kört; markdown/bild-delningar renderade.
- Pi5-deployen från LAN: UI 200, API 401 utan token, bash-session i
containern svarar.
## Kända begränsningar / öppna punkter
1. **`mode cycle` (Shift+Tab) är overifierad mot agy** — tangenten
skickas korrekt (BTab), men att agy faktiskt byter läge är inte
bekräftat. Testa; annars finns `POST /keys` som fallback.
2. **Ingen agent i Pi5-containern ännu** — sessioner där kör bash.
Kandidater: claude-code (arm64) eller agy om Google släpper arm64.
3. PWA-manifest finns men ingen service worker — "installera som app"
funkar, offline-cache saknas (planerad ihop med Android-steget).
4. ntfy-notiser vid ny fråga är PÅ för Pi5-instansen (topic
`agent-helm`) — kan bli spammigt med många sessioner; stängs av i
Inställningar-fliken i så fall.
5. v1-stacken (`agent-helm` på :8787 / rcai.brasse-pc.eu) kör kvar men
är död funktionellt (Gemini-OAuth) — riv när v2 känns komplett,
inkl. NPM-vhosten `rcai`.
## Nästa steg (steg 3)
Android-klient som sätter upp sin **egen SSH-tunnel** till Pi5 och
pratar med helmd genom den. Lutning: Capacitor-wrap av webbklienten +
SSH-bibliotek (alternativt native Kotlin om tunnelkontrollen kräver
det). Push utifrån: ntfy-appen prenumererar redan på `agent-helm`.