chore(docs): sync GDRIVE_MIRROR_BOOT 2026-05-25T12:57 UTC [HEAD af9404e]

This commit is contained in:
Chris Christiansen 2026-05-25 12:57:44 +00:00
parent af9404e62f
commit 6f2b5baafa

View File

@ -14,8 +14,8 @@
``` ```
╔══════════════════════════════════════════════════════════════╗ ╔══════════════════════════════════════════════════════════════╗
║ SIST SYNKRONISERT: 2026-05-25T11:30 UTC ║ ║ SIST SYNKRONISERT: 2026-05-25T12:57 UTC ║
║ HEAD: 3058144 ║ HEAD: af9404e
║ Kilde: OSVauco/main · Synkronisert av: sync-gdrive-mirror.sh ║ ║ Kilde: OSVauco/main · Synkronisert av: sync-gdrive-mirror.sh ║
╠══════════════════════════════════════════════════════════════╣ ╠══════════════════════════════════════════════════════════════╣
║ ⚠️ TERSKEL: 12 TIMER (aktiv dev-runde) ║ ║ ⚠️ TERSKEL: 12 TIMER (aktiv dev-runde) ║
@ -28,7 +28,7 @@
--- ---
## PROSJEKTINDEKS — AUTO-GENERERT 2026-05-25T11:30 UTC · HEAD 3058144 ## PROSJEKTINDEKS — AUTO-GENERERT 2026-05-25T12:57 UTC · HEAD af9404e
--- ---
@ -36,23 +36,22 @@
# OSVauco / OPAX — TODO # OSVauco / OPAX — TODO
> Managed by PLAN thread. Update when phases move between sections. Last updated: 2026-05-25T13:00 CEST > Managed by PLAN thread. Update when phases move between sections. Last updated: 2026-05-25T14:37 CEST
--- ---
## NOW ## NOW
- [ ] **Phase 4** — Docs hardening: oppdater `LEARNINGS.md`, `SECRETS-SETUP.md`, `IAP-SETUP.md` med nåværende state. - [ ] **⚠️ HASTER** — Roter OAuth client secret `Vauco OS Web App` i [Google Auth Platform](https://console.cloud.google.com/auth/clients/357036551735-ka7t2fv9ue2jp01bs826hpdctlvispuo.apps.googleusercontent.com?project=propane-will-491900-m5) — eksponert i chat 2026-05-25.
- [ ] Verifiser at `source scripts/osvauco-opax-boot.sh` printer NESTE OPPGAVE i grønt (Cloud Shell). - [ ] Vurder om `jason.vauger@vauco.no` skal beholde `roles/run.invoker``osvauco-agent`.
- [ ] Legg til `## SLUTTRAPPORT Phase 3` + `## NESTE OPPGAVE` blokk i `docs/OSVAUCO_OPAX_SESSION_LOG.md`.
- [ ] Verifiser første nattlige GDrive backup — kl 03:00 UTC (Actions-logg).
- [ ] Kjør `git update-index --chmod=+x` på alle scripts + commit — hindrer Permission denied etter GitHub web-edit. - [ ] Kjør `git update-index --chmod=+x` på alle scripts + commit — hindrer Permission denied etter GitHub web-edit.
- [ ] Verifiser første nattlige GDrive backup — kl 03:00 UTC (Actions-logg).
--- ---
## NEXT ## NEXT
- [ ] **Phase 5** — IAP på `opax.vauco.no` (kun `@vauco.no` accounts). - [ ] **Phase 6** — LEARNING-010 append: Cloud Run domain mapping støtter ikke load balancer IAP.
- [ ] `opax-mcp/` restruktureres som ordentlig modul-subtree. - [ ] `opax-mcp/` restruktureres som ordentlig modul-subtree.
- [ ] Full boot cycle acceptance test (automatisert). - [ ] Full boot cycle acceptance test (automatisert).
- [ ] VS Code ↔ Cloud Shell workflow — preflight-script for lokal utvikling. - [ ] VS Code ↔ Cloud Shell workflow — preflight-script for lokal utvikling.
@ -67,6 +66,8 @@
- [x] **Phase 1** — Domain/protocol locking, `ARCHITECTURE.md`, `VAUCO_OS_ROADMAP.md`. - [x] **Phase 1** — Domain/protocol locking, `ARCHITECTURE.md`, `VAUCO_OS_ROADMAP.md`.
- [x] **Phase 2**`opax.vauco.no` LIVE: Cloud Run, CNAME, SSL. - [x] **Phase 2**`opax.vauco.no` LIVE: Cloud Run, CNAME, SSL.
- [x] **Phase 3** — Nemotron session loop, `docs/TODO.md`, Phase 1+2 rapport. - [x] **Phase 3** — Nemotron session loop, `docs/TODO.md`, Phase 1+2 rapport.
- [x] **Phase 4** — Docs hardening: LEARNINGS 007-009, SECRETS-SETUP, IAP-SETUP kartlegging. (2026-05-25)
- [x] **Phase 5** — Cloud Run IAM-autentisering på `osvauco-agent`: kun `chris.christiansen@vauco.no` + `jason.vauger@vauco.no`. DNS urørt. (2026-05-25)
- [x] **GDrive/GitHub paritet** — mirror-script, nattlig backup, PS1 prompt, IAM/Secrets, opax-logg-slutt auto-push. (2026-05-25) - [x] **GDrive/GitHub paritet** — mirror-script, nattlig backup, PS1 prompt, IAM/Secrets, opax-logg-slutt auto-push. (2026-05-25)
- [x] **GDrive backup IAM** — SA opprettet, JSON-nøkkel, mapper delt. (2026-05-25) - [x] **GDrive backup IAM** — SA opprettet, JSON-nøkkel, mapper delt. (2026-05-25)
- [x] **GitHub Secrets**`RCLONE_GDRIVE_SA_JSON` + `GDRIVE_BACKUP_FOLDER_ID` satt. (2026-05-25) - [x] **GitHub Secrets**`RCLONE_GDRIVE_SA_JSON` + `GDRIVE_BACKUP_FOLDER_ID` satt. (2026-05-25)
@ -313,26 +314,6 @@ EOF v1.2 — 2026-05-21 — OPS-Computer-Hub (Phase 2: HUB_URL locked LIVE, doma
## LEARNINGS — siste oppføringer ## LEARNINGS — siste oppføringer
Kontekst: Phase A scratchpad sjekket kun `main`-branch i vauco-os. `autoflow-lag-1` var canonical med full operativ kode. Hele Phase A-analysen ble feil, og Phase B-planen ble bygget på feil premiss.
Lærdom: Default branch er ALDRI automatisk canonical. Alltid sjekk alle branches og finn den med mest aktive commits.
Regel: Boot-protokoll starter ALLTID med branch-discovery. Hvis 1+ branch er 10+ commits ahead av default: STOPP og spør Chris.
Implementert i: `docs/AGENTRLEBOOK.md` — BOOT-PROTOKOLL steg 1
---
### LEARNING-002: Handoff-MD er ferskvare — utdatert på 13 timer
Dato: 2026-05-18
Kontekst: VAUCO_BOOTSTRAP_HANDOFF_NEMOTRON.md ble utdatert samme dag den ble skrevet. MASTER_HANDOFF_v2 måtte lages for å reconcile motstridende info.
Lærdom: Statiske handoff-filer divergerer fort fra live state. SYSTEM_STATE_AGENT_BOOT.md (EXEC eier) må regenereres ved hver tråd-boot for å være autoritet på hva som er sant nå.
Regel: EXEC-tråden kjører `scripts/boot-state.sh` ved hver sesjon og skriver fersk SYSTEM_STATE_AGENT_BOOT.md.
Implementert i: TASK-FRICTION-002 — `scripts/boot-state.sh` (Day 2)
---
### LEARNING-003: 40% av Phase B var nyttig — resten død/avfeilet
Dato: 2026-05-18
Kontekst: Phase B-plan var bygget på feil premiss (tom remote repo), men inneholdt gode design-elementer: task manager, dev-orchestrate.sh, doc-consolidation layout.
Lærdom: Selv feil-premiss-planer kan inneholde nyttige sub-komponenter. Skill økten mellom premiss-validering og løsnings-design.
Regel: Før ny plan: verifiser alle premisser eksplisitt. Ground truth wins always. Innrøm direkte, oppdater eid fil, fortsett. 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 Implementert i: `docs/AGENTRLEBOOK.md` — KORREKSJONS-REGEL
@ -365,17 +346,37 @@ 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. 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. 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 <PID> ved looping prosess. 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 <PID> ved looping prosess.
Implementert i: `scripts/preflight.sh` — kandidat for quota-check i v1.2 (TF-004)
--- ---
### LEARNING-007: Vertex AI RAG Engine Spanner Restriction & Graceful Degradation ### LEARNING-007: Bindestrek er ugyldig i bash-funksjonsnavn (POSIX strict)
Dato: 2026-05-24 Dato: 2026-05-25
Kontekst: Forsøk på å opprette serverless RAG Engine corpus i `us-central1` feilet med 400 INVALID_ARGUMENT. Årsak: Nye prosjekter i visse regioner er hard-begrenset til Spanner-modus (som krever allowlist). PATCH på `ragEngineConfig` med `basic` tier og fjerning av `spanner`-nøkkel via REST fungerte ikke (merging, ikke clearing). Fallback til `europe-west4` gav samme resultat. 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: RAG Engine er ikke universelt tilgjengelig som serverless ennå. SDK 1.153.1 har også bugs som krasjer ved bruk av `backend_config`. 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: Implementer alltid "Graceful Degradation" for RAG. Hvis corpus-opprettelse feiler pga. plattform-restriksjoner, sett en flagg, logg situasjonen til operatøren, og fortsett uten RAG i stedet for å krasje. 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: `agents/rag/setup_corpus.py`, `agents/rag/sync_corpus.py` 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.* *Oppdater ved å kjøre: `bash scripts/sync-gdrive-mirror.sh` — last deretter opp til GDrive.*
**EOF · GDRIVE_MIRROR_BOOT · 2026-05-25T11:30 UTC · HEAD 3058144 · auto-generert** **EOF · GDRIVE_MIRROR_BOOT · 2026-05-25T12:57 UTC · HEAD af9404e · auto-generert**