{"repo":"NousResearch/hermes-agent","public_id":"1580","display_label":"OpenClaw migration API key skipping warning","summary":"A bug was identified where API keys are not automatically migrated during OpenClaw migration. Related changes add a warning when API keys are skipped in that process.","subsystem":"hermes_cli","counts":{"members":3,"open_issues":0,"open_issues_distinct":0,"open_prs":0,"closed_issues":1,"merged_prs":1,"attempt_prs":1},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":1655,"merged_at":"2026-03-17T09:10:37+00:00"},"resolution":{"state":"resolved","by":"pr-1655"},"freshness":{"state":"stale","last_verified_at":"2026-03-17T09:10:37+00:00","is_stale":true},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.6666666666666666},"fix_edges":[{"issue_number":1580,"pr_number":1655,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-03-17T09:10:37+00:00"}],"members":[{"kind":"issue","number":1580,"title":"[Bug]: Openrouter api key not automatically migrated on openclaw migration","url":null,"state":"closed"},{"kind":"pr","number":1593,"title":"fix(claw): warn when API keys are skipped during OpenClaw migration","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#1655","number":1655}],"category":"merged_via","implication":"superseded"},"merged":false},{"kind":"pr","number":1655,"title":"fix(claw): warn when API keys are skipped during OpenClaw migration (#1580)","url":null,"state":"merged","close_reason":{"category":"merged"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["hermes_cli/claw.py"],"fix_hunks":[{"file":"hermes_cli/claw.py","hunks":["@@ -294,3 +294,18 @@ def _print_migration_report(report: dict, dry_run: bool):\n     elif migrated:\n         print()\n         print_success(\"Migration complete!\")\n+        # Warn if API keys were skipped (migrate_secrets not enabled)\n+        skipped_keys = [\n+            i for i in report.get(\"items\", [])\n+            if i.get(\"kind\") == \"provider-keys\" and i.get(\"status\") == \"skipped\"\n+        ]\n+        if skipped_keys:\n+            print()\n+            print(color(\"  ⚠ API keys were NOT migrated (secrets migration is disabled by default).\", Colors.YELLOW))\n+            print(color(\"  Your OPENROUTER_API_KEY and other provider keys must be added manually.\", Colors.YELLOW))\n+            print()\n+            print_info(\"To migrate API keys, re-run with:\")\n+            print_info(\"  hermes claw migrate --migrate-secrets\")\n+            print()\n+            print_info(\"Or add your key manually:\")\n+            print_info(\"  hermes config set OPENROUTER_API_KEY sk-or-v1-...\")\n"]}]}],"trust":{"default_tier":"verified","includes_suggested":false}}