Explorer
/tmp/fast-one-112.json
← Zurück ↓ Download
{"queue_id": 112, "relative_path": "Systemstruktur/Agenten-Wissen/Anthropic-Sonnet/ARC-035-Hermes-Dashboard-Token-nginx-SubFilter-und-OpenRouter-Guardrails.md", "title": "ARC-035: Hermes-Dashboard-Token, nginx-SubFilter-Gzip-Problem und OpenRouter-Guardrails", "import_key": "d52085407e9f5aaefc56edcbd6c634ac4f6ff49929c5c03847bfbe7b92ff1b31", "chunk_count": 17, "created_nodes": 18, "created_relationships": 33, "body": null, "chunks": [{"chunk_key": "e20856705ab41c5e7013f27f4ef76a2e3dfb0d5e2a988d256455bffe5bf6b472", "chunk_index": 0, "heading": "ARC-035: Hermes-Dashboard-Token, nginx-SubFilter-Gzip-Problem und OpenRouter-Guardrails", "text": "# ARC-035: Hermes-Dashboard-Token, nginx-SubFilter-Gzip-Problem und OpenRouter-Guardrails", "text_hash": "54ce79b9cd560f6c9c9fcbd0508278bf5cfee7c8bafff9edd032a4e6a168e2f0"}, {"chunk_key": "fdcab3a561989aee9577a8ca2a7c2c9099f191a2bc78c3d3261d24939e074909", "chunk_index": 1, "heading": "Kernaussage", "text": "# ARC-035: Hermes-Dashboard-Token, nginx-SubFilter-Gzip-Problem und OpenRouter-Guardrails\n## Kernaussage\n\nZwei wiederkehrende Fehlerquellen in der Hermes-Infrastruktur wurden diagnostiziert\nund behoben: (1) Ein hardcoded Dashboard-Token im Container blockierte alle\nDashboard-API-Calls. (2) nginx sub_filter funktioniert nicht bei gzip-komprimiertem\nContent. Zusaetzlich wurde OpenRouters Data Privacy Policy (Guardrails) als Ursache\nfuer blockierte Modell-Anfragen identifiziert.", "text_hash": "f3df6856eea5ba2bedb843ec4af3f72e40e69ce1dbd458784ea4be8fb7a17397"}, {"chunk_key": "e429f2a14cc12a2388eeb31422677b3c9a7df8c6d0aadc86ab870da5f0ced967", "chunk_index": 2, "heading": "Aus Sessions rekonstruiert, nicht live verifiziert", "text": " gzip-komprimiertem\nContent. Zusaetzlich wurde OpenRouters Data Privacy Policy (Guardrails) als Ursache\nfuer blockierte Modell-Anfragen identifiziert.\n## Aus Sessions rekonstruiert, nicht live verifiziert\n\nInhalte stammen aus Sessions 2adf8244 und 5bd717c8 (beide 2026-05-16,\nSubagenten von f050ce69, verarbeitet in ARC-007 und ARC-020).\nAktueller Status der Konfigurationen muss live verifiziert werden.", "text_hash": "2d05d39182aeef03cd935e58c62b8ab45adbcc2042e130523c74121319268530"}, {"chunk_key": "524c714c1575be3a947873c21d0ce71faf3cab315e8a10d414a81be52cd9e9d1", "chunk_index": 3, "heading": "Getroffene Entscheidungen", "text": "c8 (beide 2026-05-16,\nSubagenten von f050ce69, verarbeitet in ARC-007 und ARC-020).\nAktueller Status der Konfigurationen muss live verifiziert werden.\n## Getroffene Entscheidungen\n\n- CLAUDE_DASHBOARD_TOKEN aus der Container-.env entfernt. Das Hermes-Dashboard\n  generiert bei jedem Start einen zufaelligen internen Token — ein hardcoded Wert\n  ueberschreibt den Fallback-Mechanismus und fuehrt zu 401 auf allen API-Calls.\n- Alle Swarm-Worker auf deepseek/deepseek-chat (via OpenRouter) gesetzt —\n  deepseek-r1, kimi-k2, llama-4-maverick waren auf OpenRouter-Whitelist\n  nicht freigeschaltet.\n- Mari-Hermes-Instanz: von direktem Anthropic-API-Provider auf OpenRouter umgestellt,\n  damit OpenRouter-Account-Whitelist greift.\n- AI Model Scout als Hermes-Mission abgeschickt — technisch machbar, aber Session\n  endete ohne erfolgreichen Abschluss (OpenRouter-Blockaden waehrend der Session).", "text_hash": "7d8eba50fc67360d32e58f0d5b7a7c004cc42707873c0ad94bc64b52bd92a85f"}, {"chunk_key": "39bbde69fd9dbceb9cdd26373c539214fa4727b741375859e8002fe46d79c744", "chunk_index": 4, "heading": "Funktionierende Loesungen", "text": "ut als Hermes-Mission abgeschickt — technisch machbar, aber Session\n  endete ohne erfolgreichen Abschluss (OpenRouter-Blockaden waehrend der Session).\n## Funktionierende Loesungen", "text_hash": "28539342263514b65a2d41d7c1f9721b3e18c7bf78669230df0437add5deffaa"}, {"chunk_key": "92ac15cead6e35b4c643ce56f313726c1546dd58f1254f43bf0d77e9a46ad0d6", "chunk_index": 5, "heading": "CLAUDE_DASHBOARD_TOKEN Bug — Root Cause und Fix", "text": "## Funktionierende Loesungen\n### CLAUDE_DASHBOARD_TOKEN Bug — Root Cause und Fix\n\nDas Hermes-Dashboard generiert bei jedem Start _SESSION_TOKEN via\nsecrets.token_urlsafe(32) (Python). Der Node-Proxy-Server (swarm-kanban)\nholte diesen Token urspruenglich via HTML-Scraping vom Dashboard.\n\nWenn CLAUDE_DASHBOARD_TOKEN in der .env gesetzt ist, schickt der Node-Server\nden hardcoded Wert als Bearer-Header — aber das Dashboard hat einen anderen zufaelligen\nToken → 401 auf allen API-Calls, Operations und Swarm blockiert.\n\nFix: CLAUDE_DASHBOARD_TOKEN aus .env entfernen. Container neu starten mit\ndocker compose down && docker compose up -d (nicht nur restart — .env wird\nsonst nicht neu geladen).", "text_hash": "d09b9ab7c471bcbd0d5a4aebd104790d411518e3a4c1f499eab6d31f79a03678"}, {"chunk_key": "74aef0443b77635c565fd304b5752453da86869283140f9bbb25d0d5c1b0cc0d", "chunk_index": 6, "heading": "nginx sub_filter blockiert durch gzip", "text": "KEN aus .env entfernen. Container neu starten mit\ndocker compose down && docker compose up -d (nicht nur restart — .env wird\nsonst nicht neu geladen).\n### nginx sub_filter blockiert durch gzip\n\nsub_filter funktioniert nicht wenn der Upstream gzip-komprimierten Content liefert.\nNginx-Browser-Anfragen senden immer Accept-Encoding: gzip, sodass sub_filter\nbeim Browser-Zugriff nie greift.\n\nFix: proxy_set_header Accept-Encoding \"\"; im nginx-Location-Block setzt den\nHeader auf leer — Upstream liefert dann unkomprimierten Content, sub_filter greift.\n\nAlternativloesung (wenn sub_filter problematisch): Button direkt in der App-Codebasis\nintegrieren statt ueber nginx-Injektion.", "text_hash": "985764b12770332aa9a5763831fdf0bae5451cbf785997bbff72adb02560302e"}, {"chunk_key": "5bd6984c17de648321a8ce53a8a14cd4184ac828dcf77a9a119ac1dbb148b4e7", "chunk_index": 7, "heading": "OpenRouter Guardrails — Privacy Policy Blockade", "text": "nt, sub_filter greift.\n\nAlternativloesung (wenn sub_filter problematisch): Button direkt in der App-Codebasis\nintegrieren statt ueber nginx-Injektion.\n### OpenRouter Guardrails — Privacy Policy Blockade\n\nOpenRouter-Accounts koennen unter Settings → Privacy einstellen, dass Anfragen\nnicht an Third-Party-Provider weitergeleitet werden duerfen.\n\nopenrouter/auto (automatisches Routing) waehlt selbst den Provider und funktioniert\nnicht wenn Third-Party-Routing eingeschraenkt ist.\nFehlermeldung: No endpoints available matching your guardrail restrictions and data policy\n\nFix: statt openrouter/auto konkrete Modell-IDs verwenden (z. B. deepseek/deepseek-chat).", "text_hash": "ac1ec86a76361fba0e6ef845742c4b443c72eba68095571cabd14e8c8d20ef15"}, {"chunk_key": "439855fe55a48e420f6b6d8f22e01ecc72c7c9298bd12851d039931d293ce54a", "chunk_index": 8, "heading": "swarm.yaml Modell-Format", "text": "ailable matching your guardrail restrictions and data policy\n\nFix: statt openrouter/auto konkrete Modell-IDs verwenden (z. B. deepseek/deepseek-chat).\n### swarm.yaml Modell-Format\n\nWorker-Konfiguration in swarm.yaml verwendet Format openrouter/modell-id.\nModelle muessen auf der OpenRouter-Account-Whitelist stehen. Nicht freigeschaltete\nModelle fuehren zu No models provided-Fehler beim Worker-Bootstrap.\n\nNach Whitelist-Pruefung: alle 5 Worker auf deepseek/deepseek-chat gesetzt.", "text_hash": "13dc37d5f6b15b379ab34f5796356e09af03caf12952ff75cb56bca0041ac570"}, {"chunk_key": "9bad977976629512ae0c91f1e4dada25adb22d9394d9d551f210e74545155eaf", "chunk_index": 9, "heading": "Bekannte Probleme / Sackgassen", "text": "altete\nModelle fuehren zu No models provided-Fehler beim Worker-Bootstrap.\n\nNach Whitelist-Pruefung: alle 5 Worker auf deepseek/deepseek-chat gesetzt.\n## Bekannte Probleme / Sackgassen\n\n- docker compose restart laedt .env nicht neu — immer down && up -d wenn\n  Environment-Variablen geaendert wurden.\n- kanban.db speichert Jobs persistent — container restart allein setzt blockierte\n  Jobs nicht zurueck (direkte SQLite-Manipulation oder Reset-Button noetig).\n- openrouter/auto ist fuer Accounts mit Privacy-Einschraenkungen nicht verwendbar.", "text_hash": "20c9ba4f2025f3182e8fc5545cd6bc48e68a8a130ed2aefa147a7156c61f78e9"}, {"chunk_key": "26c6e18d7d1498cdf79a3c9fdac37535c9f21d07014410711ff42b39372f7273", "chunk_index": 10, "heading": "Ueberholte Inhalte", "text": "cht zurueck (direkte SQLite-Manipulation oder Reset-Button noetig).\n- openrouter/auto ist fuer Accounts mit Privacy-Einschraenkungen nicht verwendbar.\n## Ueberholte Inhalte\n\n- CLAUDE_DASHBOARD_TOKEN-Konfiguration: gesetzt und wieder entfernt in dieser Session.\n  Konfiguration ist nicht mehr aktiv. Wert wird nicht dokumentiert.\n- Hermes-Instanzen mit direktem Anthropic-API-Provider (ohne OpenRouter): auf\n  OpenRouter umgestellt — historisch, aktuellen Stand pruefen.", "text_hash": "641f4e589f8591c887f04a93e1918688715fe8d869317c4e4f7d31aac1c50b56"}, {"chunk_key": "338e36d7f2e326451fe09217896da846b63488624d7133fe10a531199092308b", "chunk_index": 11, "heading": "Offene Pruefaufgaben", "text": "mentiert.\n- Hermes-Instanzen mit direktem Anthropic-API-Provider (ohne OpenRouter): auf\n  OpenRouter umgestellt — historisch, aktuellen Stand pruefen.\n## Offene Pruefaufgaben\n\n- [ ] .env aller Hermes-Container: CLAUDE_DASHBOARD_TOKEN darf nicht gesetzt sein.\n- [ ] swarm.yaml: Worker-Modelle muessen auf OpenRouter-Whitelist stehen.\n- [ ] OpenRouter Privacy-Einstellungen: Third-Party-Routing-Status pruefen.\n- [ ] Reset-Button im Workspace-Dashboard: Funktionalitaet verifizieren.", "text_hash": "0b7848db2fcede051883bcc5b8d6e38b2d7df25bf1bfb9079e056bdf13b6b434"}, {"chunk_key": "d20829ecbe40eb362a39d556ad724a2513eba4709697d0e57ee3ca8c9347efec", "chunk_index": 12, "heading": "Relevante Referenzen ohne operative Zugangsdaten", "text": ".\n- [ ] OpenRouter Privacy-Einstellungen: Third-Party-Routing-Status pruefen.\n- [ ] Reset-Button im Workspace-Dashboard: Funktionalitaet verifizieren.\n## Relevante Referenzen ohne operative Zugangsdaten\n\n- Hermes Dashboard Token-Mechanismus: _SESSION_TOKEN wird bei jedem Start\n  per secrets.token_urlsafe(32) generiert; Node-Proxy holt via HTML-Scraping.\n- nginx Dokumentation zu sub_filter und gzip:\n  ngx_http_sub_module deaktiviert sich wenn Response schon komprimiert ist.\n- OpenRouter Privacy: openrouter.ai/settings/privacy", "text_hash": "6a54fa023f24dcc96803a6b09fc6224d6bfd0d33e4bf4a3a4be837d1402cef5d"}, {"chunk_key": "0aa29b7ed8918859c88ec8d66456f64aee4a7d25aa6b5f92f1b63af9468141c0", "chunk_index": 13, "heading": "Regeln fuer kuenftige Agenten", "text": " sub_filter und gzip:\n  ngx_http_sub_module deaktiviert sich wenn Response schon komprimiert ist.\n- OpenRouter Privacy: openrouter.ai/settings/privacy\n## Regeln fuer kuenftige Agenten\n\n- Niemals CLAUDE_DASHBOARD_TOKEN in einer Hermes-Container-.env setzen.\n  Das bricht Authentication komplett.\n- Bei nginx sub_filter immer proxy_set_header Accept-Encoding \"\" setzen,\n  sonst greift sub_filter fuer Browser-Anfragen nicht.\n- Nach .env-Aenderungen immer docker compose down && up -d, nie nur restart.\n- Fuer Swarm-Worker immer konkrete Modell-IDs statt openrouter/auto verwenden.", "text_hash": "3a9c24c9a1f804fe532cc9ce6c405a10e21e4b0f4eba2d9ee3aa1562f27bf8bb"}, {"chunk_key": "feed6be18ace3e3975de9467f207438e07e146442e3b33e01ad79fada5ac2435", "chunk_index": 14, "heading": "Quelle / Herkunft", "text": "h .env-Aenderungen immer docker compose down && up -d, nie nur restart.\n- Fuer Swarm-Worker immer konkrete Modell-IDs statt openrouter/auto verwenden.\n## Quelle / Herkunft\n\nSessions: 2adf8244 + 5bd717c8 (beide 2026-05-16)\nParent beider: f050ce69 (verarbeitet in ARC-007, ARC-020)\nTyp: Compact-Subagents — Delta erlaubt", "text_hash": "81080d9fef4123558e6452d570398aaef2c208d5adafb9a772b361dd6c0878c6"}, {"chunk_key": "47240fd347c3f03887cc62b8a1889c9f5a87bf02cd6b69109db046bf8f6fd272", "chunk_index": 15, "heading": "Sicherheitsbereinigung", "text": "nft\n\nSessions: 2adf8244 + 5bd717c8 (beide 2026-05-16)\nParent beider: f050ce69 (verarbeitet in ARC-007, ARC-020)\nTyp: Compact-Subagents — Delta erlaubt\n## Sicherheitsbereinigung\n\n- CLAUDE_DASHBOARD_TOKEN-Wert: ENTFERNT (nur Feld-Name und Mechanismus dokumentiert)\n- OpenRouter-Key-Wert aus Hermes-Mission-Prompt: ENTFERNT\n- Neo4j-Passwort-Wert: ENTFERNT\n- VPS-IP: ENTFERNT", "text_hash": "5a29f25d8d3e620430a891e7cb169bab6e2d74c9fb0499a65d6edd1480e056c4"}, {"chunk_key": "dae7641610e4137b8ca80d6d7934aa568122534a27b4cbb6a90f28bf665e03af", "chunk_index": 16, "heading": "Verifikationsstatus", "text": "r Feld-Name und Mechanismus dokumentiert)\n- OpenRouter-Key-Wert aus Hermes-Mission-Prompt: ENTFERNT\n- Neo4j-Passwort-Wert: ENTFERNT\n- VPS-IP: ENTFERNT\n## Verifikationsstatus\n\nNicht live verifiziert. Token-Konfiguration, swarm.yaml und nginx-Configs\nmuessen vor Nutzung durch SSH auf aktuellem Stand geprueft werden.", "text_hash": "0469af89bf3ad513bf85dfea73d44c8329cacafd539182f867f88b2e8b4877c9"}], "elapsed_s": 0.057}