{
  "file": "F10-fork-navigate-condense-ask.md",
  "bullet": "No request-handling condenser (`F10.condense-no-condenser`).",
  "ids": [
    "F10.condense-no-condenser"
  ],
  "line": 395,
  "script": "control-agent-server api GET \"<redacted:session-cookie>/$NC\" --quiet --check agent.condenser eq null\ncontrol-agent-server api GET \"<redacted:session-cookie>/$NOOP\" --quiet --check agent.condenser.kind eq NoOpCondenser\nN_NC=$(control-agent-server api GET \"<redacted:session-cookie>/$NC/events/count\" --field .)\nN_NOOP=$(control-agent-server api GET \"<redacted:session-cookie>/$NOOP/events/count\" --field .)\ncontrol-agent-server api POST \"<redacted:session-cookie>/$NC/condense\" --expect 4xx,5xx --check . matches 'No condenser configured' --save F10.condense-no-condenser/disabled\ncontrol-agent-server api POST \"<redacted:session-cookie>/$NOOP/condense\" --expect 4xx,5xx --check . matches 'NoOpCondenser does not handle condensation requests' --save F10.condense-no-condenser/no-op\ncontrol-agent-server api GET \"<redacted:session-cookie>/$NC/events/count\" --check . eq \"$N_NC\"\ncontrol-agent-server api GET \"<redacted:session-cookie>/$NOOP/events/count\" --check . eq \"$N_NOOP\"\ncontrol-agent-server api GET \"<redacted:session-cookie>/$NOOP/events/count\" --query kind=$CREQ --check . eq 0\ncontrol-agent-server api GET \"<redacted:session-cookie>/$NC\" --quiet --check execution_status eq idle\n",
  "exit_code": 0,
  "elapsed_ms": 63005,
  "failed_line": null,
  "failed_command": null,
  "stdout": "{\n  \"ok\": true,\n  \"status\": 200,\n  \"request\": {\n    \"method\": \"GET\",\n    \"path\": \"<redacted:session-cookie>/bbc958e8-fcf0-4a42-9e1a-0e75ada915bd\",\n    \"query\": [],\n    \"auth\": \"header\",\n    \"files\": []\n  },\n  \"response\": {\n    \"status\": 200,\n    \"headers\": {\n      \"content-length\": \"3781\",\n      \"content-type\": \"application/json\"\n    },\n    \"truncated\": false\n  },\n  \"elapsed_ms\": 556,\n  \"checks\": [\n    {\n      \"check\": \"agent.condenser eq null\",\n      \"ok\": true,\n      \"actual\": \"null\"\n    }\n  ]\n}\n{\n  \"ok\": true,\n  \"status\": 200,\n  \"request\": {\n    \"method\": \"GET\",\n    \"path\": \"<redacted:session-cookie>/2f8238dd-4fa9-4417-9d0a-e6af9af07fef\",\n    \"query\": [],\n    \"auth\": \"header\",\n    \"files\": []\n  },\n  \"response\": {\n    \"status\": 200,\n    \"headers\": {\n      \"content-length\": \"3801\",\n      \"content-type\": \"application/json\"\n    },\n    \"truncated\": false\n  },\n  \"elapsed_ms\": 223,\n  \"checks\": [\n    {\n      \"check\": \"agent.condenser.kind eq NoOpCondenser\",\n      \"ok\": true,\n      \"actual\": \"NoOpCondenser\"\n    }\n  ]\n}\n{\n  \"ok\": true,\n  \"status\": 500,\n  \"request\": {\n    \"method\": \"POST\",\n    \"path\": \"<redacted:session-cookie>/bbc958e8-fcf0-4a42-9e1a-0e75ada915bd/condense\",\n    \"query\": [],\n    \"auth\": \"header\",\n    \"body\": null,\n    \"files\": []\n  },\n  \"response\": {\n    \"status\": 500,\n    \"headers\": {\n      \"content-length\": \"442\",\n      \"content-type\": \"application/json\"\n    },\n    \"body\": {\n      \"detail\": \"Internal Server Error\",\n      \"exception\": \"Cannot condense conversation: No condenser configured. To enable manual condensation, configure an LLMSummarizingCondenser:\\n\\nfrom openhands.sdk.context.condenser import LLMSummarizingCondenser\\nagent = Agent(\\n    llm=your_llm,\\n    condenser=LLMSummarizingCondenser(\\n        llm=your_llm,\\n        max_size=120,\\n        keep_first=4\\n    )\\n)\",\n      \"error_id\": \"35eee978c17c463c957eea19ca73311e\"\n    },\n    \"truncated\": false\n  },\n  \"elapsed_ms\": 8729,\n  \"checks\": [\n    {\n      \"check\": \". matches No condenser configured\",\n      \"ok\": true,\n      \"actual\": \"{\\\"detail\\\": \\\"Internal Server Error\\\", \\\"exception\\\": \\\"Cannot condense conversation: No condenser configured. To enable manual condensation, configure an LLMSummarizingCondenser:\\\\n\\\\nfrom openhands.sdk.cont\\u2026\"\n    }\n  ],\n  \"saved\": \"/workspace/verification-artifacts/runs/20261013-021915-949e-map-f10/evidence/F10.condense-no-condenser/disabled.json\"\n}\n{\n  \"ok\": true,\n  \"status\": 500,\n  \"request\": {\n    \"method\": \"POST\",\n    \"path\": \"<redacted:session-cookie>/2f8238dd-4fa9-4417-9d0a-e6af9af07fef/condense\",\n    \"query\": [],\n    \"auth\": \"header\",\n    \"body\": null,\n    \"files\": []\n  },\n  \"response\": {\n    \"status\": 500,\n    \"headers\": {\n      \"content-length\": \"480\",\n      \"content-type\": \"application/json\"\n    },\n    \"body\": {\n      \"detail\": \"Internal Server Error\",\n      \"exception\": \"Cannot condense conversation: Condenser NoOpCondenser does not handle condensation requests. To enable manual condensation, configure an LLMSummarizingCondenser:\\n\\nfrom openhands.sdk.context.condenser import LLMSummarizingCondenser\\nagent = Agent(\\n    llm=your_llm,\\n    condenser=LLMSummarizingCondenser(\\n        llm=your_llm,\\n        max_size=120,\\n        keep_first=4\\n    )\\n)\",\n      \"error_id\": \"a7e137b69864487ab7687a809a216a37\"\n    },\n    \"truncated\": false\n  },\n  \"elapsed_ms\": 12586,\n  \"checks\": [\n    {\n      \"check\": \". matches NoOpCondenser does not handle condensation requests\",\n      \"ok\": true,\n      \"actual\": \"{\\\"detail\\\": \\\"Internal Server Error\\\", \\\"exception\\\": \\\"Cannot condense conversation: Condenser NoOpCondenser does not handle condensation requests. To enable manual condensation, configure an LLMSummarizin\\u2026\"\n    }\n  ],\n  \"saved\": \"/workspace/verification-artifacts/runs/20261013-021915-949e-map-f10/evidence/F10.condense-no-condenser/no-op.json\"\n}\n{\n  \"ok\": true,\n  \"status\": 200,\n  \"request\": {\n    \"method\": \"GET\",\n    \"path\": \"<redacted:session-cookie>/bbc958e8-fcf0-4a42-9e1a-0e75ada915bd/events/count\",\n    \"query\": [],\n    \"auth\": \"header\",\n    \"body\": null,\n    \"files\": []\n  },\n  \"response\": {\n    \"status\": 200,\n    \"headers\": {\n      \"content-length\": \"1\",\n      \"content-type\": \"application/json\"\n    },\n    \"body\": 3,\n    \"truncated\": false\n  },\n  \"elapsed_ms\": 4950,\n  \"checks\": [\n    {\n      \"check\": \". eq 3\",\n      \"ok\": true,\n      \"actual\": \"3\"\n    }\n  ]\n}\n{\n  \"ok\": true,\n  \"status\": 200,\n  \"request\": {\n    \"method\": \"GET\",\n    \"path\": \"<redacted:session-cookie>/2f8238dd-4fa9-4417-9d0a-e6af9af07fef/events/count\",\n    \"query\": [],\n    \"auth\": \"header\",\n    \"body\": null,\n    \"files\": []\n  },\n  \"response\": {\n    \"status\": 200,\n    \"headers\": {\n      \"content-length\": \"1\",\n      \"content-type\": \"application/json\"\n    },\n    \"body\": 3,\n    \"truncated\": false\n  },\n  \"elapsed_ms\": 515,\n  \"checks\": [\n    {\n      \"check\": \". eq 3\",\n      \"ok\": true,\n      \"actual\": \"3\"\n    }\n  ]\n}\n{\n  \"ok\": true,\n  \"status\": 200,\n  \"request\": {\n    \"method\": \"GET\",\n    \"path\": \"<redacted:session-cookie>/2f8238dd-4fa9-4417-9d0a-e6af9af07fef/events/count\",\n    \"query\": [\n      [\n        \"kind\",\n        \"openhands.sdk.event.condenser.CondensationRequest\"\n      ]\n    ],\n    \"auth\": \"header\",\n    \"body\": null,\n    \"files\": []\n  },\n  \"response\": {\n    \"status\": 200,\n    \"headers\": {\n      \"content-length\": \"1\",\n      \"content-type\": \"application/json\"\n    },\n    \"body\": 0,\n    \"truncated\": false\n  },\n  \"elapsed_ms\": 418,\n  \"checks\": [\n    {\n      \"check\": \". eq 0\",\n      \"ok\": true,\n      \"actual\": \"0\"\n    }\n  ]\n}\n{\n  \"ok\": true,\n  \"status\": 200,\n  \"request\": {\n    \"method\": \"GET\",\n    \"path\": \"<redacted:session-cookie>/bbc958e8-fcf0-4a42-9e1a-0e75ada915bd\",\n    \"query\": [],\n    \"auth\": \"header\",\n    \"files\": []\n  },\n  \"response\": {\n    \"status\": 200,\n    \"headers\": {\n      \"content-length\": \"3781\",\n      \"content-type\": \"application/json\"\n    },\n    \"truncated\": false\n  },\n  \"elapsed_ms\": 573,\n  \"checks\": [\n    {\n      \"check\": \"execution_status eq idle\",\n      \"ok\": true,\n      \"actual\": \"idle\"\n    }\n  ]\n}\n",
  "stderr": ""
}
