Commit Graph

433 Commits

Author SHA1 Message Date
a9b8d54633 CG3: polish header actions, wire Budsjett in sidebar, and clarify last-updated copy 2026-06-09 04:01:10 +02:00
f48fcd7422 CG3: simplify layout, center around service costs + donut, and move anomalies to top-line status only 2026-06-09 03:33:23 +02:00
868a0e496d CG3: park AWS billing UI and make history endpoint best-effort so GCP dashboard stays live 2026-06-09 03:15:20 +02:00
88037bdba2 CG3d: make CostGuard login always hit opax.vauco.no/auth/login to keep OAuth state on same host as callback. 2026-06-09 02:47:31 +02:00
f211774922 Update HANDOFF after CG3a: mark CostGuard landing done and set NESTE OPPGAVE to CG3b (CNAME costguard.oss.vauco.no). 2026-06-09 02:38:28 +02:00
3a88bef44c CG3a: add static/costguard.html CostGuard landing (OAuth + billing embed) 2026-06-09 02:11:02 +02:00
1fd2f0a01b fix: backup uses docs/ROADMAP.md instead of deprecated VAUCO_OS_ROADMAP.md 2026-06-08 23:15:17 +00:00
3c9c9abd0d fix: write GDrive SA json to file for rclone 2026-06-08 23:02:32 +00:00
bdbe52a6da fix: normalize cost field (daily_cost ?? total_cost ?? cost) in getVisibleData, buildDonut, buildSvc, exportCSV 2026-06-08 23:49:36 +02:00
e61bf798c7 chore(session): logg 20260605-080317 — (ingen notat) 2026-06-05 08:03:38 +00:00
6f47de9c43 docs(ui): explain billing summary data on dashboard 2026-06-05 03:43:40 +00:00
57e3fa907e docs: log OQ-15 implementation and set next task 2026-06-05 03:33:00 +00:00
0c7995deae fix(build): use BUILD_ID instead of COMMIT_SHA for manual builds 2026-06-05 03:18:35 +00:00
f62f91f092 feat(billing): implement real BQ data in get_summary 2026-06-05 03:10:35 +00:00
29f3e0dbf4 docs: park OQ-15 and document draft for BQ integration 2026-06-05 02:59:45 +00:00
2795627caf docs: log CostGuard auth-fix session and set OQ-15 as next task 2026-06-05 01:46:08 +00:00
9b3be743bf fix(auth): resolve NameError on require_auth decorator 2026-06-05 01:41:29 +00:00
5d42cd4383 feat(auth): add Google OAuth routes for CostGuard billing 2026-06-05 00:57:04 +00:00
83cef53f24 docs(roadmap): vauco.no V1 LIVE on GCP (GCS+LB+CDN, not GitHub Pages); V1a-d done, OQ-23/25 resolved 2026-06-04 23:01:25 +00:00
c59e37295f feat(ui): CostGuard dark Vauco redesign + mobile-first for CostGuard & OPAX hub 2026-06-04 21:52:31 +00:00
60af0035b6 fix(agent): give Jason self-awareness of model, region, billing source & HITL limits 2026-06-04 21:10:08 +00:00
27d837f017 feat(hub): professional redesign + live backend wiring for opax.html
- Restyle to Vauco/Threadstone design system (dark, Inter, soft cards) - drop hacker look
- Wire live status: GET /health (topbar + infra, 30s refresh), GET /state/agents (agent dots)
- Add working agent chat drawer -> POST /run {message,user_id,session_id,mode}, light/heavy toggle
- Fix labels: region us-central1 (was europe-west1), RAG europe-west4 EU, deploy manuell ingen trigger (was false CI/CD aktiv)
- Frontend only; no main.py/.env/IAP/OAuth/Secret Manager changes

Powered by Jason, Crafted by Vauco
2026-06-04 20:47:26 +00:00
709479fc2d fix(cloudbuild): add --set-secrets so deploy keeps 3 Cloud Run secrets; define _GEMINI_LOCATION=global
- deploy step: add --set-secrets=GOOGLE_CLIENT_ID:1,SESSION_SECRET:1,GOOGLE_CLIENT_SECRET:1 (--set-env-vars alone was wiping them)
- substitutions: add _GEMINI_LOCATION: global (was undefined -> empty under ALLOW_LOOSE)
- no VERTEX_MODEL added; model stays hardcoded gemini-2.5-pro

Powered by Jason, Crafted by Vauco
2026-06-04 20:08:47 +00:00
60f46af69d fix(preflight): never force interactive ADC login on VM; use metadata service-account
Powered by Jason, Crafted by Vauco
2026-06-04 19:56:09 +00:00
77a3bd2eef docs(gemini): fix region us-central1, Artifact Registry, Code Assist runtime, domain conventions
Powered by Jason, Crafted by Vauco
2026-06-04 19:40:29 +00:00
ce1cffafb5 docs(handoff): correct owner (Chris), fix NESTE OPPGAVE to cloudbuild secrets-fix + manual deploy, mark CI/CD not-operative, define OPAX as command hub, brand <project>.os/.oss subdomains, separate medical project
Powered by Jason, Crafted by Vauco
2026-06-04 19:37:14 +00:00
ae582aedeb Merge remote-tracking branch 'origin/fix/iap-middleware' 2026-06-03 22:48:45 +00:00
Jason Vauger
7a098716ae fix(main): exempt health/readiness paths from IAP middleware
/health and probe endpoints reach Cloud Run directly without the
IAP-injected x-goog-authenticated-user-email header. Without an
exemption the middleware returned 401 on /health, which would break
Cloud Run health checks, CI/CD deploys, and the Phase 8 verification.

Powered by Jason, Crafted by Vauco
2026-06-01 12:30:06 +00:00
8401db59c3 docs: append 2026-06-01 session handoff (Jason Vauger + OAuth note) 2026-06-01 06:28:45 +02:00
bcd3036bb5 docs: add Jason Vauger agent profile and update AGENTS.md 2026-06-01 06:26:40 +02:00
b751a6fd38 fix(main): add global IAP middleware requiring x-goog-authenticated-user-email 2026-06-01 04:09:11 +00:00
d5358ca9d4
fix: docs region cleanup + opax2.sh endpoint 2026-06-01 05:27:13 +02:00
8be65126d8
fix: opax root + remove redundant auth routes
* chore(docs): set region to us-central1 in AGENT_RULEBOOK

* docs: update region references europe-west1 -> us-central1

* chore(scripts): update opax/opax2 comments to us-central1

* fix(main): use opax.html root and remove IAP-handled auth routes
2026-06-01 05:22:10 +02:00
bb24875f96
chore(scripts): update opax and opax2 comments to us-central1 (#9)
* chore(docs): set region to us-central1 in AGENT_RULEBOOK

* docs: update region references europe-west1 -> us-central1

* chore(scripts): update opax/opax2 comments to us-central1
2026-06-01 04:58:08 +02:00
17a17d20c4
chore(docs): fix region references europe-west1 → us-central1 (#12)
* docs: update HANDOFF.md for us-central1 region and current PR/VM stop status

* docs: add periodic status updates requirement to AGENT_RULEBOOK.md

* docs: confirm us-central1, Fase 8 gemini-2.5-pro status, and startup doc-check rules

* chore(docs): fix region references europe-west1 → us-central1 in docs and scripts

* docs: correct RAG corpus region to europe-west1 in HANDOFF.md
2026-06-01 04:52:08 +02:00
8dd68d51d3
chore(infra): add VERTEX_MODEL=gemini-2.5-pro to deploy scripts (#7)
* chore(docs): set region to us-central1 in AGENT_RULEBOOK

* chore(infra): set VERTEX_MODEL=gemini-2.5-pro in deploy scripts
2026-06-01 04:28:03 +02:00
58b12280dc
chore(scripts): add safe stop script for osvauco-dev-vm and docs note (#10) 2026-06-01 04:27:50 +02:00
2b69a18c53 chore(docs): add copilot-instructions.md for VS Code agent mode 2026-06-01 00:20:14 +02:00
6758685b7b fix: strengthen boot prompt to force file reading in both GEMINI.md and CLAUDE.md 2026-05-31 19:57:36 +02:00
3d2559b8a3 feat: add CLAUDE.md for Claude Code / opax2 session protocol 2026-05-31 19:52:27 +02:00
7f0ccc8c03 fix(rulebook): add hard rules for compute resource safety and self-preservation 2026-05-31 19:12:20 +02:00
Chris Christiansen
6b0bc5a1c7 chore(log): sesjonslogg fix opax boot 2026-05-31 2026-05-31 16:20:35 +00:00
Chris Christiansen
54cde07821 fix(opax): boot via GEMINI.md, fjern --prompt flag 2026-05-31 16:17:37 +00:00
Chris Christiansen
54ab357145 chore(log): sesjonslogg 2026-05-31 2026-05-31 16:04:57 +00:00
70eced385f
chore(docs): konsolider MASTERPLAN/ROADMAP/HANDOFF til én sannhet (#5)
* chore(docs): konsolider MASTERPLAN/ROADMAP/HANDOFF til én sannhet

Bakgrunn: revisjon 2026-05-31 avdekket at vi hadde to MASTERPLAN-er som
ikke matchet, en deprecated VAUCO_OS_ROADMAP som fortsatt ble brukt, tre
parallelle HANDOFF-filer, AGENT_RULEBOOK med feil region (us-central1)
og feil MCP_SERVICE (opax-mcp-core), og committed Git merge-konflikt-
markører i selve session-loggen.

Endringer:
- Ny docs/MASTERPLAN.md (autoritativ, erstatter både rot-MASTERPLAN.md og
  forrige docs-versjon). Tydeligere hierarki:
    Vauco AS → Vauco OS (plattform) → OPAX (engine) → Moduler
- Ny docs/ROADMAP.md (erstatter docs/VAUCO_OS_ROADMAP.md som var deprecated)
- Ny docs/HANDOFF.md — én fil, overskrives per sesjon (per planregelen)
- Oppdatert docs/AGENT_RULEBOOK.md:
    Region: us-central1 → europe-west1
    AI-modell: gemini-2.5-pro (midlertidig, venter på Claude EU-kvote)
    Vertex AI loc: europe-west1
    MCP_SERVICE: opax-mcp-core → osvauco-agent
- Fjernet Git merge-konfliktmarkører i docs/OSVAUCO_OPAX_SESSION_LOG.md
- Flyttet HANDOFF_20260526/20260531/20260531_claude47 → docs/archive/handoffs/
- Slettet duplikat-filer i docs/archive/ (Cost_Management_Rules,
  GCPBestPractices, OSVAUCO_OPAX_SESSION_LOG — alle dekket av live-filer)
- Slettet rot-MASTERPLAN.md (erstattet av peker-fil), VAUCO_OS_ROADMAP.md,
  Procfile (legacy fra POC, ikke brukt av Cloud Run)
- docs/TODO.md → peker-fil mot ROADMAP

Repo-strategi (fra MASTERPLAN §3):
- 4 aktive repos: OSVauco (mono), vauco-bootstrap, threadstone-landing,
  vauco-saas.github.io
- 3 arkiverte: vauco-os, vauco-gemini-tui-bridge, command-hub
- 2 parkerte (lever videre, ikke aktivt jobb): threadstone-instructions,
  deep-dream — venter på hver sin trigger (Threadstone-app pilot / første
  betalende kunde på CostGuard)

Etter merge: neste oppgave er F8 (browser-end-to-end på opax.vauco.no).

Co-authored-by: Perplexity <noreply@perplexity.ai>

* docs: inkorporer vauco.no salgsportal (apex) i planen

Hovedhull avdekket: vauco.no viser fortsatt Proisp 'Under construction'
placeholder. Planen manglet helt et spor for apex-siden — bedriftens
ansikt utad og portalen som leder besøkende til riktig modul.

MASTERPLAN endringer:
- §1 Plattformhierarki: utvidet fra 3 til 4 nivåer; vauco.no apex
  lagt til som egen kunde-flate (over Vauco OS i hierarkiet)
- §2 Domener: vauco.no/www.vauco.no markert som placeholder (skal
  erstattes), reserverte subdomener (status./docs./careers.)
  dokumentert, email-infra-status notert
- §3 Repos: vauco-site lagt til som 5. aktive repo (public,
  GitHub Pages — eget repo fordi sidens kildekode skal være public
  mens mono-repoet må forbli privat)
- §4b NY: vauco.no salgsportal — full spec for formål, IA,
  visuell retning, salgs-flow, teknisk stack, versjons-evolusjon
  V1 → V4
- §11 Kjente hull: OQ-23..OQ-26 lagt til (apex-placeholder,
  SPF/DKIM/DMARC, personvern/vilkår, statuspage)

ROADMAP endringer:
- NEXT-seksjon utvidet med V-spor: V1a–V1e (vauco.no MVP)
  kan kjøres parallelt med CG3
- KJENTE HULL-seksjon lagt til

HANDOFF oppdatert med oppsummering av nye tillegg.

NY FIL: docs/vauco-site/DESIGN.md
- Klar-til-plukk-opp build-spec for V1 MVP
- Sidekart, copy-utkast, farger, typografi, layout, performance-mål
- DNS-tabell for å flytte vauco.no fra Proisp-parking til GitHub Pages
- SPF/DKIM/DMARC oppskrift
- Bygg-rekkefølge med konkrete gh/git-kommandoer
- Akseptkriterier for V1 APPROVED

Etter merge har vi to parallelle spor:
- Spor A: F8 (OPAX end-to-end) + CG3 (CostGuard frontend)
- Spor B: V1 (vauco.no MVP)

Begge har egne HITL gates.

* chore(scripts): konsolider boot/opax/opax2 + hotkeys + README

- boot.sh: ny daglig VM-starter (rename fra osvauco-opax-boot.sh)
  * auto-fornyer gcloud auth + ADC (>8t)
  * git pull current branch
  * spør: opax (Gemini 2.5 Pro) / opax2 (Claude) / hopp over
  * setter aliaser: pf hc st at ca cl cg costs ms logg mp rl ho rb sl osv sol
  * printer NESTE OPPGAVE fra docs/HANDOFF.md
- opax.sh: region europe-west1, model gemini-2.5-pro, peker på docs/HANDOFF.md
- opax2.sh: peker på docs/HANDOFF.md (ikke arkivert handoff), advarer om kvote
- scripts/README.md: hotkey-tabell + bashrc-snippet + lock-tabell
- Slettet: scripts/archived/ (7 filer i git-historikk), osvauco-health-check.sh

* fix(scripts): OS VAUCO-header, github-status, auto-context, exit-hook

boot.sh:
- Ny header: OS VAUCO (stort) + Vauco OS subtitle
- [ REPO + GITHUB ] viser: fetch, pull, ahead/behind, uncommitted, last commit,
  gh CLI auth-status, åpne PRs på branchen
- 'ghs' alias = gh pr list + gh issue list
- NESTE OPPGAVE regex case-insensitive (matcher 'NESTE OPPGAVE' og 'Neste oppgave')

opax.sh / opax2.sh:
- Ny header: OS VAUCO / OPAX (cyan) og OS VAUCO / OPAX2 (Claude) (magenta)
- Sjekker MASTERPLAN + ROADMAP + RULEBOOK + HANDOFF + gh auth i preflight
- Auto-laster RULEBOOK + MASTERPLAN + ROADMAP + HANDOFF inn i CLI som kontekst
  ved oppstart (gemini -p / claude -p, fallback til stdin)
- Exit-hook: spør 'Vil du logge sesjonen nå?' når TUI avsluttes, kjører sol()
- ABSOLUTT REGEL (ingen handling uten PLAN APPROVED) injiseres i kontekst

* fix(scripts): NESTE OPPGAVE-parsing + gemini sandbox workaround

- Bytt awk(IGNORECASE) → sed-pipeline som funker på både gawk og mawk
  (HANDOFF.md har '## 🔄 Neste oppgave: ...' — emoji + capitalized)
- Flytt auto-context fra /tmp/ → $OSVAUCO_DIR/.gemini/context/ og .claude/context/
  Gemini CLI sandboxer alt utenfor workspace; /tmp er blokkert.
- Send relativ sti (.gemini/context/session-PID.md) til 'gemini -p @...'
- Rydd context-filer eldre enn 1 dag ved oppstart
- .gitignore: ekskluder .gemini/context/ + .claude/context/

* fix(scripts): flytt context til tmp-context/ (Gemini respekterer .gitignore)

Gemini CLI nekter å lese filer som er git-ignored. .gemini/context/ var
ignored, så context-fil ble blokkert.

- Ny mappe: tmp-context/ (innenfor workspace, ikke gitignored som dir)
- Kun session-*.md er gitignored (selve filene), ikke mappen
- tmp-context/README.md beholder mappen i git
- Ny .geminiignore: lar Gemini lese tmp-context/ men ignorerer
  node_modules, .terraform, dist osv.

* fix(scripts): bytt context-filnavn til ctx-*.md (Gemini respekterer .gitignore)

Gemini CLI blokkerer enhver fil som matcher et .gitignore-mønster, selv
om den ikke er i .geminiignore. Vi hadde 'tmp-context/session-*.md' i
.gitignore som blokkerte session-PID.md.

Løsning:
- Fjern session-pattern fra .gitignore helt
- Bytt filnavn: session-$$.md → ctx-$$.md
- Mappen ryddes uansett av find -mtime +1 -delete ved hver opax-oppstart
- Kommentar i .gitignore forklarer hvorfor og hvordan skippe lokalt

* fix(scripts): start gemini/claude TUI uten -p (TUI bombet pga non-interactive mode)

Problem: 'gemini -p "..."' kjører non-interactive (svarer + avslutter) —
det er derfor TUI ikke kom opp etter at vi la til auto-context.

Løsning: Gemini CLI auto-laster .gemini/GEMINI.md ved hver TUI-start.
- Oppdaterte .gemini/GEMINI.md: model=gemini-2.5-pro (var Claude 4.6),
  boot-prompt peker på MASTERPLAN/ROADMAP/HANDOFF (var slettet ROADMAP)
- opax.sh og opax2.sh: fjernet -p flag, kjører bare 'gemini'/'claude' = full TUI
- Slettet tmp-context/ (ikke nødvendig — GEMINI.md gjør jobben)
- Modellen får LOCKED DEFS automatisk fra GEMINI.md
- For full kontekst-load, skriv 'BOOT' i TUI

* chore(session): logg 20260531-153243 — git pull origin chore/consolidate-2026-05-31

* feat(opax): auto-kjør BOOT-prompt ved hver TUI-start

---------

Co-authored-by: Perplexity <noreply@perplexity.ai>
Co-authored-by: Chris Christiansen <chris.christian...@>
2026-05-31 17:57:13 +02:00
1fd62f3fc5 fix(terraform): use google_cloud_run_v2_service data source + hardcode service name in mappings 2026-05-31 15:58:41 +02:00
7b95705c07 feat(terraform): add vauco-platform module with domain mappings + CG3 variables 2026-05-31 15:47:02 +02:00
cb9a887f1d feat: add OPAX operator hub (static/opax.html) 2026-05-31 15:39:13 +02:00
Chris Christiansen
5706b69ed8 fix: serve main.py with static files in Cloud Run container 2026-05-31 13:14:44 +00:00
Chris Christiansen
c4dbc9d4da docs: add IAP + Cloud Run setup guide 2026-05-31 13:06:18 +00:00