OSVauco/docs/HANDOFF.md

152 lines
5.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# HANDOFF — Vauco OS
**Sist oppdatert:** 2026-06-12 17:22 CEST
**Skrevet av:** Perplexity (stand-in) via GitHub MCP
**Sprint:** CG5a · CG5b · CG5c · CG5-onboard · CG6 — alle levert og godkjent
---
## ✅ Gjort denne sesjonen (2026-06-12)
| Commit | Task | Detalj |
|--------|------|--------|
| [`c312f4a`](https://github.com/vauco-saas/OSVauco/commit/c312f4a7274f65eb213477956854977df10d7a7a) | MASTERPLAN seksjon 10 | Prismodell v2: Starter $499 / Guard $999 / Shield $1.999 / Enterprise $3.500+ |
| [`7aa7384`](https://github.com/vauco-saas/OSVauco/commit/7aa73842d46b2b65610358c0ff8e456b2189e7f4) | MASTERPLAN seksjon 4 | Korrekt repo-layout dokumentert |
| [`50490b0`](https://github.com/vauco-saas/OSVauco/commit/50490b071d5b80252ea32e8db3226064ac9c80c0) | **CG5-onboard** `static/onboard.html` | 4-stegs onboarding-wizard (mørkt CostGuard-tema) |
| [`c3357d3`](https://github.com/vauco-saas/OSVauco/commit/c3357d38aa71f13dd06726800a2c57425d6bd1ac) | **CG5-onboard** `main.py` | `GET /onboard` (IAP-exempt) + `POST /onboard/complete` (Firestore + varsler) |
| [`5270166`](https://github.com/vauco-saas/OSVauco/commit/5270166ce13bdbea9e6009e5d1ce3529001afba6) | **CG6** `static/costguard-dashboard.html` | Klient-dashboard — billing summary, anomalier, modul-donut, delivery-kanaler |
| [`f7e64fc`](https://github.com/vauco-saas/OSVauco/commit/f7e64fcea07ea2b1f0c3c898bf798da49a7e2993) | **CG5c** `main.py` | `POST /notify/sms` — Twilio REST via httpx, Guard+-tier, 402 ved feil tier |
### Notification-arkitektur (komplett)
| Endepunkt | Metode | Kanal | Tier |
|-----------|--------|-------|------|
| `POST /notify/webhook` | CG5a | Slack / Teams / Chat / Discord / custom | Alle |
| `POST /notify/email` | CG5b | SendGrid digest | Alle |
| `POST /notify/sms` | CG5c | Twilio SMS — spike-varsler | Guard+ |
**Merk:** `GET /onboard` er IAP-exempt — tilsiktet for nå, skal vurderes ved hardening.
---
## ✅ Gjort forrige sesjon (2026-06-11)
| Task | Detalj |
|------|--------|
| **CG4b** | Chart.js donut live — build 2f385fe3 ✅ |
| **Medioteq** | Joint venture presisert — ikke SaaS-kunde |
---
## 🔴 Kjente OQ-er (Open Questions)
| ID | Beskrivelse | Prioritet |
|----|-------------|-----------|
| **OQ-29** | `GET /notify/channels` mangler — ingen list-endepunkt for å hente konfigurerte delivery-kanaler per kunde | Lav / neste sprint |
---
## 🔴 NOW — Neste oppgaver (prioritert)
| ID | Oppgave | Status |
|----|---------|--------|
| **CG7** | Scope defineres av Chris — **ikke start uten direktiv** | ⏳ Venter på MASTERPLAN-definisjon |
| **OQ-29** | `GET /notify/channels` | Backlog |
| **ML-3a** | `docs/gemma/world.md` mangler — blokkerer Emma | Blokkert |
---
## 🏗 Systemstatus
| Komponent | Status |
|-----------|--------|
| Cloud Run `osvauco-agent` | ✅ Live `us-central1` |
| `opax.vauco.no` | ✅ Live |
| `main.py` | ✅ Hovudapp — alle ruter her |
| `static/opax.html` | ✅ Live |
| `static/jason.html` | ✅ Live |
| `static/onboard.html` | ✅ Live — CG5-onboard |
| `static/costguard-dashboard.html` | ✅ Live — CG6 |
| `opax-mcp/` | ✅ MCP-server mappe |
| `POST /notify/webhook` | ✅ CG5a — levert |
| `POST /notify/email` | ✅ CG5b — levert |
| `POST /notify/sms` | ✅ CG5c — levert (Guard+) |
| `GET /notify/channels` | 🔴 OQ-29 — mangler |
| `docs/gemma/world.md` | ❌ Mangler — blokkerer ML-3a |
---
## 📋 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` |
| Hovudapplikasjon | `main.py` (rot i repo) |
| MCP-server | `opax-mcp/` |
| Static filer | `static/` |
| Jason chat | `https://opax.vauco.no/static/jason.html` |
| Onboarding | `https://opax.vauco.no/onboard` |
| LB IP | `34.98.77.173` |
| Repo | `vauco-saas/OSVauco` |
| Eier | `chris.christiansen@vauco.no` |
| Jason | `jason.vauger@vauco.no` |
| Emma | `emma.vauger@vauco.no` — 🔮 ML-3a |
---
## Env-vars påkrevd (CG5c)
```
TWILIO_ACCOUNT_SID=ACxxxx
TWILIO_AUTH_TOKEN=xxxx
TWILIO_FROM_NUMBER=+47xxxxxxxx
```
---
## CostGuard — prismodell v2 (fasit)
| Tier | GCP-spend/mnd | Pris |
|------|--------------|------|
| Starter | $0$3k | $499/mnd |
| Guard | $3k$15k | $999/mnd |
| Shield | $15k$50k | $1.999/mnd |
| Enterprise | >$50k | $3.500+/mnd |
**Push-first:** Jason leverer til webhook/e-post/SMS — kunden setter opp kanal ved onboarding.
---
## ⚠️ Regler
- **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**
- **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
- **Verifiser alltid mappestruktur** via GitHub API før du bygger
---
## 📁 Filer (i prioritert rekkefølge)
1. `docs/MASTERPLAN.md` — autoritativ sannhet
2. `docs/ROADMAP.md` — hva skjer nå
3. `docs/HANDOFF.md` — denne filen
4. `CLAUDE.md` — kontekst for Claude (rot)
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 avsluttet 2026-06-12 17:22 CEST*