{"repo":"NousResearch/hermes-agent","public_id":"22445","display_label":"Windows piped-stdout crash fixes and Kanban worker patches","summary":"Most members address a Windows-specific crash where prompt_toolkit raises NoConsoleScreenBufferError when stdout is redirected, with fixes falling back to plain print. A smaller cluster covers Kanban worker configuration and lane-dispatch behavior.","subsystem":"hermes_cli","counts":{"members":8,"open_issues":0,"open_issues_distinct":0,"open_prs":1,"closed_issues":3,"merged_prs":1,"attempt_prs":4},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":28330,"merged_at":"2026-05-19T03:00:08+00:00"},"resolution":{"state":"unresolved","by":null},"freshness":{"state":"verified","last_verified_at":"2026-05-19T03:00:08+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_PARTIAL","link_density":0.20428571428571426},"fix_edges":[{"issue_number":22445,"pr_number":28330,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-05-19T03:00:08+00:00"}],"members":[{"kind":"issue","number":22445,"title":"Windows: Kanban worker crashes with NoConsoleScreenBufferError when stdout is redirected","url":null,"state":"closed"},{"kind":"issue","number":25535,"title":"[Setup]: Hermes Kanban","url":null,"state":"closed"},{"kind":"issue","number":65558,"title":"prompt_toolkit crashes with NoConsoleScreenBufferError on Windows when `hermes chat -q` stdout is piped (non-interactive/automated use)","url":null,"state":"closed"},{"kind":"pr","number":22482,"title":"fix(cli): fall back to plain print when prompt_toolkit has no Win32 console","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#28330","number":28330}],"category":"merged_via","implication":"superseded"},"merged":false},{"kind":"pr","number":25556,"title":"fix(cli): handle NoConsoleScreenBufferError in _cprint on Windows","url":null,"state":"closed","close_reason":{"category":"implemented_elsewhere","implication":"superseded"},"merged":false},{"kind":"pr","number":28330,"title":"fix(windows): handle redirected stdout in _cprint fallback (#28083)","url":null,"state":"merged","close_reason":{"category":"merged"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["cli.py"],"fix_hunks":[{"file":"cli.py","hunks":["@@ -1785,7 +1785,16 @@ def _cprint(text: str):\n     # direct prompt_toolkit print is safe and matches existing behavior\n     # (spinner frames, streamed tokens, tool activity prefixes, …).\n     if app is None or not getattr(app, \"_is_running\", False):\n-        _pt_print(_PT_ANSI(text))\n+        try:\n+            _pt_print(_PT_ANSI(text))\n+        except Exception:\n+            # Fallback when stdout is not a real console (e.g. subprocess\n+            # worker logging to a file). prompt_toolkit raises\n+            # NoConsoleScreenBufferError (Windows) or OSError (other).\n+            try:\n+                print(text)\n+            except Exception:\n+                pass\n         return\n \n     try:\n"]}]},{"kind":"pr","number":65811,"title":"fix(cli): degrade _cprint to plain output when stdout has no console (fixes #65558)","url":null,"state":"open","close_reason":{"category":"superseded_by_pr","implication":"superseded"},"merged":false},{"kind":"pr","number":65850,"title":"fix(cli): plain-print fallback when stdout has no console — Windows piped/automated use (#65558)","url":null,"state":"closed","close_reason":{"category":"stale_abandoned","implication":"active"},"merged":false}],"trust":{"default_tier":"verified","includes_suggested":false}}