From 0cc8c4170fa213b4fb6c8b30d087b31a75ed59f4 Mon Sep 17 00:00:00 2001 From: chrischristiansen-glitch Date: Tue, 9 Jun 2026 04:54:08 +0200 Subject: [PATCH] Update HANDOFF with latest session: CostGuard UI tweaks, vauco.no anonymized + deployed, Threadstone set to closed pilot with @vauco.no-gating. --- docs/HANDOFF.md | 85 ++++++++++++++++++++++--------------------------- 1 file changed, 38 insertions(+), 47 deletions(-) diff --git a/docs/HANDOFF.md b/docs/HANDOFF.md index a02c853..bb97049 100644 --- a/docs/HANDOFF.md +++ b/docs/HANDOFF.md @@ -2,26 +2,45 @@ **Sist oppdatert:** 2026-06-09 **Skrevet av:** Jason Vauger (via Perplexity) -**Status:** CG3a (static/costguard.html) og første versjon av GCP billing-dashboardet er på plass. Neste steg er å gjøre CostGuard-UI klart for kunder og deretter ta CNAME. +**Status:** CostGuard-UI er justert første runde, vauco.no er tonet ned og anonymisert, og Threadstone er satt i lukket pilot med kun @vauco.no-innlogging. --- -## ✅ OQ-15: Implementering fullført +## ✅ OQ-15 / CG3 — Status per 2026-06-09 -- **Live Data:** `get_summary`-metoden i `ml/billing_agent.py` henter nå data direkte fra BigQuery `billing_export`-tabellen. -- **Build-fiks:** Feilen i `cloudbuild.yaml` relatert til `$COMMIT_SHA` er rettet, og en ny versjon av `osvauco-agent` er vellykket deployet. -- **Verifisering gjenstår:** Automatisk verifisering av selve endepunktet ble blokkert av IAP. SQL-spørringen er validert, men en full sjekk av UI gjenstår. +- **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. --- -## 🎯 NESTE OPPGAVE +## 🌐 Vauco.no — status -**CG3b — CNAME `costguard.oss.vauco.no` til Cloud Run `osvauco-agent` i Proisp, ETTER at CostGuard-UI er ferdig første versjon.** +- `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. -Når du tar CNAME, skal følgende allerede være på plass: -- `static/costguard.html` (landingsside med OAuth-knapp + CostGuard-embed) -- `static/billing-dashboard.html` (GCP-only CostGuard-dashboard, ingen AWS-kobling) -- Billing-dashboardet skal vise ekte GCP-data uten å falle tilbake til demo-data når API er oppe. +--- + +## 🧱 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. --- @@ -66,6 +85,8 @@ Første betalende produkt: **CostGuard** (GCP-kostnadsanalyse via AI). | `costguard.oss.vauco.no` | ✅ Live (Cloudflare Pages) | | `static/costguard.html` | ✅ Første versjon live via `osvauco-agent` | | `static/billing-dashboard.html` | ✅ Første versjon GCP-only, layout strammet inn, AWS-UI parkert | +| `vauco.no` | ✅ Oppdatert, anonymisert og deployet via `gs://vauco-site-public` | +| `threadstone.vauco.no` | ✅ Landingsside live, satt i lukket pilot m/ @vauco.no-gating | --- @@ -88,32 +109,15 @@ Første betalende produkt: **CostGuard** (GCP-kostnadsanalyse via AI). --- -## 🩺 Medisinsk prosjekt (Medioteq) — SEPARAT, IKKE OPAX - -Det medisinske prosjektet er et **eget, fremtidig prosjekt** som **ikke er opprettet ennå** og **ikke er prioritert**. Det påvirker IKKE OPAX sin region eller arkitektur. Når det opprettes, velges region (EU eller US) der og da, uavhengig av OPAX. Alle kliniske/`europe-north1`-regler gjelder KUN det prosjektet — ikke OPAX. - ---- - -## ✅ Fullførte oppgaver i 'NOW'-seksjonen (denne sesjonen) - -- **CG3a — CostGuard-landing:** `static/costguard.html` opprettet i OSVauco, designet i Vauco-stil med Google OAuth-knapp + embed av `/static/billing-dashboard.html`. Commit `3a88bef4` på `main`, deployet til `osvauco-agent` og verifisert tilgjengelig via `https://opax.vauco.no/static/costguard.html`. -- **CG3 — CostGuard billing-dashboard (GCP-only):** `static/billing-dashboard.html` er ryddet opp slik at: - - GCP er eneste provider i UI (AWS-UI 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 med nøkkeltall-rad, daglig kostnad + tjeneste-fordeling, samt kostnad per tjeneste + budsjettstatus. - - Anomali-visning er flyttet til en enkel topplinje-badge (grønn/gul/rød) i stedet for eget kort. - ---- - ## ⚠️ Vanlige feil — ikke gjør disse - **Ikke opprett nye HANDOFF_YYYYMMDD-filer.** Det er kun denne. Overskriv den. -- **Ikke re-merge PR #15** — allerede merget. -- **Ikke sett opp CI/CD-triggere** — deploy manuelt. -- **Ikke bytt til Claude før kvote er bekreftet** + `MODEL APPROVED` fra Chris. -- **Ikke migrere fra us-central1** — regionen er låst for OPAX. -- **Ikke rør IAP, OAuth, eller Secret Manager** uten eksplisitt `DEPLOY GODKJENT`. +- **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. --- @@ -132,17 +136,4 @@ Det medisinske prosjektet er et **eget, fremtidig prosjekt** som **ikke er oppre --- -## ⚠️ 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. - ---- - *Vauco AS · propane-will-491900-m5 · `us-central1` · Powered by Jason, Crafted by Vauco ·*