Migration-Issues
Laufender Tracker fuer Punkte die waehrend der Migration auftauchen aber nicht sofort in der aktiven Phase geloest werden muessen.
Offen — Phase 0
I-001: Disk-Druck blockiert grosse Ollama-Modelle
- Symptom: Macbook hat 4.8 GiB frei von 460 GiB (99% voll). qwen2.5-coder:32b (20GB) nicht installierbar.
- Workaround: Phase 0 nutzt existierende Modelle (
deepseek-coder:latest776MB,qwen2.5:1.5b986MB). Reicht fuer Smoke-Test des Ollama-Providers. - Followup: Disk-Cleanup separat. Danach
ollama pull qwen2.5-coder:14b(~8.5GB, passt in 16GB RAM). - Phase: Followup nach Phase 0
I-002: OpenRouter — gestrichen (2026-05-17)
- Status: RESOLVED durch Pivot auf Bedrock-only
- Hintergrund: Marvin will Sonnet weiterhin nutzen, nur Zugriffsweg aendert sich. Bedrock EU loest das. OpenRouter als Multi-Provider-Gateway war ueberdimensioniert.
- Wieder relevant wenn: Echte Multi-Modell-Spur entsteht (GPT/Gemini parallel zu Sonnet) — dann hier reopen.
I-004: Klartext-Secrets in claude.json — Migration auf op-Wrapper
- Symptom:
~/.claude.jsonenthaeltGITHUB_PERSONAL_ACCESS_TOKENundELEVENLABS_API_KEYim Klartext imenv-Block der MCP-Configs. Bestand schon vor Migration, nicht durch sie verschlechtert. - Status in opencode.json: Beide MCPs nutzen
{env:VAR}-Substitution. Solange die env-vars nicht gesetzt sind, starten die MCPs nicht. Workaround Phase 0:enabled: truelassen, MCPs schlagen beim Start fehl, andere 10 MCPs laufen normal. - Saubere Loesung: Wie
hetzneraufop run -- <cmd>-Wrapper migrieren. 1Password-Items pro Key anlegen. - Workaround mittelfristig: env-vars in
~/.zshrcoder~/.config/opencode/.envsetzen. Weniger sauber als op aber besser als Klartext in Configs. - Phase: Followup nach Phase 0, vor Phase 1 wenn
/emailWorkflows GitHub-/Elevenlabs-Tools brauchen.
I-005: Vault-MCP-Index zeigt mehr MCPs als opencode lokal hat (by design)
- Stand nach 2026-05-17 Pivot: Marvin nutzt
papierkram,ticketpay,sharepoint/m365nicht mehr lokal — nur noch viamcp-vf-hosted(Mono-MCP fuer VF-Kunden). Aus opencode.json entfernt. - opencode.json hat jetzt 12 MCPs: gsuite, calcom, hetzner, aws-api/docs/iac/pricing, cloudflare, whatsapp, elevenlabs, github, banksapi (disabled).
- Was im Vault-Index steht aber NICHT lokal in opencode ist (by design): papierkram, ticketpay, m365/sharepoint (alle ueber mcp-vf-hosted), runway + replicate (Status unklar — Followup).
- Followup A: Vault
intern/capabilities/mcps/_index.mdaktualisieren — papierkram + ticketpay als „nur via mcp-vf-hosted, lokal entfernt seit 2026-05-17” markieren. - Followup B: Klaeren ob runway + replicate noch gebraucht werden. Wenn ja: zurueck in opencode.json. Wenn nein: aus Vault-Index streichen.
I-006: Custom-Agent Permission-Block greift nicht beim MCP-Tool-Gating
- Symptom:
~/.config/opencode/agents/business.mdhatpermission: hetzner_*: deny. Trotzdem fuehrt der business-Agenthetzner_list_serversaus. Auch nach Rename vonagent/→agents/(plural war Pflicht — laut Doku). - Was funktioniert:
--agent businesslaedt das Custom-Agent-File (Header zeigt> business · ...). Frontmatter wird also gelesen. - Was nicht funktioniert: Glob-Pattern
hetzner_*: denymatched die MCP-Tool-Calls nicht. Vermutlich falsches Tool-Name-Pattern — opencode praefixt MCP-Tools eventuell mitmcp__<server>__<tool>o.ae. - Workaround: Custom-Agents existieren als organisatorische Hilfe (model-Wahl, Frontmatter-Pflicht-Lektuere). Echtes Tool-Gating muss noch verifiziert werden.
- Followup: opencode-Doku/Issues genauer pruefen oder via
--print-logs DEBUGrausfinden welcher exakte Tool-Name-String fuer permission-Match noetig ist. Dann Pattern in beiden Agents korrigieren. - Phase: Followup nach Phase 0. Kein Blocker fuer Phase 1 — Marvin nutzt Agents als Convention, nicht als Hard-Gate. Behavior-Rules (Rule 22 etc.) wirken weiter ueber Prompt.
I-003: RAM-Limit 16GB schraenkt lokale Modelle ein
- Symptom: 16GB RAM total — opencode + Ollama + System konkurrieren um RAM.
- Constraint: Max realistisches Coder-Modell
qwen2.5-coder:14boderdeepseek-coder-v2:16b. Kein 32b+. - Implikation: Lokales Modell ist „fuer Privacy-Faelle”, nicht „daily driver”. Fuer Daily Coding bleibt Anthropic.
- Phase: Lebt-mit, kein Fix.