chore: update docs/HANDOFF-LOCAL-LLM-GITEA-MCP.md via opax-mcp
Some checks are pending
Check Python Version Consistency / Check Python Version (push) Waiting to run

This commit is contained in:
chris 2026-07-25 07:30:54 +00:00
parent 60a1206150
commit 3f4765e352

View File

@ -1,196 +1,56 @@
# HANDOFF-LOKAL-LLM-GITEA-MCP.md # HANDOFF — OPPDATERT 2026-07-25 09:30 CEST
# EGEN HANDOFF UFRAVIKELIG STYRINGSDOKUMENT
# GJELDER FRA NÅ OG FREM TIL 100 % FERDIGSTILLELSE
## 0. STATUS OG KOMMANDO ## KRITISK NESTE STEG — START HER
Denne handoffen er det eneste autoritative arbeidsdokumentet for sporet "lokal LLM-fabrikk + OPAX-MCP + Gitea stabilisering + blueprinting til Gitea-VM".
--- ### gitea-chat-bridge — BLOKKERT, krever Procfile
## FREMDRIFT OPPDATERT 2026-07-25 09:08 CEST Rotårsak: Cloud Run leter etter `app`-objekt, vi eksporterer `handler`.
### ✅ FASE 05 — FERDIG Filer klare i `~/OSVauco/gitea-chat-bridge/`:
### ✅ FASE 6 CPU-optimalisering — FERDIG - `main.py` — Google Chat-format (uten Slack-syntax)
### ✅ FASE 6-TILLEGG Boot-warming — FERDIG - `requirements.txt` — functions-framework==3.*, requests==2.*
### ✅ DNS NS-bytte utført — FERDIG 2026-07-21 23:44 CEST - `Procfile` — MÅ OPPRETTES: `web: functions-framework --target=handler --port=8080`
### ✅ OPAX-MCP GITEA_URL permanent + deploy — FERDIG 2026-07-21 23:53 CEST
### ✅ SMOKE-TEST Alle 37 tools — FERDIG 2026-07-22 00:25 CEST
### ✅ FASE 6.5 VM-oppgradering + modellarkitektur — VERIFISERT 2026-07-22
### ✅ DEV-SNAP UAVHENGIGHET Verifisert 2026-07-22 19:30 CEST
### ✅ OSVauco arbeidskopi klonet til Gitea-VM — FERDIG 2026-07-22 19:25 CEST
### ✅ git.vauco.no HTTPS — FERDIG 2026-07-25
### ✅ GITEA_TOKEN rotert — FERDIG 2026-07-25
### ✅ Google OAuth2 innlogging Gitea — FERDIG 2026-07-25
### ✅ SIKKERHETSHERDING Uautoriserte brukere ryddet — FERDIG 2026-07-25
### ✅ VM Access Scopes cloud-platform satt — FERDIG 2026-07-25
### ✅ GPG-SIGNERING Commits verified — FERDIG 2026-07-25 08:42 CEST
### ✅ gitea-admin-password Lagret i Secret Manager — FERDIG 2026-07-25
### ✅ automation@vauco.no alias opprettet — FERDIG 2026-07-25 08:45 CEST
### ✅ GITEA → GOOGLE CHAT BRIDGE — FERDIG 2026-07-25 09:08 CEST
### 🟡 FASE 7 14B-validering utført, arkitektur justeres — PÅGÅR
### ⏳ automation-bruker i Gitea — NESTE
### ⏳ FASE 8 Backup / snapshot-strategi — PLANLAGT
--- ```bash
# Fullfør deploy:
cat > ~/OSVauco/gitea-chat-bridge/Procfile << 'EOF'
web: functions-framework --target=handler --port=8080
EOF
## SIKKERHETSHERDING (2026-07-25) WEBHOOK=$(gcloud secrets versions access latest --secret=CHAT_WEBHOOK_URL --project=propane-will-491900-m5)
- ✅ Offentlig brukerregistrering i Gitea deaktivert cd ~/OSVauco/gitea-chat-bridge && \
- ✅ To uautoriserte brukere (`dev433f2c`, `dev1ba0ac`) deaktivert og tokens slettet gcloud run deploy gitea-chat-bridge \
- ✅ Eksponert GITEA_TOKEN rotert — nytt token i Secret Manager, opax-mcp redeployet --source . --region us-central1 \
- ✅ VM Access Scopes oppdatert til `cloud-platform` --project propane-will-491900-m5 \
- ✅ GPG-nøkkel (46209B07B3352AE9) lagt til i Gitea, git konfigurert for auto-signering --platform managed --allow-unauthenticated \
- ✅ gitea-admin-password lagret i Secret Manager (secret: `gitea-admin-password`) --set-env-vars "CHAT_WEBHOOK_URL=$WEBHOOK" --quiet
- ✅ automation@vauco.no alias opprettet → videresender til chris.christiansen@vauco.no
--- # Test
curl -s -X POST https://gitea-chat-bridge-357036551735.us-central1.run.app \
-H "Content-Type: application/json" \
-d '{"repository":{"full_name":"chris/OSVauco"},"pusher":{"login":"chris"},"ref":"refs/heads/main","commits":[{"id":"abc1234","message":"test","url":"https://git.vauco.no"}]}'
## GITEA → GOOGLE CHAT BRIDGE (2026-07-25 09:08) rm -rf ~/OSVauco/gitea-chat-bridge
### Arkitektur
```
Gitea push/create/release
→ Gitea webhook (hook ID: 9)
→ Cloud Run: gitea-chat-bridge
https://gitea-chat-bridge-357036551735.europe-west1.run.app
→ Google Chat (CHAT_WEBHOOK_URL i Secret Manager)
``` ```
### Ressurser
- **Cloud Run service:** `gitea-chat-bridge` (europe-west1)
- **Gitea hook ID:** 9
- **Secret:** `CHAT_WEBHOOK_URL` (versjon 2, korrekt URL)
- **Events:** push, create, release
--- ---
## DEV-SNAP UAVHENGIGHET VERIFISERT 2026-07-22 ## STATUS 2026-07-25 09:30
Alle 6 tester grønne: ✅ FASE 0-6.5, DNS, OPAX-MCP, smoke-test, VM, HTTPS, OAuth2, sikkerhet, GPG, secrets
✅ automation@vauco.no alias → chris.christiansen@vauco.no
🔴 gitea-chat-bridge — deployet men krasjer (mangler Procfile)
⏳ automation-bruker i Gitea — NESTE etter bridge
⏳ Fase 8 snapshot-backup
| Test | Status | Bevis | ## RESSURSER
|------|--------|-------| - Bridge URL: https://gitea-chat-bridge-357036551735.us-central1.run.app
| A — Gitea API | ✅ | list_commits svarer fra localhost:3000 | - Gitea hook ID: 9
| B — Repo-innhold | ✅ | Klon hentet 3545 objekter direkte | - Secret: CHAT_WEBHOOK_URL (v2), gitea-admin-password
| C — OPAX health | ✅ | opax_mcp_status: live | - VM: 34.67.252.59 (Gitea + Ollama, alltid på)
| D — MCP tools/list | ✅ | 37 verktøy live | - OPAX MCP: us-central1
| E — Git-sync | ✅ | nothing to commit, working tree clean |
| F — Ollama | ✅ | 5 modeller bekreftet |
**Viktig:** Bruk alltid `localhost:3000` fra Gitea-VM, aldri ekstern IP mot seg selv.
---
## git.vauco.no FULLFØRT 2026-07-25
- ✅ DNS, nginx, certbot, HTTPS, Google OAuth2 — alt oppe
---
### Rollen "automation" og sikkerhets-sentinel for Gitea
Status per 2026-07-25:
- Gitea kjører på https://git.vauco.no med HTTPS.
- Offentlig registrering stengt.
- Ingen av stegene under er gjennomført ennå de beskriver målbildet.
#### 1. Teknisk Gitea-bruker: `automation`
- Opprett Gitea-bruker `automation` (ikke admin)
- Gi tilgang kun til OSVauco-repo
- Generer token, lagre i Secret Manager som `gitea-automation-token`
- Konfigurer Cloud Run / OPAX MCP til å bruke dette tokenet
- Konfigurer git på Gitea-VM til å bruke `automation` for push/pull
#### 2. Sentinel-rolle
- Lokal LLM periodisk sikkerhetssjekk av Gitea
- Rapport i `protocols/security/SENTINEL-REPORT-YYYY-MM-DD.md`
- Kun lesetilgang, ingen mutasjoner uten godkjenning
#### 3. Roller
- `chris`: admin, godkjenner
- `automation`: tekniske operasjoner via API
- `sentinel`: leser og rapporterer
---
## FASE 6.5 — LOKAL LLM-STACK
### Modeller per 2026-07-25
- `gemma3:4b` — frontmodell
- `qwen2.5:3b` — tool calling
- `qwen2.5:7b` — mellomlag
- `qwen2.5-coder:7b` — kode
- `qwen2.5-coder:14b` — batch/asynkron
---
## OPAX-MCP KONFIGURASJON LÅST
| Variabel | Verdi |
|---|---|
| `GITEA_URL` | `http://34.67.252.59:3000` |
| `OLLAMA_BASE_URL` | `http://34.67.252.59:11434` |
| `EMMA_MODEL` | `gemma3:4b` |
| `EMMA_FAST_MODEL` | `gemma3:4b` |
| `EMMA_LIGHT_MODEL` | `qwen2.5:3b` |
---
## DNS FULLFØRT
| Record | Type | Verdi |
|---|---|---|
| `vauco.no.` | A | `34.98.77.173` |
| `git.vauco.no.` | A | `34.67.252.59` |
| MX/SPF/DKIM/DMARC | TXT/MX | Google Workspace komplett |
---
## ÅPNE PUNKTER
1. `automation`-bruker opprett i Gitea — **NESTE**
2. Sentinel-implementering (lokal LLM periodisk sjekk)
3. Test `qwen2.5-coder:7b` på konkret kode-oppgave
4. Emma derivat-dokument (tilsvarende GEMINI.md)
5. Fase 8: Snapshot-policy aktiveres
6. `opax.vauco.no` domain mapping (Cloud Run → custom domain)
## FASTE SANNHETER ## FASTE SANNHETER
- Gitea er source of truth - Gitea = source of truth | localhost:3000 fra VM
- Lokale modeller er hovedretning - Lokale modeller = hovedretning
- Gitea-VM (`34.67.252.59`) er permanent målmaskin — alltid-på, STANDARD - gitea-admin-password og CHAT_WEBHOOK_URL i Secret Manager
- Bruk `localhost:3000` fra Gitea-VM, aldri ekstern IP mot seg selv
- CPU er primær flaskehals for tyngre lokale modeller
- `gitea-admin-password` finnes i Secret Manager
- `CHAT_WEBHOOK_URL` finnes i Secret Manager (versjon 2)
## DEFINITION OF DONE
- ✅ Lokale modeller lever
- ✅ OPAX-MCP korrekt konfigurert
- ✅ Gitea read/write tools grønne
- ✅ Smoke-test 37 tools
- ✅ VM oppgradert e2-highmem-4
- ✅ git.vauco.no HTTPS
- ✅ Google OAuth2
- ✅ GITEA_TOKEN rotert
- ✅ Sikkerhetsherding
- ✅ VM Access Scopes
- ✅ GPG-signering verified
- ✅ gitea-admin-password i Secret Manager
- ✅ automation@vauco.no alias
- ✅ Gitea → Google Chat bridge live
- ⏳ automation-bruker — neste
- ⏳ Fase 7: lokal hjerne verifisert
- ⏳ Fase 8: snapshot-backup
## OPPDATERINGSLOGG
| Dato | Handling |
|---|---|
| 2026-07-21 | FASE 46 fullført |
| 2026-07-21 23:44 | DNS NS-bytte |
| 2026-07-21 23:53 | OPAX-MCP deployed |
| 2026-07-22 00:25 | Smoke-test grønn |
| 2026-07-22 19:25 | OSVauco klonet til VM |
| 2026-07-22 19:30 | Dev-snap uavhengighet bekreftet |
| 2026-07-23 22:14 | Handoff oppdatert |
| 2026-07-25 08:15 | HTTPS, token, OAuth2, sikkerhet, VM scopes ferdig |
| 2026-07-25 08:42 | GPG-signering ferdig, gitea-admin-password i Secret Manager |
| 2026-07-25 08:45 | automation@vauco.no alias opprettet |
| 2026-07-25 09:08 | Gitea→Google Chat bridge deployet (gitea-chat-bridge, hook ID 9) |