OSVauco/docs/HANDOFF.md

4.9 KiB

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: CG5aPOST /notify/webhook i main.py
  4. Deretter: sett env-vars med faktiske verdiar — ikkje plasshaldarar