Files
agent-helm/doc/status.md

72 lines
3.8 KiB
Markdown

# agent-helm v2 — statusnotering 2026-08-07
Var vi står i implementationen. Uppdatera denna fil när läget ändras.
(Planen och besluten: [plan.md](plan.md) + [hub-plan.md](hub-plan.md).
Full teknisk doc: [../helmd/README.md](../helmd/README.md).)
## Läge: steg 1 + 2 klara och deployade; steg 4 (hub) pågår; 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` |
| **Hub** (`helmd hub`: agent-uplink + login + web + `helmd ctl`) | ✅ deployad på Pi5 2026-08-07 (stack `helm-hub`, `http://192.168.0.19:8790`) och verifierad end-to-end: agent brasse-linux01 (systemd user-unit) online, session styrd via `ctl` genom hubben | [hub-plan.md](hub-plan.md), `helmd/README.md` |
| **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`.