diff --git a/.gitignore b/.gitignore index dc9055f..2d1622e 100644 --- a/.gitignore +++ b/.gitignore @@ -11,6 +11,7 @@ !.env.*.example aria-data/config/*.env !aria-data/config/*.env.example +!aria-data/config/openclaw.env # ── ARIAs Gedächtnis (nur per tar gesichert) ──── aria-data/brain/ diff --git a/CHANGELOG.md b/CHANGELOG.md index b273a01..8bef94d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -36,8 +36,9 @@ Alle Änderungen am Projekt. Format: [Keep a Changelog](https://keepachangelog.c **Docker-Compose Überarbeitung** - Bridge + Diagnostic nutzen `network_mode: "service:aria"` — teilen Netzwerk mit aria-core, kein separates Netz nötig -- `ANTHROPIC_API_KEY` + `ANTHROPIC_BASE_URL` — OpenClaw nutzt Anthropic-Provider, nicht OpenAI -- `DEFAULT_MODEL=claude-sonnet-4-6` — ohne `openai/` Prefix (Anthropic-Provider) +- `ANTHROPIC_API_KEY` + `ANTHROPIC_BASE_URL` entfernt — OpenClaw rief damit die echte Anthropic API direkt an (401 `invalid x-api-key`), statt den Proxy zu nutzen. Nur noch `OPENAI_*` Vars aktiv +- `DEFAULT_MODEL=openai/claude-sonnet-4-6` — mit `openai/` Prefix, damit OpenClaw den OpenAI-Provider und somit den Proxy nutzt +- `openclaw.env` erstellt — Volume-Mount schlug fehl weil die Datei nicht existierte (Docker erstellte stattdessen ein leeres Verzeichnis) - `OPENCLAW_GATEWAY_TOKEN` statt `AUTH_TOKEN` — korrekter Env-Var-Name - `ARIA_AUTH_TOKEN` an Bridge und Diagnostic durchgereicht - Port 3001 auf aria-Service gemappt (für Diagnostic Web-UI) @@ -50,6 +51,8 @@ Alle Änderungen am Projekt. Format: [Keep a Changelog](https://keepachangelog.c - `chat.send` nutzt `message` statt `text` als Parameter — OpenClaw Schema-Validierung - **Claude Proxy bindet auf 0.0.0.0** — `claude-max-api-proxy` bindet hardcoded auf `127.0.0.1`, nicht erreichbar im Docker-Netz. Fix: `standalone.js` wird beim Start gepatcht, liest jetzt `HOST` Env-Var (Upstream-Bug: `startServer()` unterstützt `host`, aber CLI übergibt es nicht) - **Claude Proxy Crash bei Chat-Completion** — `normalizeModelName()` in `cli-to-openai.js` crasht wenn `model` undefined ist (`TypeError: Cannot read properties of undefined`). Fix: Null-Guard-Patch mit Fallback auf `claude-sonnet-4` +- **OpenClaw 401 `invalid x-api-key`** — OpenClaw rief mit `ANTHROPIC_BASE_URL` + `ANTHROPIC_API_KEY=not-needed` die echte Anthropic API an, nicht den Proxy. Fix: Anthropic-Vars entfernt, nur OpenAI-Provider aktiv (`OPENAI_BASE_URL=http://proxy:3456/v1`). Proxy unterstützt nur `/v1/chat/completions` (OpenAI-Format), nicht `/v1/messages` (Anthropic-Format) +- **App Echo-Bug** — Chat-Nachrichten von RVS wurden ohne Sender-Prüfung als ARIA-Nachricht angezeigt. Bei Ghost-Clients (Doppel-Connections nach Reconnect) erschien die eigene Nachricht nochmals. Fix: `message.payload.sender` wird geprüft, Nachrichten von `user` und `diagnostic` werden ignoriert --- diff --git a/android/src/screens/ChatScreen.tsx b/android/src/screens/ChatScreen.tsx index e11f3d2..88409a7 100644 --- a/android/src/screens/ChatScreen.tsx +++ b/android/src/screens/ChatScreen.tsx @@ -92,6 +92,10 @@ const ChatScreen: React.FC = () => { useEffect(() => { const unsubMessage = rvs.onMessage((message: RVSMessage) => { if (message.type === 'chat') { + // Nur Nachrichten von ARIA anzeigen — eigene Nachrichten werden lokal hinzugefuegt + const sender = (message.payload.sender as string) || ''; + if (sender === 'user' || sender === 'diagnostic') return; + const ariaMsg: ChatMessage = { id: nextId(), sender: 'aria', diff --git a/aria-data/config/openclaw.env b/aria-data/config/openclaw.env new file mode 100644 index 0000000..d3b37ab --- /dev/null +++ b/aria-data/config/openclaw.env @@ -0,0 +1,6 @@ +# OpenClaw (aria-core) Konfiguration +# Diese Datei wird als /workspace/.env in den Container gemountet +# +# WICHTIG: ANTHROPIC_API_KEY und ANTHROPIC_BASE_URL absichtlich NICHT gesetzt! +# OpenClaw wuerde sonst die echte Anthropic API direkt anrufen (401 weil kein API Key). +# Stattdessen nur den OpenAI-kompatiblen Proxy nutzen. diff --git a/docker-compose.yml b/docker-compose.yml index d19b644..a690bf3 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -32,9 +32,7 @@ services: - OPENCLAW_GATEWAY_TOKEN=${ARIA_AUTH_TOKEN} - OPENAI_API_KEY=not-needed - OPENAI_BASE_URL=http://proxy:3456/v1 - - ANTHROPIC_API_KEY=not-needed - - ANTHROPIC_BASE_URL=http://proxy:3456 - - DEFAULT_MODEL=claude-sonnet-4-6 + - DEFAULT_MODEL=openai/claude-sonnet-4-6 - RATE_LIMIT_PER_USER=30 - DISPLAY=:0 volumes: