{"repo":"NousResearch/hermes-agent","public_id":"47285","display_label":"TUI default change plus clarify options formatting fix","summary":"One item introduces a native OpenTUI terminal UI as the new default (with Ink as fallback). The remaining three items, likely duplicates or related iterations, address a fix to keep clarify tool options in the choices array rather than enumerating them in question text.","subsystem":"agent","counts":{"members":4,"open_issues":1,"open_issues_distinct":1,"open_prs":0,"closed_issues":0,"merged_prs":1,"attempt_prs":2},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":49089,"merged_at":"2026-06-19T14:34:02+00:00"},"resolution":{"state":"unresolved","by":null},"freshness":{"state":"verified","last_verified_at":"2026-06-19T14:34:02+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.5},"fix_edges":[{"issue_number":47285,"pr_number":49089,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-06-19T14:34:02+00:00"}],"members":[{"kind":"issue","number":47285,"title":"clarify_tool: put options in choices[] only, never enumerate in question text","url":null,"state":"open"},{"kind":"pr","number":42922,"title":"feat(tui): native OpenTUI terminal UI — the new default (Ink kept as fallback)","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#47281","number":47281},{"kind":"pr","value":"#47286","number":47286},{"kind":"pr","value":"#47283","number":47283},{"kind":"pr","value":"#47287","number":47287},{"kind":"pr","value":"#47284","number":47284},{"kind":"pr","value":"#47288","number":47288},{"kind":"pr","value":"#47285","number":47285},{"kind":"pr","value":"#47282","number":47282}],"category":"uncategorized","implication":"needs_llm"},"merged":false},{"kind":"pr","number":47288,"title":"fix(clarify): put options in choices[] only, never enumerate in question text","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#49089","number":49089}],"category":"merged_via","implication":"superseded"},"merged":false},{"kind":"pr","number":49089,"title":"fix(clarify): put options in choices[] only, never enumerate in question text","url":null,"state":"merged","close_reason":{"category":"merged"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["tools/clarify_tool.py"],"fix_hunks":[{"file":"tools/clarify_tool.py","hunks":["@@ -131,6 +131,12 @@ def check_clarify_requirements() -> bool:\n         \"or types their own answer via a 5th 'Other' option.\\n\"\n         \"2. **Open-ended** — omit choices entirely. The user types a free-form \"\n         \"response.\\n\\n\"\n+        \"CRITICAL: when you are offering options, put each option ONLY in the \"\n+        \"`choices` array — NEVER enumerate the options inside the `question` \"\n+        \"text. The UI renders `choices` as selectable rows; options written \"\n+        \"into the question string render as dead prose the user can't pick. \"\n+        \"Right: question='Which deployment target?', choices=['staging', \"\n+        \"'prod']. Wrong: question='Which target? 1) staging 2) prod', choices=[].\\n\\n\"\n         \"Use this tool when:\\n\"\n         \"- The task is ambiguous and you need the user to choose an approach\\n\"\n         \"- You want post-task feedback ('How did that work out?')\\n\"","@@ -145,16 +151,22 @@ def check_clarify_requirements() -> bool:\n         \"properties\": {\n             \"question\": {\n                 \"type\": \"string\",\n-                \"description\": \"The question to present to the user.\",\n+                \"description\": (\n+                    \"The question itself, and ONLY the question (e.g. 'Which \"\n+                    \"deployment target?'). Do NOT embed the answer options here \"\n+                    \"— pass them as separate elements in `choices`.\"\n+                ),\n             },\n             \"choices\": {\n                 \"type\": \"array\",\n                 \"items\": {\"type\": \"string\"},\n                 \"maxItems\": MAX_CHOICES,\n                 \"description\": (\n-                    \"Up to 4 answer choices. Omit this parameter entirely to \"\n-                    \"ask an open-ended question. When provided, the UI \"\n-                    \"automatically appends an 'Other (type your answer)' option.\"\n+                    \"REQUIRED whenever you are presenting selectable options: \"\n+                    \"each distinct option is its own array element (up to 4). \"\n+                    \"The UI renders these as pickable rows and auto-appends an \"\n+                    \"'Other (type your answer)' option. Omit this parameter \"\n+                    \"entirely ONLY for a genuinely open-ended free-text question.\"\n                 ),\n             },\n         },\n"]}]}],"trust":{"default_tier":"verified","includes_suggested":false}}