OSVauco/docs/HANDOFF.md

9.1 KiB

HANDOFF — Vauco OS

Sist oppdatert: 2026-06-09 Skrevet av: Jason Vauger (via Perplexity) Status: CG3e fullført og deployet. CG4 Recommendations & Anomaly Engine planlagt.


CG3e — LLM Token Usage Logger (fullført 2026-06-09)

  • agents/token_logger.py — BigQuery-logger for LLM-kall. Skriver til costguard_dataset.llm_token_usage med felt: timestamp, agent_name, model_name, input_tokens, output_tokens, total_tokens, total_cost_usd.
  • /billing/tokens/summary — nytt endpoint i app.py. Henter aggregert tokenbruk per agent/modell siste 30 dager fra BigQuery.
  • static/billing-dashboard.html — nytt " Tokenbruk per agent"-kort som fetcher /billing/tokens/summary og viser tabell med agent, modell, tokens og kost i USD.
  • Cloud Run revisjon osvauco-agent-00298-6kk — deployet og live med alle CG3e-endringer.
  • Commit: d2cf63a (token usage card) på toppen av 33482ae (token logger + endpoint).

🗺 CG4 — Recommendations & Anomaly Engine (NESTE)

Mål

En FinOps-lignende modul i CostGuard (inspirert av GCP FinOps Hub / Utilization Insights) som:

  • Viser anbefalinger om hvordan man kan redusere GCP-kostnader
  • Varsler om unormale kostnadsøkninger (anomalier)
  • Viser estimert besparelse per måned i NOK

Backend — to endpoints

/billing/recommendations (NY) Logikk (kjøres mot BigQuery-data):

  1. Sløsing: Tjenester med total_cost > 0 men 0 aktivitet siste 7 dager → "Vurder å skru av [tjeneste]"
  2. Anomali: Tjeneste der siste 3-dagers snitt er >= 2x 30d-snittet → "Unormal spik på [tjeneste]"
  3. Budsjettoverskridelse: Prognose > budsjett → "Du er på vei til å overskride budsjettet denne måneden"

Response-format:

{
  "recommendations": [
    {
      "type": "anomaly" | "waste" | "budget",
      "severity": "high" | "medium" | "low",
      "service": "Cloud Build",
      "message": "Unormal kostnadsøkning på Cloud Build — 3x over normalt",
      "estimated_savings_nok": 42.50
    }
  ],
  "total_estimated_savings_nok": 42.50
}

/billing/anomalies (UTVIDES)

  • Legg til ratio, message og severity i eksisterende response.

Frontend — nytt "Anbefalinger"-kort

Plassering: mellom .bottom-row og token-usage-kortet i billing-dashboard.html.

Design (lik GCP FinOps Hub):

  • Header: "💡 Anbefalinger" + "Estimert besparelse: kr X,XX/mnd"
  • Liste med ikoner: 🔴 høy / 🟡 medium / 💚 lav
  • Hver rad: ikon + melding + tjeneste-tag + besparelse
  • Tom state: " Ingen anbefalinger — forbruket ser normalt ut"

Implementasjonsrekkefølge for Jason

  1. Lag agents/recommendations_engine.py med de tre analyselogikkene
  2. Legg til /billing/recommendations-ruten i app.py
  3. Oppdater /billing/anomalies med ratio + severity + message
  4. Legg til frontend-kortet i billing-dashboard.html
  5. Commit + deploy

OQ-15 / CG3 — Status per 2026-06-09

  • CG3a — CostGuard-landing / static-cards: static/costguard.html er opprettet i OSVauco, designet i Vauco-stil med Google OAuth-knapp + embed av /static/billing-dashboard.html.
  • CG3 — CostGuard billing-dashboard (GCP-only): static/billing-dashboard.html er ryddet opp slik at:
    • GCP er eneste provider i UI (AWS-UI er parkert til senere).
    • Demo-data brukes kun hvis kjerne-endepunktene (/billing/summary, /billing/live, /billing/anomalies) feiler.
    • History-endepunktet (/billing/history) er best-effort og gir ikke lenger rød feilbanner alene.
    • Layout er strammet inn: nøkkeltall øverst, daglig kostnad + tjenestefordeling, samt kostnad per tjeneste + budsjettstatus.
    • Anomali-visning er flyttet til en enkel topplinje-badge (grønn/gul/rød) i stedet for eget kort.

Neste steg på CostGuard-siden:

  • CG3b / CI1 — koble static/costguard.html og static/billing-dashboard.html inn i en mer komplett "CostGuard-opplevelse" (inkl. AWS når det er modent), og deretter ta CNAME costguard.oss.vauco.no → Cloud Run osvauco-agent når Chris sier klart.

🌐 Vauco.no — status

  • vauco.no er nå en enkel modul-oversiktsside, uten operatørbeskrivelse av Chris:
    • Om-oss-tekst omtaler Vauco som selskap, ikke daglig leder.
    • Faktafeltet viser kun Selskap, Org.nr, Lokasjon (Oslo, Norge).
    • Kontakt går til contact@vauco.no, ikke til personlige adresser.
  • Nettsiden deployes ved å synce ~/vauco-site til GCS-bucket gs://vauco-site-public og eventuelt invalidere CDN-cache på URL-mappen.

🧱 Threadstone — status

  • threadstone.vauco.no er en landingsside i lukket pilot:
    • Hero-badge: "Under utvikling · Lukket pilot for interne brukere".
    • Lead-tekst: Tjenesten er i lukket pilot og kun tilgjengelig for interne Vauco-kontoer.
  • Innlogging / kjøp:
    • Google Sign-In aksepterer kun e-poster som slutter på @vauco.no.
    • Alle andre domener får tydelig feilmelding om at Threadstone er i lukket pilot.
    • "Kjøp nå"-knapper krever innlogging; uten @vauco.no-konto kommer man ikke til mock-checkout (e-post til Chris).
  • Landingsside + priser er offentlig, men hele appen og bestillingsflyten er i praksis kun for interne.

🏗 Hva er dette prosjektet?

Se docs/MASTERPLAN.md for full sannhet. Kortversjonen:

Vauco OS  (plattform)
  └── OPAX  (kommandosenter + salgsmodul-bygger, Cloud Run us-central1)
        ├── CostGuard  (Modul #1 — live på costguard.oss.vauco.no)
        ├── Threadstone  (Modul #2 — Q3 2026)
        └── [Modul #3+]

OPAX = kommandosenter for ALLE prosjekter (et prosjekt = en klient — samme ting). OPAX bygger, iscenesetter og publiserer prosjekter. OPAX er ikke bundet til noe enkelt prosjekts region.

Branding-konvensjon for prosjekter:

Subdomene Type
<prosjekt>.oss.vauco.no Staging / demo
<prosjekt>.os.vauco.no Live produksjon

(Klient kan videresende eget domene, men kanonisk merkevare-label er alltid *.vauco.no.)

Første betalende produkt: CostGuard (GCP-kostnadsanalyse via AI).


Hva er faktisk ferdig (ikke spør om dette igjen)

Komponent Status
Cloud Run osvauco-agent Live, us-central1, revisjon 00298-6kk
opax.vauco.no (LB + SSL) Live, IP 34.98.77.173
IAP (@vauco.no only) Aktivert
PR #15 IAP /health-fix Merget til main (commit 7a09871)
CI/CD Cloud Build → Cloud Run ⚠️ IKKE operativt — ingen trigger, siste builds FAILURE. Deploy MANUELT.
RAG corpus osvauco-corpus Populert, europe-west1
OAuth2 (Google) I Secret Manager
AI-modell gemini-2.5-pro via Vertex AI (us-central1)
costguard.oss.vauco.no Live (Cloudflare Pages)
static/costguard.html Første versjon live via osvauco-agent
static/billing-dashboard.html GCP-only, CG3e token-kort lagt til
agents/token_logger.py BigQuery LLM-logger ferdig
/billing/tokens/summary Endpoint live
vauco.no Oppdatert, anonymisert og deployet via gs://vauco-site-public
threadstone.vauco.no Landingsside live, satt i lukket pilot m/ @vauco.no-gating

📋 Nøkkelinformasjon

Nøkkel Verdi
GCP Project propane-will-491900-m5
Region (OPAX, LÅST) us-central1
Vertex AI endpoint us-central1 (kjører GOOGLE_CLOUD_LOCATION=global i praksis)
Artifact Registry us-central1-docker.pkg.dev/propane-will-491900-m5/osvauco-repo
Cloud Run service osvauco-agent
Cloud Run URL (direkte) https://osvauco-agent-357036551735.us-central1.run.app
Public URL https://opax.vauco.no
LB IP 34.98.77.173
AI-modell gemini-2.5-pro
Repo vauco-saas/OSVauco
Eier / Operatør Chris Christiansen — chris.christiansen@vauco.no
Agent-konto jason.vauger@vauco.no

⚠️ Vanlige feil — ikke gjør disse

  • Ikke opprett nye HANDOFF_YYYYMMDD-filer. Det er kun denne. Overskriv den.
  • Ikke gjenopplive VAUCO_OS_ROADMAP.md. Den er slettet 2026-05-31. Bruk ROADMAP.md.
  • Ikke bytt til Claude før kvote er bekreftet av Google Cloud-team + MODEL APPROVED fra Chris.
  • Ikke migrere fra us-central1 — regionen er låst.
  • Ikke rør IAP, OAuth, eller Secret Manager uten eksplisitt DEPLOY GODKJENT fra Chris.
  • Ikke opprett nye repos. Vurder mappe i OSVauco først. Krever REPO APPROVED.
  • Ikke hopp over HITL gates — hver fase avsluttes med et godkjenningssignal.
  • Ikke oppdater OAuth-klient redirect URIs uten domeneavklaring — se Issue #16.

📁 Viktige filer å lese (i denne rekkefølgen)

  1. docs/MASTERPLAN.md — autoritativ sannhet
  2. docs/ROADMAP.md — hva som skjer akkurat nå
  3. docs/HANDOFF.md — denne filen
  4. docs/AGENT_RULEBOOK.md — regler for hvordan agenter oppfører seg
  5. agents/jason-vauger.md — Jason Vauger agentprofil
  6. AGENTS.md — oversikt over alle agenter i ML-laget
  7. .gemini/GEMINI.md — locked definitions og boot-protokoll
  8. docs/ARCHITECTURE.md — teknisk arkitektur
  9. docs/OSVAUCO_OPAX_SESSION_LOG.md — append-only sesjonshistorikk

Vauco AS · propane-will-491900-m5 · us-central1 · Powered by Jason, Crafted by Vauco ·