{"repo":"NousResearch/hermes-agent","public_id":"6633","display_label":"ACP session capabilities missing from initialize response","summary":"A bug was identified where ACP session load and resume capabilities were not being declared in the initialize response. Related fixes address declaring these capabilities correctly.","subsystem":null,"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":6985,"merged_at":"2026-04-10T10:45:36+00:00"},"resolution":{"state":"resolved","by":"pr-6985"},"freshness":{"state":"stale","last_verified_at":"2026-04-10T10:45:36+00:00","is_stale":true},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.6666666666666666},"fix_edges":[{"issue_number":6633,"pr_number":6985,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-04-10T10:45:36+00:00"}],"members":[{"kind":"issue","number":6633,"title":"[Bug]: ACP session load/resume capabilities not declared in initialize response","url":null,"state":"closed"},{"kind":"pr","number":6970,"title":"fix(acp): declare session resume capability in initialize response","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#6985","number":6985}],"category":"superseded_by_pr","implication":"superseded"},"merged":false},{"kind":"pr","number":6985,"title":"fix(acp): declare session load and resume capabilities in initialize response","url":null,"state":"merged","close_reason":{"category":"merged"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["acp_adapter/server.py","tests/acp/test_server.py"],"fix_hunks":[{"file":"acp_adapter/server.py","hunks":["@@ -36,6 +36,7 @@\n     SessionCapabilities,\n     SessionForkCapabilities,\n     SessionListCapabilities,\n+    SessionResumeCapabilities,\n     SessionInfo,\n     TextContentBlock,\n     UnstructuredCommandInput,","@@ -245,9 +246,11 @@ async def initialize(\n             protocol_version=acp.PROTOCOL_VERSION,\n             agent_info=Implementation(name=\"hermes-agent\", version=HERMES_VERSION),\n             agent_capabilities=AgentCapabilities(\n+                load_session=True,\n                 session_capabilities=SessionCapabilities(\n                     fork=SessionForkCapabilities(),\n                     list=SessionListCapabilities(),\n+                    resume=SessionResumeCapabilities(),\n                 ),\n             ),\n             auth_methods=auth_methods,"]},{"file":"tests/acp/test_server.py","hunks":["@@ -68,9 +68,22 @@ async def test_initialize_returns_capabilities(self, agent):\n         resp = await agent.initialize(protocol_version=1)\n         caps = resp.agent_capabilities\n         assert isinstance(caps, AgentCapabilities)\n+        assert caps.load_session is True\n         assert caps.session_capabilities is not None\n         assert caps.session_capabilities.fork is not None\n         assert caps.session_capabilities.list is not None\n+        assert caps.session_capabilities.resume is not None\n+\n+    @pytest.mark.asyncio\n+    async def test_initialize_capabilities_wire_format(self, agent):\n+        \"\"\"Verify the JSON wire format uses correct aliases so ACP clients see the right keys.\"\"\"\n+        resp = await agent.initialize(protocol_version=1)\n+        payload = resp.agent_capabilities.model_dump(by_alias=True, exclude_none=True)\n+        assert payload[\"loadSession\"] is True\n+        session_caps = payload[\"sessionCapabilities\"]\n+        assert \"fork\" in session_caps\n+        assert \"list\" in session_caps\n+        assert \"resume\" in session_caps\n \n \n # ---------------------------------------------------------------------------\n"]}]}],"trust":{"default_tier":"verified","includes_suggested":false}}