# instinct: hermes-agent 0.15.2 は plugins/dashboard_auth/nous は同梱するが依存先 hermes_cli/dashboard_auth/ を同梱し忘れている。upgradeで修正が消える
hermes-dashboard (PM2 id:11) の `ModuleNotFoundError: No module named 'hermes_cli.dashboard_auth.routes'` 再起動ループは、hermes-agent **0.15.2 の packaging bug** が原因。wheel は本物の `plugins/dashboard_auth/nous/`(OAuth実装) を同梱するが、それが依存する `hermes_cli/dashboard_auth/` 名前空間の実体(6シンボル: DashboardAuthProvider/LoginStart/Session/ProviderError/InvalidCodeError/RefreshExpiredError + register_provider/list_providers)を同梱し忘れている。
**Why:** `web_server.py`(15箇所)・`plugins.py:570`・`nous/__init__.py` が全て `hermes_cli.dashboard_auth.*` を import するのに、実体が無い。前回セッションの空スタブは6シンボル中1つしか定義せず不完全だった(localhostバインドで `should_require_auth==False` のため到達せず顕在化していなかっただけ)。
**How to apply:**
1. 修正は `~/.local/lib/python3.12/site-packages/hermes_cli/dashboard_auth/` の6ファイル(正規ブリッジ実装済み・2026-05-31)。スタブ退避は `~/workspace/tools/hermes-dashboard-auth-stub-backup-20260531_062746/`。
2. **`uv pip install --upgrade hermes-agent` 実行後はこの修正が消える**(現在1 commit behind)。upgrade後は必ず `python3 -c "from plugins.dashboard_auth import nous"` で疎通確認。失敗したら正規ブリッジを再適用するか LLM Wiki id=457 を参照。
3. shadowは 127.0.0.1:9119 バインドなので認証ゲートは元々engageしない(loopback運用の正しい仕様)。`list_providers()==[]` は正常。非loopbackに変える時のみ `HERMES_DASHBOARD_OAUTH_CLIENT_ID=agent:{instance_id}` か `--insecure` が必要。
詳細: [LLM Wiki id=457](http://100.115.94.5:8200/search?q=Hermes+dashboard_auth+packaging)
関連(同一インシデント由来の3点セット・このページがハブ):
- スタブ作成前のRECORD確認(#17 `instinct_2026-06-01_2`)
- ModuleNotFoundErrorはimport副作用も疑う(#20 `instinct_2026-06-01_5`)
---
(migrated from local memory/instinct_hermes_dashboard_auth_packaging_gap.md)
instinct: hermes-agent 0.15.2 は plugins/dashboard_auth/nous は同梱するが依存先 hermes_cli/dashboard_auth/ を同梱し忘れている。upgradeで修正が消える