162 lines
6.1 KiB
Markdown
162 lines
6.1 KiB
Markdown
# HANDOFF — Vauco OS
|
|
|
|
**Sist oppdatert:** 2026-06-13 09:03 CEST
|
|
**Skrevet av:** Perplexity (stand-in) via GitHub MCP
|
|
**Sprint:** Alle OQ-er lukket ✅ — venter på CG7-direktiv fra Chris
|
|
|
|
---
|
|
|
|
## 🏁 Sprint-status: BACKLOG TOM
|
|
|
|
**Alle åpne OQ-er er lukket og verifisert i prod.**
|
|
Neste steg bestemmes av Chris — CG7 er ikke definert uten direktiv.
|
|
|
|
---
|
|
|
|
## ✅ Levert 2026-06-13 (oppdatert sesjon)
|
|
|
|
| Commit | Task | Detalj |
|
|
|--------|------|---------|
|
|
| [`6611927`](https://github.com/vauco-saas/OSVauco/commit/66119278bf202a0a326e40880dc9cf6ca61b3941) | **Hotfix** `requirements.txt` + BQ-migrering | `google-cloud-build>=3.24.0` lagt til — fikser `ModuleNotFoundError: google.cloud.devtools`. BQ-skript `scripts/migrate_bq_add_caller_type.sh` pushet og kjørt ✅ |
|
|
| [`c114f6c`](https://github.com/vauco-saas/OSVauco/commit/c114f6c32800c5de63430775e6d8fc7f23fd07d4) | **Frontend** `static/billing-dashboard.html` | Tre pool-bars, Free Trial topbar-banner, `Promise.allSettled()` |
|
|
| [`bc501c1`](https://github.com/vauco-saas/OSVauco/commit/bc501c13ea9fb9da785885fea57b880cca2b07db) | **OQ-31** `ml/billing_agent.py` | `credit_pools[]`, `effective_days`, `badge_class`, `warning: bool` |
|
|
| [`055a482`](https://github.com/vauco-saas/OSVauco/commit/055a4823205f8255dfa98be1553f833c0a13521d) | **OQ-29** `main.py` | `GET /notify/channels` — verifisert i prod |
|
|
| [`4693fea`](https://github.com/vauco-saas/OSVauco/commit/4693fea) | **CI-fix** `cloudbuild.yaml` | Fjernet `--audiences` fra smoke-test token |
|
|
|
|
---
|
|
|
|
## ✅ Manuelt utført 2026-06-13
|
|
|
|
| Handling | Status |
|
|
|----------|--------|
|
|
| Kreditt env-vars satt i Cloud Run (rev `00469-p96`) | ✅ Ferdig |
|
|
| BQ-migrering kjørt — `caller_type`, `module_name`, `session_id` lagt til `llm_token_usage` | ✅ Ferdig |
|
|
| `google-cloud-build` lagt til `requirements.txt` | ✅ Pushet — ⏳ venter på Cloud Build deploy |
|
|
|
|
---
|
|
|
|
## ✅ OQ-logg — alle lukket
|
|
|
|
| OQ | Beskrivelse | Status |
|
|
|----|-------------|--------|
|
|
| **OQ-29** | `GET /notify/channels` | ✅ Verifisert i prod |
|
|
| **OQ-30** | Browser-panel `opax.html` | ✅ Løst |
|
|
| **OQ-31** | `credit_pools[]` + kreditt env-vars satt | ✅ Komplett |
|
|
|
|
---
|
|
|
|
## ⚠️ Gjenstår for Chris
|
|
|
|
| # | Handling | Prioritet |
|
|
|---|----------|-----------|
|
|
| 1 | Verifiser Cloud Build ferdig: `gcloud builds list --project=propane-will-491900-m5 --limit=3` | Høy |
|
|
| 2 | Sjekk `costguard.oss.vauco.no` fungerer etter ny deploy (OAuth `MismatchingStateError` løses ved å tømme cookies / inkognito etter hver deploy) | Høy |
|
|
| 3 | Sett varslings-env-vars når klar: `SENDGRID_API_KEY`, `NOTIFY_EMAIL_TO`, `TWILIO_ACCOUNT_SID`, `NOTIFY_WEBHOOK_URL` | Lav |
|
|
| 4 | Bestem CG7-scope | Venter på Chris |
|
|
|
|
---
|
|
|
|
## 🏗 Systemstatus
|
|
|
|
| Komponent | Status |
|
|
|-----------|--------|
|
|
| Cloud Run `osvauco-agent` | ✅ Live `us-central1` rev `00469-p96` |
|
|
| `opax.vauco.no` | ✅ Live |
|
|
| `costguard.oss.vauco.no` | ✅ Live — ⚠️ tøm cookies etter deploy |
|
|
| `main.py` | ✅ Hovudapp — alle ruter her |
|
|
| `GET /billing/credits` | ✅ Levert + kreditt env-vars satt |
|
|
| `GET /notify/channels` | ✅ OQ-29 — verifisert |
|
|
| `ml/billing_agent.py` | ✅ `credit_pools[]` komplett |
|
|
| `static/billing-dashboard.html` | ✅ Tre pool-bars + Free Trial banner |
|
|
| `static/opax.html` | ✅ Live — browser-panel OK |
|
|
| `BQ llm_token_usage` | ✅ Migrert — `caller_type`, `module_name`, `session_id` på plass |
|
|
| `/opax/build-status` `devtools`-feil | ⏳ Fikset i kode — venter på Cloud Build |
|
|
| `POST /notify/webhook` | ✅ CG5a |
|
|
| `POST /notify/email` | ✅ CG5b |
|
|
| `POST /notify/sms` | ✅ CG5c (Guard+) |
|
|
| `docs/gemma/world.md` | ❌ Mangler — blokkerer ML-3a / Emma |
|
|
|
|
---
|
|
|
|
## 📋 Nøkkelinformasjon
|
|
|
|
| Nøkkel | Verdi |
|
|
|--------|-------|
|
|
| GCP Project | `propane-will-491900-m5` |
|
|
| Region (LÅST) | `us-central1` |
|
|
| Cloud Run service | `osvauco-agent` |
|
|
| Direct URL | `https://osvauco-agent-zjbqp3prqq-uc.a.run.app` |
|
|
| Public URL | `https://opax.vauco.no` |
|
|
| CostGuard | `https://costguard.oss.vauco.no` |
|
|
| Hovudapplikasjon | `main.py` (rot i repo) |
|
|
| IAP-test | `gcloud run services proxy` — **se regler** |
|
|
| LB IP | `34.98.77.173` |
|
|
| Repo | `vauco-saas/OSVauco` |
|
|
| Eier | `chris.christiansen@vauco.no` |
|
|
| Jason | `jason.vauger@vauco.no` · `gemini-2.5-flash` |
|
|
| Emma | `emma.vauger@vauco.no` — 🔮 ML-3a (blokkert) |
|
|
|
|
---
|
|
|
|
## Env-vars i Cloud Run (satt ✅)
|
|
|
|
```
|
|
# Kreditter — satt 2026-06-13
|
|
GOOGLE_CREDIT_INFRA_NOK=2911.27
|
|
GOOGLE_CREDIT_INFRA_EXPIRES=2026-07-10 ← 🔴 utløper om ~27 dager!
|
|
GOOGLE_CREDIT_VERTEX_NOK=9704.21
|
|
GOOGLE_CREDIT_VERTEX_EXPIRES=2027-04-11
|
|
GOOGLE_CREDIT_DIALOGFLOW_NOK=5822.53
|
|
GOOGLE_CREDIT_DIALOGFLOW_EXPIRES=2027-04-11
|
|
USDNOK=10.8
|
|
|
|
# Varsling (ikke satt ennå)
|
|
SENDGRID_API_KEY=SG.xxxx
|
|
NOTIFY_EMAIL_TO=chris.christiansen@vauco.no
|
|
TWILIO_ACCOUNT_SID=ACxxxx
|
|
TWILIO_AUTH_TOKEN=xxxx
|
|
TWILIO_FROM_NUMBER=+47xxxxxxxx
|
|
NOTIFY_WEBHOOK_URL=https://hooks.slack.com/...
|
|
|
|
# Docs proxy
|
|
GITHUB_PAT=ghp_xxxx
|
|
DOCS_BRANCH=main
|
|
```
|
|
|
|
---
|
|
|
|
## ⚠️ Regler (låste)
|
|
|
|
- **Hovudapp er `main.py`** — ikke `agents/core-logic/app.py`
|
|
- **MCP-server er `opax-mcp/`** — ikke `agents/mcp_server/`
|
|
- **Absolutte stier i Python** — `Path(__file__).parent / "..."`
|
|
- **Ikke migrer fra us-central1**
|
|
- **IAP-test: bruk alltid `cloud-run-proxy`** — aldri `--audiences`:
|
|
```bash
|
|
gcloud run services proxy osvauco-agent \
|
|
--region=us-central1 --project=propane-will-491900-m5 --port=8080
|
|
curl http://localhost:8080/<endepunkt>
|
|
```
|
|
- **OAuth `MismatchingStateError`** etter deploy = normalt — tøm cookies eller bruk inkognito
|
|
- **Ikke rør IAP/OAuth** uten `DEPLOY GODKJENT`
|
|
- **Ikke opprett repos** uten `REPO APPROVED`
|
|
- **Medioteq = joint venture** — ikke SaaS-kunde
|
|
- **Prismodell låst** — ikke endre uten `PLAN APPROVED`
|
|
- **CG7 er ikke definert** — ikke start uten direktiv fra Chris
|
|
|
|
---
|
|
|
|
## 📁 Filer (prioritert rekkefølge)
|
|
|
|
1. `docs/MASTERPLAN.md` — autoritær sannhet
|
|
2. `docs/ROADMAP.md`
|
|
3. `docs/HANDOFF.md` — denne filen
|
|
4. `CLAUDE.md`
|
|
5. `docs/AGENT_RULEBOOK.md`
|
|
6. `docs/UNIVERSAL_BOOT_PROMPT.md` v1.4
|
|
7. `docs/gemma/world.md` ❌ mangler
|
|
|
|
---
|
|
|
|
*Vauco AS · propane-will-491900-m5 · us-central1 · Sesjon oppdatert 2026-06-13 09:03 CEST*
|