19 KiB
VAUCO OS — GDRIVE MIRROR BOOT
CONNECTOR-PRIORITET:
GITHUB > GOOGLE DRIVEGitHub (
OSVauco/main/docs/AGENT_RULEBOOK.md) er alltid ground truth. Denne filen er auto-generert avsync-gdrive-mirror.sh. Ved enhver konflikt: stol på GitHub. Oppdater ved å kjøre scriptet på nytt.
⚠️ STALENESS-VARSEL — LES DETTE FØRST
╔══════════════════════════════════════════════════════════════╗
║ SIST SYNKRONISERT: 2026-05-26T03:02 UTC ║
║ HEAD: 5479a5f ║
║ Kilde: OSVauco/main · Synkronisert av: sync-gdrive-mirror.sh ║
╠══════════════════════════════════════════════════════════════╣
║ ⚠️ TERSKEL: 12 TIMER (aktiv dev-runde) ║
║ HVIS MER ENN 12T HAR GÅTT: STOPP og verifiser mot GitHub ║
╠══════════════════════════════════════════════════════════════╣
║ VERIFISER: https://github.com/vauco-saas/ ║
║ OSVauco/blob/main/docs/AGENT_RULEBOOK.md ║
╚══════════════════════════════════════════════════════════════╝
PROSJEKTINDEKS — AUTO-GENERERT 2026-05-26T03:02 UTC · HEAD 5479a5f
TODO
OSVauco / OPAX — TODO
Managed by PLAN thread. Update when phases move between sections. Last updated: 2026-05-25T14:37 CEST
NOW
- ⚠️ HASTER — Roter OAuth client secret
Vauco OS Web Appi Google Auth Platform — eksponert i chat 2026-05-25. - Vurder om
jason.vauger@vauco.noskal beholderoles/run.invokerpåosvauco-agent. - Kjør
git update-index --chmod=+xpå alle scripts + commit — hindrer Permission denied etter GitHub web-edit. - Verifiser første nattlige GDrive backup — kl 03:00 UTC (Actions-logg).
NEXT
- Phase 6 — LEARNING-010 append: Cloud Run domain mapping støtter ikke load balancer IAP.
opax-mcp/restruktureres som ordentlig modul-subtree.- Full boot cycle acceptance test (automatisert).
- VS Code ↔ Cloud Shell workflow — preflight-script for lokal utvikling.
- Gemini TUI-output logging —
gemini-logalias, append siste 50 linjer til session log. - GDrive nightly workflow — verifiser schedule-trigger fungerer.
DONE ✅
- Phase 0 — Baseline: repo,
.gemini/-struktur, boot-script, sesjonslogg. - Phase 1 — Domain/protocol locking,
ARCHITECTURE.md,VAUCO_OS_ROADMAP.md. - Phase 2 —
opax.vauco.noLIVE: Cloud Run, CNAME, SSL. - Phase 3 — Nemotron session loop,
docs/TODO.md, Phase 1+2 rapport. - Phase 4 — Docs hardening: LEARNINGS 007-009, SECRETS-SETUP, IAP-SETUP kartlegging. (2026-05-25)
- Phase 5 — Cloud Run IAM-autentisering på
osvauco-agent: kunchris.christiansen@vauco.no+jason.vauger@vauco.no. DNS urørt. (2026-05-25) - GDrive/GitHub paritet — mirror-script, nattlig backup, PS1 prompt, IAM/Secrets, opax-logg-slutt auto-push. (2026-05-25)
- GDrive backup IAM — SA opprettet, JSON-nøkkel, mapper delt. (2026-05-25)
- GitHub Secrets —
RCLONE_GDRIVE_SA_JSON+GDRIVE_BACKUP_FOLDER_IDsatt. (2026-05-25) - Første mirror-sync —
.gdrive-mirror-stateopprettet,GDRIVE_MIRROR_BOOT.mdlastet opp. (2026-05-25) - PS1 gul-bug — state-fil skrives nå ETTER push, prompt grønn umiddelbart. (2026-05-25)
SESJONSLOGG
Sessions Index
| Dato | Emne | Fil |
|---|---|---|
| 2026-05-21 | OSVauco/OPAX platform bootstrap — naming, domenekonvensjon, Nemotron TODO | 2026-05-21_osvauco-opax-platform-naming-domains.md |
| 2026-05-22 | osv-startup.ps1 — banner design, farger, prompt og gcloud-fix | 2026-05-22_osv-startup-banner-styling.md |
| 2026-05-24 | OPAX heavy mode + LLM-ruting + RAG re-indeksering | 2026-05-24_opax-heavy-mode-llm-ruting-rag.md |
| 2026-05-24 | RAG corpus setup — Vertex AI serverless debugging | 2026-05-24_rag-corpus-setup-vertexai.md |
| 2026-05-24 | RAG restriction + operator suite heavy lifts + docs hardening | 2026-05-24_osvauco-rag-operator-suite.md |
| 2026-05-25 | GDrive/GitHub mirror + backup, PS1 prompt, opax-logg-slutt fix, IAM setup | 2026-05-25_gdrive-mirror-sync.md |
| 2026-05-25 | GitHub boot + prosjektstatus-lesing + GDrive-review fra handoff | 2026-05-25_github-boot-status-gdrive-review.md |
| 2026-05-25 | Phase 7 RAG corpus opprettet — sesjonsstatus-diff og handoff | 2026-05-25_phase7-rag-corpus-handoff.md |
| 2026-05-26 | RAG corpus kobling til osvauco-agent — boot, snapshot-sti-avklaring, index-oppdatering | 2026-05-26_rag-corpus-kobling-agent.md |
| 2026-05-26 | Deploy + CI/CD handoff — B2/B3/B4/B5 gjestår, teardown-påminnelse | 2026-05-26_deploy-cicd-handoff.md |
| 2026-05-26 | B2 + B3 fullført — Secret Manager verifisert, Cloud Build 2nd gen pipeline oppe | 2026-05-26_b2-b3-cicd-ferdig.md |
| 2026-05-26 | B3 trigger-test SUCCESS — revisjon 00065-z7t | 2026-05-26_b3-trigger-test-ok.md |
| 2026-05-26 | Google Chat webhook + cloudbuild.yaml bash-fix — CI/CD komplett | 2026-05-26_google-chat-webhook-ferdig.md |
| 2026-05-26 | B5 fullført — budget alert 500 NOK, GCS telemetri-bucket, logg-sink aktiv | 2026-05-26_b5-cost-guard-telemetri-ferdig.md |
| 2026-05-26 | B1-IAP fullført — opax.vauco.no live, CNAME ghs.googlehosted.com, IAM invoker satt | 2026-05-26_b1-iap-cname-ferdig.md |
ROADMAP
VAUCO OS — ROADMAP.md
Eier: PLAN-Claude-Architect
Sist oppdatert: 2026-05-22 CEST
Godkjent av: Chris Christiansen
NOW — Aktiv nå
- Phase 4 — Docs hardening
- Owner: OPS / Gemini TUI
- HITL gate:
MERGE APPROVED - Filer:
LEARNINGS.md,SECRETS-SETUP.md,IAP-SETUP.md— oppdater med nåværende state - Done: alle tre filer har seksjon
## Status 2026-05-22med verifisert info
NEXT — Neste opp
-
Phase 5 — IAP på
opax.vauco.no- Begrens til
@vauco.noGoogle-kontoer - Owner: EXEC-Gemini / Chris
- HITL gate:
DEPLOY GODKJENT - Done: uautentiserte requests → 403,
chris.christiansen@vauco.no→ 200
- Begrens til
-
Phase 6 — VS Code ↔ Cloud Shell workflow
- Preflight-script + dokumentasjon for lokal utvikling mot OSVauco-repoet
- Owner: OPS
- HITL gate:
MERGE APPROVED
LATER — Backlog
opax-mcp/restruktureres som ordentlig modul-subtree- Full boot cycle acceptance test (automatisert)
- OPS agent + BigQuery live logging
- Multi-klient onboard-mønster
- Medioteq — kun idéfase, ingenting implementeres før OPAX er fullt operasjonelt
BLOCKED
(ingen blokkerte punkter)
✅ Fullførte faser
- Phase 0 — Baseline:
opax-mcp-corelive, OSVauco repo,.gemini/grunnmur, boot-script, sessionslogg - Phase 1 — MCP_NAME/MCP_PROTOCOL/ROOT_DOMAIN locked; ARCHITECTURE.md + ROADMAP.md opprettet ·
6ae1a254a971ddc4149e7· 2026-05-21 - Phase 2 —
opax.vauco.noLIVE: domain mapping + CNAME + SSL + HUB_URL locked ·f3bf419· 2026-05-21 - Phase 3 — Nemotron session loop i GEMINI.md; docs/TODO.md; Phase 1+2 SLUTTRAPPORT i session log ·
77ed501· 2026-05-21
EOF v2.0 — 2026-05-22 — synkronisert med faktisk repo-state
AGENT_RULEBOOK
VAUCO OS — AGENTRLEBOOK.md
Eier: OPS-Computer-Hub
Sist oppdatert: 2026-05-21 CEST
Godkjent av: Chris Christiansen
Hensikt
Immutable regler for alle 4 tråder. Ingen tråd kan overstyre disse. Endringer krever eksplisitt godkjenning fra Chris.
LOCK LIST — ALDRI ENDRE
| Parameter | Verdi |
|---|---|
| GCP Account | chris.christiansen@vauco.no |
| Forbudte kontoer | tinius.vauger, ccv, jason.vauger |
| GCP Project | propane-will-491900-m5 (Jason-v1) |
| Billing | 0171F6-057E6B-A260BA |
| Org | vauco.no / 155051211891 |
| Region | us-central1 — ALDRI us-west1 |
| SDK | from google import genai — ALDRI vertexai.generative_models |
| Agent-rammeverk | Google ADK (tillatt) — andre må eksplisitt ADK_GODKJENT av Chris |
| GitHub user | vauco-saas |
| Canonical repo | OSVauco |
| Canonical branch | main |
| MCP_NAME | OPAX-MCP |
| MCP_PROTOCOL | OPAX Protocol |
| MCP_SERVICE | opax-mcp-core (Cloud Run, us-central1) |
| ROOT_DOMAIN | vauco.no |
| HUB_URL | https://opax.vauco.no ✅ LIVE 2026-05-21 |
DOMENEKONVENSJON — LOCKED
| Subdomain | Type | Formål |
|---|---|---|
opax.vauco.no |
Hub/MCP | OPAX-MCP operator hub — kun Vauco internt |
<klient>-os.vauco.no |
Prod OS | Kundens live produksjonssystem |
<klient>-oss.vauco.no |
Stage OS | Kundens staging/demo-system (pre-go-live) |
-os= produksjon.-oss= staging. Aldri omvendt.
Auth-strategi:
- Nå: Google OAuth på alle miljøer
- Senere: BankID på
-os-domener for kliniske kunder (Medioteq først)
Kjente/planlagte domener:
| Domene | Status | Cloud Run-tjeneste |
|---|---|---|
opax.vauco.no |
✅ LIVE | opax-mcp-core |
medioteq-oss.vauco.no |
Planlagt | medioteq-oss-core |
medioteq-os.vauco.no |
Planlagt | medioteq-os-core |
HITL-GATES — STOPP OG SPØR ALLTID
DEPLOY GODKJENT— før deploy til Cloud RunMERGE APPROVED— før merge til mainDEEP DREAM GODKJENT— før strategisk vokabular eksponeresCOST GODKJENT— før endringer som påvirker billingIAM_GODKJENT— før IAM-endringer eller ny service accountNEWREPO— før opprettelse av ny repo
BOOT-PROTOKOLL — kjøres av ALLE tråder ved oppstart
- Branch-discovery: list alle branches, finn mest aktiv (ahead av default)
- Hvis 1+ branch er 10+ commits ahead: STOPP og spør Chris
- Standard: OSVauco/main er canonical for dette prosjektet
- Les eid fil + MASTER_HANDOFF_v2 + ROADMAP fra riktig branch
- Bekreft i én linje:
Boot OK — branch X, HEAD Y, oppgave Z
VOCABULARY FIREWALL
| Type | Ord | Regel |
|---|---|---|
| Offentlig (OK overalt) | Token Ledger, VVN, Provenance, File signature, Client identity record, Cognitive contribution, The system | Fritt bruk |
| Strategisk (KUN internt) | Pregeverdi, Deep Dream, Vauco-arv, Pregesignatur, T-konto, Work of Living, Pregeverk | KUN i deep-dream/-mappe |
KOST-DISIPLIN
- $3/dag hard cap per tråd
gemini-2.5-flashfor enkle steg,profor komplekse- ALDRI rekursive modell-loops
- Hvis tråden bruker $1 på én oppgave: STOPP, rapporter, spør
- 80%/95%/100% quota stops aktive
FRICTION-REGLER (kodifisert lærdom)
TASK-FRICTION-001: Branch-discovery-before-read
Preflight må advare hvis non-default branch er 10+ commits ahead.
Implementer i: scripts/preflight-check.sh
TASK-FRICTION-002: SYSTEM_STATE_AGENT_BOOT autogenerering
Boot-script skriver fersk state-fil ved hver tråd-oppstart.
Implementer i: scripts/boot-state.sh (EXEC eier)
TASK-FRICTION-003: Eierskap-matrise håndhevet i pre-commit
Pre-commit hook avviser commit hvis fil endres av feil tråd.
Implementer i: .githooks/pre-commit (OPS eier)
KORREKSJONS-REGEL
Ground truth wins always.
- Innrøm direkte i én setning
- Oppdater eid fil med korreksjon
- Fortsett ALDRI forsvar gamle posisjoner.
KOMMUNIKASJON MELLOM TRÅDER
- ML-TRÅD: Chris kopierer melding over
- Filer flyter via GitHub (
OSVauco+ tjeneste-repoer) - Aldri direkte tråd-til-tråd — alt via committed MD eller Chris
EIERSKAP-MATRISE
| Fil | Eier | Andre kan |
|---|---|---|
| VAUCO_OS_MASTER_HANDOFF_v2.md | OPS | lese |
| VAUCO_OS_ROADMAP.md | PLAN | lese, foreslå patch via PR |
| SYSTEM_STATE_AGENT_BOOT.md | EXEC | lese |
| docs/AGENTRLEBOOK.md | OPS | lese |
| docs/ARCHITECTURE.md | PLAN | lese, foreslå patch via PR |
| docs/LEARNINGS.md | OPS | lese, foreslå append |
| docs/RISKREGISTER.md | AUDIT | lese |
| docs/PLANBOARD.md | AUDIT | lese |
| CHANGELOG.md | OPS | lese |
| TODO.md | EXEC | lese |
Regel: én fil — én eier. Andre foreslår via PR, eier merger.
EOF v1.2 — 2026-05-21 — OPS-Computer-Hub (Phase 2: HUB_URL locked LIVE, domain status updated)
LEARNINGS — siste oppføringer
Regel: Før ny plan: verifiser alle premisser eksplisitt. Ground truth wins always. Innrøm direkte, oppdater eid fil, fortsett.
Implementert i: docs/AGENTRLEBOOK.md — KORREKSJONS-REGEL
LEARNING-004: Pre-commit hook kan ikke skille regel-definisjon fra regelbrudd
Dato: 2026-05-18
Kontekst: .githooks/pre-commit bruker innholdsbasert regex-gate. Fanger vertexai.generative_models overalt — inkludert i NEVER-lister og kommentarer.
Lærdom: Semantisk korrekt bypass (--no-verify eller git config --unset core.hooksPath) er riktig for commits som inneholder regel-definisjoner, ikke regelbrudd.
Regel: Hook v2 må implementere Argument C: kun match uncommented lines i .py/.sh, og kun utenfor NEVER/blocked/forbid-kontekst i .md.
Implementert i: TASK-FRICTION-003 — hook v2 (Day 2)
LEARNING-005: Verdivurdering før commit — tråden kan absorbere korreksjon raskt
Dato: 2026-05-18
Kontekst: Doc-konsolidering ble nødvendig (LEARNINGS.md, AGENTRLEBOOK.md). Ground-truth-vinner-alltid-prinsippet fungerte raskt i praksis.
Lærdom: Kjør verdivurdering ved slutten av hver økt: hva produserte vi, hva er nyttig vs dødt, hvilken læring overlever?
Regel: Før tråd-økt avsluttes: oppdater LEARNINGS.md (append), og friction → TASK-FRICTION-NNN i ROADMAP.
Implementert i: docs/AGENTRLEBOOK.md — FRICTION-REGLER
EOF — append videre under denne linjen
LEARNING-006: gcloud-CLI deler quota med system-prosesser (32555940559)
Dato: 2026-05-18
Kontekst: gcloud CLI bruker shared project 32555940559 for cloudresourcemanager API. Loop-scripts trigget 2400 RPM cap. Årsak: boot-script eller watch-prosess listet prosjekter/billing i loop.
Lærdom: Quota-hit på shared gcloud-prosjekt er ikke-fatal, forsvinner etter 60s. Sjekk alltid ps aux for spam-prosesser før loop-operasjoner.
Regel: 1) Skriv Y ved quota-prompt → 2) vent 60s → 3) kjør preflight.sh på nytt. Ved 429: ps aux | grep -E "(gcloud|gemini|watch)" | grep -v grep → kill -9 ved looping prosess.
Implementert i: scripts/preflight.sh — kandidat for quota-check i v1.2 (TF-004)
LEARNING-007: Bindestrek er ugyldig i bash-funksjonsnavn (POSIX strict)
Dato: 2026-05-25
Kontekst: Cloud Shell kjører -bash i POSIX strict mode. opax-logg-slutt() { kastet syntax error. Funksjonen var definert korrekt men navn med bindestrek er ikke tillatt i POSIX sh.
Lærdom: Funksjonsnavn i bash-scripts som skal kjøres i Cloud Shell MÅ bruke understrek, ikke bindestrek. Alias kan fortsatt bruke bindestrek og peke på understreks-funksjonen.
Regel: Alle funksjoner i scripts/ bruker understrek (opax_logg_slutt). Aliaser for brukervennlighet kan ha bindestrek (alias opax-logg-slutt='opax_logg_slutt').
Implementert i: scripts/osvauco-opax-boot.sh — fix pushet HEAD 1cea31d
LEARNING-008: rclone med GDrive service account krever eksplisitt mappedeling
Dato: 2026-05-25
Kontekst: GitHub Actions nattlig backup feilet første kjøring. Årsak: service account (vauco-gdrive-backup@...) hadde ikke tilgang til GDrive-mappen selv om JSON-nøkkel og Secret var korrekt satt.
Lærdom: GDrive-mapper er ikke automatisk tilgjengelig for service accounts selv om de har riktig IAM-rolle. Mappen MÅ deles eksplisitt med service account-eposten (Editor-tilgang) i GDrive UI.
Regel: Ved oppsett av rclone/GDrive-backup: del ALLE målmapper med SA-epost manuelt i GDrive. Dokumenter i docs/GDRIVE_SETUP.md.
Implementert i: docs/GDRIVE_SETUP.md — steg 3
LEARNING-009: .gdrive-mirror-state som SHA-anker forhindrer falske OK-varsler
Dato: 2026-05-25
Kontekst: Boot-dashboard viste alltid "fersk mirror" selv om GDrive ikke var oppdatert. Årsak: ingen persistert state å sammenligne mot.
Lærdom: Synkroniseringsstatus uten persistert anker er ubrukelig. .gdrive-mirror-state-filen (LAST_SYNC + LAST_SHA) gir boot-scriptet et faktisk sammenligningspunkt mellom sesjoner.
Regel: Ethvert sync-script skal skrive en state-fil med tidsstempel + commit-SHA. Boot leser denne og varsler ved avvik.
Implementert i: scripts/sync-gdrive-mirror.sh + scripts/osvauco-opax-boot.sh
Oppdater ved å kjøre: bash scripts/sync-gdrive-mirror.sh — last deretter opp til GDrive.
EOF · GDRIVE_MIRROR_BOOT · 2026-05-26T03:02 UTC · HEAD 5479a5f · auto-generert