# 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. **Livetest med riktig agy 1.1.10 genomfört**: skill-läsning, notifyr/svgc/helmd share med prefix-godkännanden besvarade på distans — hela kedjan höll. Skärmbilder i README. | [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 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 buggar Spåras som issues i repot (upptäckta under agy-livetestet 2026-08-07): 1. [#1 råa OSC 8-hyperlänksekvenser i skärmvyn](https://gitea.brasse-pc.eu/brasse/agent-helm/issues/1) 2. [#2 frågedetektorn: falska positiva på numrerade listor i transkriptet](https://gitea.brasse-pc.eu/brasse/agent-helm/issues/2) 3. [#3 ansi.js felrenderar truecolor-halvblock + tom-skärm-race](https://gitea.brasse-pc.eu/brasse/agent-helm/issues/3) ## 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`.