Updated the HANDOFF document to reflect the latest status, critical issues, and tasks for the ongoing phase 2. Added details on Dockerfile fixes, panel statuses, and next steps for development.
160 lines
5.5 KiB
Markdown
160 lines
5.5 KiB
Markdown
# HANDOFF — Vauco OS
|
|
|
|
**Sist oppdatert:** 2026-06-13 17:00 CEST
|
|
**Skrevet av:** Perplexity (stand-in)
|
|
**Status:** Fase 2 pågår — opax.html paneler og Dockerfile-fix
|
|
|
|
---
|
|
|
|
## ⚠️ KRITISKE REGLER — les alltid først
|
|
|
|
- **Hovudapp:** `main.py` i rot — IKKE `agents/core-logic/app.py`
|
|
- **Dockerfile:** `agents/core-logic/Dockerfile` — skal ha `WORKDIR /app` og `CMD ["uvicorn", "main:app", ...]`
|
|
- **Region:** `us-central1`
|
|
- **Service:** `osvauco-agent`
|
|
- **Prosjekt:** `propane-will-491900-m5`
|
|
- **Test via proxy:** `gcloud run services proxy osvauco-agent --region=us-central1 --project=propane-will-491900-m5 --port=8080`
|
|
- **ALDRI `--audiences`-flag**
|
|
- **Smoke-test:** skal peke på `/health` (ikke `/debug-health`)
|
|
|
|
---
|
|
|
|
## 🔴 Siste kjente problem — Dockerfile base-image
|
|
|
|
Bygg `00401` og `00403` viste fortsatt:
|
|
```
|
|
WORKDIR /app/agents/core-logic
|
|
CMD uvicorn app:app
|
|
```
|
|
Selv etter at `agents/core-logic/Dockerfile` ble fikset.
|
|
|
|
**Rotårsak:** `osvauco-base:latest` base-image inneholder gammel `WORKDIR` og `CMD` som arves.
|
|
|
|
**Siste fix (commit `beb466e`):**
|
|
- `WORKDIR /app` satt eksplisitt først i Dockerfile
|
|
- `COPY docs/ ./docs/` lagt til
|
|
- `CMD ["uvicorn", "main:app", ...]` bekreftet
|
|
- Smoke-test tilbake til `/health`
|
|
|
|
**Hvis neste bygg fortsatt feiler på `/health`:**
|
|
```bash
|
|
gcloud builds submit --config=cloudbuild.base.yaml
|
|
```
|
|
Deretter trigger et nytt bygg.
|
|
|
|
---
|
|
|
|
## 🧪 Panel-status opax.vauco.no (testet 2026-06-13 17:00)
|
|
|
|
| Panel | Status | Problem / Merknad |
|
|
|-------|--------|-------------------|
|
|
| Jason chat | ✅ Svarer | Enkle spørsmål OK — verktøykall ga HTTP 500 (devtools-fix pushet) |
|
|
| CostGuard | ⚠️ Ingen data | Viser "Ingen data tilgjengelig" — løses når riktig app er oppe |
|
|
| Kalkulator | ✅ Fungerer | Slider + ROI live |
|
|
| Cloud Build | ⚠️ Ingen builds | REST-kall fungerer men returnerer tom liste — auth OK |
|
|
| VM-er | ✅ Fungerer | RUNNING, IP, SSH-knapp til GCP |
|
|
| Sites & Moduler | ✅ Fungerer | Alle 6 kort vises |
|
|
| Terminal | 🟡 Skall | JS kaller endepunkter direkte, ingen POST /terminal/exec backend |
|
|
| MD | ⚠️ HTTP 404 | Åpne-knappen feiler — løses når COPY docs/ er i prod |
|
|
| Docs Browser | ⚠️ HTTP 404 | Samme — løses med riktig Dockerfile i prod |
|
|
|
|
---
|
|
|
|
## 🔴 Nåværende oppdrag — gjør i denne rekkefølgen
|
|
|
|
### Oppdrag 1 — Verifiser at Dockerfile-fix er i prod
|
|
```bash
|
|
# Sjekk siste revisjon
|
|
gcloud run services describe osvauco-agent --region=us-central1 \
|
|
--format="value(status.latestReadyRevisionName)"
|
|
|
|
# Test /health
|
|
curl http://localhost:8080/health
|
|
|
|
# Test /docs/
|
|
curl http://localhost:8080/docs/MASTERPLAN.md | head -5
|
|
```
|
|
Hvis HTTP 404 på `/health` → rebuild base-image (se over).
|
|
|
|
### Oppdrag 2 — Terminal backend (main.py)
|
|
Legg til:
|
|
```python
|
|
@app.post("/terminal/exec")
|
|
async def terminal_exec(body: dict):
|
|
cmd = body.get("cmd", "").strip()
|
|
whitelist = {
|
|
"health": lambda: {"output": "OK", "exit_code": 0},
|
|
"billing": "GET /billing/summary",
|
|
"build": "GET /opax/build-status",
|
|
"help": lambda: {"output": "Kommandoer: health billing build logs help", "exit_code": 0},
|
|
}
|
|
if cmd not in whitelist:
|
|
return {"output": f"Ukjent kommando: {cmd}", "exit_code": 1}
|
|
# kall internt og returner output som streng
|
|
```
|
|
Koble `opax.html` terminal-input til `POST /terminal/exec` og vis output.
|
|
|
|
### Oppdrag 3 — VM SSH-nøkkel modal (main.py + opax.html)
|
|
```python
|
|
@app.get("/vm/ssh-key")
|
|
async def vm_ssh_key(instance: str = "osvauco-dev-vm"):
|
|
# hent public key via Compute Engine metadata API
|
|
# google.auth + httpx GET
|
|
# https://compute.googleapis.com/compute/v1/projects/{project}/zones/us-central1-b/instances/{instance}
|
|
return {"public_key": str, "instance": str}
|
|
```
|
|
Legg til "Vis SSH-nøkkel"-knapp på VM-kortet i `opax.html`.
|
|
|
|
---
|
|
|
|
## ✅ Levert og bekreftet
|
|
|
|
| Commit | Hva |
|
|
|--------|-----|
|
|
| `6611927` | `google-cloud-build` i requirements + BQ-migrering |
|
|
| `c114f6c` | billing-dashboard: tre pool-bars, banner, allSettled |
|
|
| `bc501c1` | credit_pools[], effective_days, badge_class |
|
|
| `055a482` | GET /notify/channels — verifisert i prod |
|
|
| `4693fea` | CI-fix: fjernet --audiences fra smoke-test |
|
|
| `39f714a` | MD-panel: marked.js + openMd() |
|
|
| `b5c03d4` | CostGuard: fetchWithTimeout 10s + fallback |
|
|
| `3cc6a83` | Docs Browser: dropdown, auto-load, marked.js |
|
|
| `beb466e` | Dockerfile: WORKDIR /app, COPY docs/, main:app |
|
|
|
|
---
|
|
|
|
## ✅ OQ-logg
|
|
|
|
| OQ | Beskrivelse | Status |
|
|
|----|-------------|--------|
|
|
| OQ-29 | GET /notify/channels | ✅ Prod |
|
|
| OQ-30 | Browser-panel opax.html | ✅ Levert |
|
|
| OQ-31 | credit_pools[] | ✅ Komplett |
|
|
|
|
---
|
|
|
|
## ⚠️ Gjenstår
|
|
|
|
| # | Oppgave | Prioritet |
|
|
|---|---------|----------|
|
|
| 1 | Verifiser Dockerfile-fix i prod (/health + /docs/) | 🔴 Høy |
|
|
| 2 | POST /terminal/exec backend + frontend kobling | Høy |
|
|
| 3 | GET /vm/ssh-key + modal i opax.html | Medium |
|
|
| 4 | Sett varslings env-vars: SENDGRID_API_KEY, TWILIO_ACCOUNT_SID | Lav |
|
|
| 5 | CG7-scope — venter på Chris | Venter |
|
|
| 6 | Emma/Gemma GPU VM — docs/gemma/world.md finnes | Medium |
|
|
|
|
---
|
|
|
|
## 🏗 Systemstatus
|
|
|
|
| Komponent | Status |
|
|
|-----------|--------|
|
|
| Cloud Run `osvauco-agent` | ✅ Live us-central1 |
|
|
| `opax.vauco.no` | ✅ Live — 5/9 paneler fungerer |
|
|
| `costguard.oss.vauco.no` | ⚠️ 403 i inline-panel — åpne direkte i nettleser |
|
|
| Jason ADK | ⚠️ Verktøykall feilet — devtools-fix pushet, venter på deploy |
|
|
| BQ billing export | ✅ Aktiv |
|
|
| Gemma/Emma VM | ⏳ Ikke startet |
|
|
| Kreditt env-vars | ✅ Satt (INFRA 2911 NOK utløper 2026-07-10 ⚠️) |
|