paperclip: PR2 — Forgejo-MCP per roll + pi-shim för Alfred #112

Merged
znibb merged 3 commits from feature/paperclip-adapters into develop 2026-09-26 10:24:16 +00:00
Owner

Del av #110 (PR2 enligt uppdelningen). PR1 (#111) är mergad.

Vad som ingår

  • kubernetes/apps/paperclip/forgejo-mcp/: en MCP-instans per roll (forgejo-mcp-bruce, -lucius, -alfred, -oracle, -robin), single-user-läge med pinnad digest. Tokens i SOPS-secreten paperclip-forgejo-tokens (UI-skapade; Forgejo-API:t vägrar skapa tokens).
  • pi-bridge/src/paperclip-runner.js: POST /api/paperclip/run — bearer-auth, svarar 202 och kör pi --print --session-id paperclip-<taskId> i bakgrunden; kommenterar Paperclip-issuen med den run-scopade token som HTTP-adaptern skickar i payloaden. GET /api/paperclip/health visar kö/aktiva.
  • Paperclip-deploymenten: PAPERCLIP_API_URL (intern service-URL, krävs för att runtime-token ska skickas till HTTP-adaptern) + PAPERCLIP_HTTP_ADAPTER_PRIVATE_ENDPOINT_ALLOWLIST för pi-devbox.
  • pi-devbox-deploymenten + SOPS-secret: PI_BRIDGE_PAPERCLIP_TRIGGER_TOKEN och PI_BRIDGE_PAPERCLIP_API_URL.
  • docs: MCP-/adapter-/shim-avsnitt i docs/paperclip.md och docs/pi-devbox.md.

Verifierat

  • Alla fem MCP-podden 1/1 Running.
  • MCP end-to-end: initialize + tools/list + tools/call get_repository(znibb/lovable) via Bruce-token mot git.kobbo.se.
  • Alla fem Forgejo-tokens autentiserar och läser znibb/lovable; scopes enligt tabellen (Bruce/Lucius read-only, Alfred write, Oracle/Robin write:issue).
  • Pi-shimmen smoke-testad utan LLM-anrop: 401 på fel bearer, 202 + bakgrundskörning + kommentarsförsök mot rätt bearer.
  • kubectl kustomize kubernetes/apps/paperclip bygger.

Kvar innan Alfred/Bruce kan användas

  • Rollout av pi-devbox krävs för att shimmen ska finnas i podden (ny image; startar om podden och dödar pågående pi-session).
  • Pangolin-SSO av + första admin-claim.
  • Skapa företag/agenter i Paperclip och koppla MCP-server per roll (http://forgejo-mcp-<roll>:8080) + Alfreds HTTP-adapter (http://pi-devbox.pi-devbox.svc.cluster.local:7777/api/paperclip/run).

Refs #110

Del av #110 (PR2 enligt uppdelningen). PR1 (#111) är mergad. ## Vad som ingår - `kubernetes/apps/paperclip/forgejo-mcp/`: en MCP-instans per roll (`forgejo-mcp-bruce`, `-lucius`, `-alfred`, `-oracle`, `-robin`), single-user-läge med pinnad digest. Tokens i SOPS-secreten `paperclip-forgejo-tokens` (UI-skapade; Forgejo-API:t vägrar skapa tokens). - `pi-bridge/src/paperclip-runner.js`: `POST /api/paperclip/run` — bearer-auth, svarar 202 och kör `pi --print --session-id paperclip-<taskId>` i bakgrunden; kommenterar Paperclip-issuen med den run-scopade token som HTTP-adaptern skickar i payloaden. `GET /api/paperclip/health` visar kö/aktiva. - Paperclip-deploymenten: `PAPERCLIP_API_URL` (intern service-URL, krävs för att runtime-token ska skickas till HTTP-adaptern) + `PAPERCLIP_HTTP_ADAPTER_PRIVATE_ENDPOINT_ALLOWLIST` för pi-devbox. - pi-devbox-deploymenten + SOPS-secret: `PI_BRIDGE_PAPERCLIP_TRIGGER_TOKEN` och `PI_BRIDGE_PAPERCLIP_API_URL`. - docs: MCP-/adapter-/shim-avsnitt i `docs/paperclip.md` och `docs/pi-devbox.md`. ## Verifierat - Alla fem MCP-podden 1/1 Running. - MCP end-to-end: `initialize` + `tools/list` + `tools/call get_repository(znibb/lovable)` via Bruce-token mot git.kobbo.se. - Alla fem Forgejo-tokens autentiserar och läser `znibb/lovable`; scopes enligt tabellen (Bruce/Lucius read-only, Alfred write, Oracle/Robin write:issue). - Pi-shimmen smoke-testad utan LLM-anrop: 401 på fel bearer, 202 + bakgrundskörning + kommentarsförsök mot rätt bearer. - `kubectl kustomize kubernetes/apps/paperclip` bygger. ## Kvar innan Alfred/Bruce kan användas - [ ] Rollout av pi-devbox krävs för att shimmen ska finnas i podden (ny image; startar om podden och dödar pågående pi-session). - [ ] Pangolin-SSO av + första admin-claim. - [ ] Skapa företag/agenter i Paperclip och koppla MCP-server per roll (`http://forgejo-mcp-<roll>:8080`) + Alfreds HTTP-adapter (`http://pi-devbox.pi-devbox.svc.cluster.local:7777/api/paperclip/run`). Refs #110
- forgejo-mcp: en single-user-instans per roll (bruce/lucius/alfred/oracle/
  robin), token från SOPS-secreten paperclip-forgejo-tokens (läggs till när
  UI-skapade tokens finns).
- Paperclip-deploymenten: PAPERCLIP_API_URL mot interna servicen samt
  HTTP-adapterns privat-origin-allowlist för pi-devbox.
- pi-bridge: /api/paperclip/run (bearer-auth, 202, bakgrundskörning av
  pi --print per uppgift) som kommenterar Paperclip-issuen med den run-scopade
  token från payloaden. /api/paperclip/health visar kö/aktiva.
- pi-devbox-deploymenten + secret: PI_BRIDGE_PAPERCLIP_TRIGGER_TOKEN och
  PI_BRIDGE_PAPERCLIP_API_URL.
- docs: MCP-/adapter-/shim-avsnitt i paperclip.md och pi-devbox.md.

Refs #110
Fem UI-skapade Forgejo-tokens (lästa scopes enligt tabellen) i
paperclip-forgejo-tokens. Alla fem forgejo-mcp-instanserna är verifierade
mot git.kobbo.se: initialize + tools/list + get_repository(znibb/lovable)
fungerar.
Klustrets egress dödar långa GitHub-release-nedladdningar (connection reset
efter ~150 s), vilket fick imagebygget att faila på nvim-steget. curl får
--retry-all-errors och -C - så delvis nedladdning återupptas i stället.
znibb merged commit 9f39712cf1 into develop 2026-09-26 10:24:16 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
znibb/kobbo-homelab!112
No description provided.