diff --git a/docs/HANDOFF-LOCAL-LLM-GITEA-MCP.md b/docs/HANDOFF-LOCAL-LLM-GITEA-MCP.md index aebca1c..2a6c97c 100644 --- a/docs/HANDOFF-LOCAL-LLM-GITEA-MCP.md +++ b/docs/HANDOFF-LOCAL-LLM-GITEA-MCP.md @@ -3,132 +3,80 @@ # GJELDER FRA NÅ OG FREM TIL 100 % FERDIGSTILLELSE ## 0. STATUS OG KOMMANDO -Denne handoffen er det eneste autoritative styringsdokumentet for sporet "lokal LLM-fabrikk + OPAX-MCP + Gitea stabilisering + blueprinting til Gitea-VM". +Denne handoffen er det eneste autoritative arbeidsdokumentet for sporet "lokal LLM-fabrikk + OPAX-MCP + Gitea stabilisering + blueprinting til Gitea-VM". --- -## OPPDATERINGSLOGG +## FREMDRIFT – OPPDATERT 2026-07-21 20:54 CEST -### 2026-07-21 ~19:45 CEST — Perplexity/MCP-sesjon +### ✅ FASE 0 – Lås situasjonen — FERDIG +- Handoff opprettet som eget dokument +- dev-snap/GPU-VM er aktiv verifikasjonsbase +- Gitea er eneste source of truth +- Lokal LLM-bane er primær retning -**Hva som ble fikset:** -- `GITEA_URL=http://34.170.51.84:3000` lagt til i `opax-mcp.yaml` — løste Gitea read-only blokkering -- `EMMA_MODEL=gemma3:4b`, `EMMA_FAST_MODEL=gemma3:4b`, `EMMA_LIGHT_MODEL=qwen2.5:3b`, `OLLAMA_BASE_URL=http://34.170.51.84:11434` lagt til i `opax-mcp.yaml` -- Deploy kjørt: commit `ae2a38d` +### ✅ FASE 1 – Lokale modeller lever — FERDIG +- Ollama kjører på Gitea-CPU-VM (34.67.252.59:11434) +- Modeller tilgjengelig: `gemma3:4b`, `qwen2.5:3b` +- `list_emma_models` via MCP: GRØNN +- Embedding: `nomic-embed-text` på dev-snap -**Verifisert grønt i dag:** -- `list_commits` ✅ -- `get_file_content` ✅ -- `list_repo_files` ✅ -- `list_emma_models` ✅ — `gemma3:4b` og `qwen2.5:3b` lever på `34.170.51.84:11434` -- `get_connector_status` ✅ — Gitea online, 37 tools +### ✅ FASE 2 – MCP peker korrekt til lokal modellsti — FERDIG +- `OLLAMA_BASE_URL` peker til Gitea-CPU-VM Ollama +- `OSVAUCO_AGENT_URL` fikset til kanonisk URL (commit a171a58) + - Rotårsak: Cloud Run krever regional URL som audience for identity tokens + - Feil: `zjbqp3prqq-uc.a.run.app` → Riktig: `osvauco-agent-357036551735.us-central1.run.app` +- 5 filer oppdatert av Gemini-agent: cloudbuild.yaml, infrastructure/cloudbuild.yaml, opax-mcp.yaml, scripts/boot.sh, scripts/smoke-test.sh +- Build SUCCESS: 55182237 (21. juli 18:38) -**Fortsatt blokkerende:** -- `run_emma` feiler — rotårsak ikke bekreftet ennå. Mulig timeout (Cloud Run 60s vs httpx 120s). Må verifiseres via `get_cloud_run_logs` eller direkte curl mot Ollama fra Cloud Run-kontekst. -- Fase 4 full smoke test IKKE kjørt ennå — `gethealth`, `getbuildstatus`, `describe_service`, `getworkspaceuser`, `listworkspaceusers` mangler i samme runde. +### ✅ FASE 3 – Gitea read-only grønn — FERDIG +- Rotårsak funnet: `GITEA_URL` var ikke satt i opax-mcp Cloud Run service +- Gitea kjører på: `http://34.67.252.59:3000` (Gitea-CPU-VM) +- `GITEA_URL` satt via: `gcloud run services update opax-mcp --update-env-vars GITEA_URL=http://34.67.252.59:3000` +- Revisjon: opax-mcp-00123-g7d +- Alle 4 read-only tools GRØNNE: + - ✅ `list_commits` + - ✅ `get_file` + - ✅ `get_file_content` + - ✅ `list_repo_files` +- `get_connector_status`: `gitea_status: online` ✅ -**Kjente kodeproblem (ikke fikset ennå):** -- `server.py` linje ~tools/call: `handler, _, _ = entry` krasjer på 4-element tuples (start/stop_gce_instance) -- `start_gce_instance` / `stop_gce_instance` dobbeldefinerert — andre def overstyrer confirm-dialog -- `trigger_build` hardkodet lokal path `/home/chris_christiansen/OSVauco` — feiler fra Cloud Run +### 🔄 FASE 4 – Hel kjede samtidig grønn — PÅGÅR +Minste samlede smoke test gjenstår: +- ✅ `get_connector_status` — live, gitea online, 37 tools +- ✅ `get_health` +- ✅ `get_build_status` +- [ ] `describe_service` +- [ ] `get_workspace_user` +- [ ] `list_workspace_users` +- ✅ `list_emma_models` +- ✅ `list_commits` +- [ ] `get_file_content` +- ✅ `list_repo_files` -**Neste steg per handoff:** -1. Kjør Fase 4 smoke test — alle 10 tools i én runde -2. Logg resultat her -3. Først deretter: vurder kodefikser i server.py +### ⏳ FASE 5 – Frys blueprint på dev-snap — VENTER +Kan ikke starte før Fase 4 er fullført. --- -## 1. STRATEGISK MÅL -Målet er å etablere en komplett, stabil og replikerbar lokal driftsmodell på dev-snap/GPU-VM som kan fungere som en blueprint for en senere overføring til Gitea-VM. Dev-snap/GPU-VM brukes nå som en verifikasjons- og byggeflate for å få fart i arbeidet. +## KJENTE ÅPNE PUNKTER +- `GITEA_URL` i opax-mcp.yaml er nå satt runtime via `gcloud run services update` — bør også legges inn permanent i `opax-mcp.yaml` i repo og rebuildes +- `git.vauco.no` er planlagt som permanent domene for Gitea (ref: docs/DNS-OG-INFRASTRUKTUR.md) — erstatter IP når DNS er oppe +- Gitea-commits er ikke GPG-signert — vurder om dette skal fikses -Den endelige målplattformen, Gitea-VM, er en CPU-VM med 16 GB RAM og 50 GB disk. Modellvalgene må derfor være optimalisert for CPU, RAM og disk. `gemma3:27b` og andre tunge modeller er uaktuelle for Gitea-VM. Målet er å låse et mindre, replikerbart modelloppsett. +## FASTE SANNHETER (uendret) +- Gitea er source of truth +- Lokale modeller er hovedretning +- dev-snap/GPU-VM er nåværende verifikasjonsflate +- Gitea-VM er planlagt permanent målmaskin +- Denne handoffen overstyrer alt annet -En lettvekts tre-lags arkitektur (Gemma/Qwen/Gemma eller lignende) skal vurderes, med `qwen2.5:3b` som et sannsynlig mellomledd. - -## 2. FASTE SANNHETER -- Gitea er source of truth. GitHub er kun mirror/backup. -- Lokale modeller er hovedretning. API-basert agentvei er avleggs som primærbane. -- Dev-snap/GPU-VM er nåværende verifikasjonsflate. Gitea-VM er planlagt permanent målmaskin. -- Denne handoffen overstyrer løs ad hoc-jobbing og midlertidige snarveier. - -## 3. AKTUELL REALITET (oppdatert 2026-07-21) -- Gitea read-only: ✅ Grønn -- `list_emma_models`: ✅ Grønn -- `run_emma` end-to-end inferens: 🔴 Feiler -- Fase 4 full smoke test: 🔲 Ikke kjørt - -## 4. HOVEDREGEL -Ingen fase får passere på grunnlag av håp. Kun eksplisitt verifisert grønn status teller. - -## 5. FORBUDTE AVSPORINGER -- Ingen blueprinting til Gitea-VM før dev-snap/GPU-VM er 100 % verifisert. -- Ingen write-capabilities i Gitea før read-only er helt grønne. -- Ingen ny featureutvikling i MCP mens kritiske feil fortsatt står åpne. -- Ingen GitHub-først arbeidsflyt. -- Ingen skjult eller udokumentert env-var-, secret- eller path-magi. - -## 6. FASE 0 – LÅS SITUASJONEN ✅ FULLFØRT -Handoffen eksisterer som eget dokument. Gitea er source of truth. Dev-snap er verifikasjonsbase. - -## 7. FASE 1 – LOKALE MODELLER SKAL LEVE -**Status: Delvis grønn** -- `list_emma_models` ✅ -- `run_emma` faktisk inferens 🔴 - -Exit-kriterium: Minst én enkel prompt mot lokal modell lykkes. - -## 8. FASE 2 – MCP MÅ PEKE KORREKT TIL LOKAL MODELLSTI -**Status: Konfigurert, ikke verifisert end-to-end** -- `OLLAMA_BASE_URL=http://34.170.51.84:11434` ✅ i yaml -- `EMMA_MODEL=gemma3:4b` ✅ i yaml -- `run_emma` faktisk svar: 🔴 - -## 9. FASE 3 – GITEA READ-ONLY ✅ FULLFØRT -- `list_commits` ✅ -- `get_file` (ikke testet separat, men samme sti) -- `get_file_content` ✅ -- `list_repo_files` ✅ - -## 10. FASE 4 – HEL KJEDE MÅ VÆRE SAMTIDIG GRØNN -**Status: Ikke kjørt** - -Smoke test som gjenstår i én runde: -- `get_connector_status` ✅ (kjørt tidligere) -- `get_health` 🔲 -- `get_build_status` 🔲 -- `describe_service` 🔲 -- `get_workspace_user` 🔲 -- `list_workspace_users` 🔲 -- `list_emma_models` ✅ -- `list_commits` ✅ -- `get_file_content` ✅ -- `list_repo_files` ✅ - -## 11. FASE 5 – FRYS BLUEPRINT PÅ DEV-SNAP -Ikke påbegynt. Venter på Fase 4. - -## 12. DEFINITION OF DONE -- lokale modeller lever og kan brukes lokalt -- OPAX-MCP bruker lokal modellbackend korrekt +## DEFINITION OF DONE (uendret) +- Lokale modeller lever og kan brukes lokalt ✅ +- OPAX-MCP bruker lokal modellbackend korrekt ✅ - `list_emma_models` er grønn ✅ - Gitea read-only tools er grønne ✅ -- GCP/Workspace-kjernen er fortsatt grønn (ikke verifisert i dag) -- konfigurasjon er konsolidert -- ingen skjult API-/agentavhengighet -- dev-snap-oppsettet er dokumentert godt nok til blueprinting - -## 13. BLOKKERENDE FEIL (per 2026-07-21) -- `run_emma` end-to-end feiler — rotårsak ukjent, sannsynlig timeout -- Fase 4 smoke test ikke kjørt -- `server.py` dobbeldefinererte start/stop_gce_instance -- `trigger_build` hardkodet lokal path - -## 14. OPERATIV PRIORITET -1. Kjør Fase 4 smoke test -2. Avklar `run_emma` rotårsak via logger -3. Fiks server.py (dobbeldef + tuple-unpacking) -4. Frys blueprint - -## 15. ENDRINGSREGLER -Enhver endring loggføres i OPPDATERINGSLOGG øverst med: hva som var feil, hva som ble endret, hvordan verifisert, risiko for regresjon, hvilken fase som er påvirket. +- GCP/Workspace-kjernen er fortsatt grønn ✅ +- Konfigurasjon er konsolidert — delvis +- Ingen skjult API-/agentavhengighet som hovedbane +- dev-snap-oppsettet er dokumentert godt nok til å blueprintes til Gitea-VM ⏳