104 lines
4.9 KiB
Markdown
104 lines
4.9 KiB
Markdown
# HANDOFF — Vauco OS
|
|
|
|
**Sist oppdatert:** 2026-06-15 06:05 CEST
|
|
**Skrevet av:** Sonar/Perplexity (Orchestrator 2)
|
|
**Status:** Fase 2 — aktiv sesjon
|
|
|
|
---
|
|
|
|
## ⚠️ KRITISKE REGLER — les alltid først
|
|
|
|
- **Hovudapp:** `main.py` i rot — IKKJE `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 8181`
|
|
- **ALDRI** `--audiences`-flag
|
|
- **Smoke-test:** skal peke på `/health` (ikkje `/debug-health`)
|
|
- **Curl mot prod:** Bruk alltid identity token — `TOKEN=$(gcloud auth print-identity-token)` — IAP blokkerer utan
|
|
- **GITHUB_PAT** → migrerer til eigen MCP (planlagt, ikkje kritisk no)
|
|
|
|
---
|
|
|
|
## ✅ Levert — kumulative commits (HEAD: `0e066d8`)
|
|
|
|
| SHA | Commit | Dato |
|
|
|-----|--------|------|
|
|
| `0e066d8` | `feat(vm): SSH-nøkkel-knapp + modal i opax.html — GET /vm/ssh-key` | 2026-06-15 |
|
|
| `afc878b` | `feat(terminal): koble frontend til POST /terminal/exec` | 2026-06-15 |
|
|
| `1e6bc5b` | `fix: replace sync httpx.get with async client in build-status + terminal` | 2026-06-13 |
|
|
| `beb466e` | `fix(docker): start main:app fra /app — ikke agents/core-logic` | 2026-06-13 |
|
|
| `3cc6a83` | `fix(opax): Fix 4 — Docs Browser, marked.js render, default MASTERPLAN.md` | 2026-06-13 |
|
|
| `b5c03d4` | `fix(opax): CostGuard — AbortController 10s timeout + /billing/credits?days=30` | 2026-06-13 |
|
|
| `39f714a` | `fix(opax): MD-panel — bytt renderMd() med marked.js` | 2026-06-13 |
|
|
| `c7e7b28` | `feat(terminal+vm): POST /terminal/exec whitelist + GET /vm/ssh-key` | 2026-06-13 |
|
|
| `d25caf1` | `fix(opax): replace cloudbuild_v1 import with REST API` | 2026-06-13 |
|
|
|
|
### IAM
|
|
- `osvauco-agent-sa` har `roles/cloudbuild.builds.viewer` — satt manuelt 2026-06-13
|
|
|
|
---
|
|
|
|
## 🧪 Panel-status opax.vauco.no (verifisert via sesjonslogs)
|
|
|
|
| Panel | Status | Notat |
|
|
|-------|--------|-------|
|
|
| Jason chat | ✅ Fungerer | |
|
|
| Kalkulator | ✅ Fungerer | |
|
|
| VM-er | ✅ Fungerer | |
|
|
| Sites & Moduler | ✅ Fungerer | |
|
|
| Cloud Build | ⚠️ Viser tom liste | IAM satt, men `/opax/build-status` returnerte `Unauthorized` via proxy — IAP-problem, ikkje app-feil |
|
|
| CostGuard | ⚠️ Ingen data | `GOOGLE_CREDIT_TOTAL_USD` env-var ikkje satt |
|
|
| Terminal | ✅ Frontend kobla (`afc878b`) | Ikkje prod-verifisert etter siste commit |
|
|
| MD-panel | ⚠️ Ikkje verifisert | Fix pusht (`39f714a`), ingen bekreftelse |
|
|
| Docs Browser | ⚠️ Ikkje verifisert | Fix pusht (`3cc6a83`), GITHUB_PAT var problem — no løyst |
|
|
|
|
---
|
|
|
|
## 🔴 Kjente problem
|
|
|
|
### Cloud Build-panel — `Unauthorized`
|
|
`/opax/build-status` returnerer 401 via `gcloud run services proxy`. `Server: Google Frontend` i header = IAP blokkerer. Identity token frå VM-brukar har ikkje tilgang til IAP-ressursen.
|
|
- `osvauco-agent-sa` har `cloudbuild.builds.viewer` ✅
|
|
- Problemet: IAP-bypass for `iap.httpsResourceAccessor` — berre `chris.christiansen@vauco.no` er i lista
|
|
- **Workaround:** Test direkte frå nettlesaren (innlogga Google-sesjon) — IAP-cookie fungerer
|
|
|
|
### CostGuard — ingen data
|
|
Mangler `GOOGLE_CREDIT_TOTAL_USD` env-var på Cloud Run.
|
|
|
|
---
|
|
|
|
## ⚠️ Gjenstår (prioritert)
|
|
|
|
| # | Oppgåve | Prioritet |
|
|
|---|---------|----------|
|
|
| 1 | Verifiser Terminal + MD-panel + Docs Browser i nettlesar | 🔴 Høy |
|
|
| 2 | Sett `GOOGLE_CREDIT_TOTAL_USD` env-var | 🟡 Medium |
|
|
| 3 | Sett `SENDGRID_API_KEY` + `TWILIO_ACCOUNT_SID` | 🟡 Medium |
|
|
| 4 | CG5a — `POST /notify/webhook` i `main.py` | 🟡 Medium |
|
|
| 5 | CG4d — Prisingskalkulator i `static/opax.html` | 🟡 Medium |
|
|
| 6 | CG5b — `POST /notify/email` via SendGrid | 🟡 Medium |
|
|
| 7 | Eigen MCP for GitHub-tilgang (erstatter PAT) | 🟡 Planlagt |
|
|
| 8 | CG7-scope | ⏳ Venter på Chris |
|
|
| 9 | Emma/Gemma GPU VM — `docs/gemma/world.md` | 🟡 Medium |
|
|
| 10 | OAuth allowlist etter domene-migrering (ProISP → Google) | 🟡 Issue open |
|
|
|
|
---
|
|
|
|
## 🏗 Systemstatus
|
|
|
|
- **Cloud Run osvauco-agent:** ✅ Live `us-central1` — HEAD `0e066d8`
|
|
- **opax.vauco.no:** ✅ Live — 4/9 paneler bekrefta grøne, 5 uverifiserte/feil
|
|
- **costguard.oss.vauco.no:** 403 i inline-panel
|
|
- **Kreditt:** 2911 NOK utløper 2026-07-10
|
|
- **Env-vars på Cloud Run:** `GOOGLE_CLOUD_PROJECT`, `GOOGLE_CLOUD_LOCATION`, `GOOGLE_GENAI_USE_VERTEXAI`, `BILLING_TABLE`, `RAG_CORPUS`, `RAG_LOCATION`, `GOOGLE_CLIENT_ID`, `SESSION_SECRET`, `GOOGLE_CLIENT_SECRET`, `MCP_SECRET`
|
|
- **Manglar:** `GITHUB_TOKEN`, `SENDGRID_API_KEY`, `TWILIO_ACCOUNT_SID`, `GOOGLE_CREDIT_TOTAL_USD`
|
|
|
|
---
|
|
|
|
## 📌 Neste sesjon — start her
|
|
|
|
1. Gå til `opax.vauco.no` i nettlesar — sjekk Terminal, MD-panel, Docs Browser
|
|
2. Rapporter panel-status tilbake til agent
|
|
3. Neste kode-oppgåve: **CG5a** — `POST /notify/webhook` i `main.py`
|
|
4. Deretter: sett env-vars med faktiske verdiar — **ikkje plasshaldarar**
|