# NousResearch/hermes-agent · Cron script stdout encoding fixes for Windows

## Open now

- Nothing open on GitHub.

These issues and PRs address bugs in cron's \`_run_job_script\` where subprocess stdout was silently dropped or decoded using the platform default encoding (e.g. cp1252, GBK) instead of UTF-8, particularly on Windows with pythonw.exe. Multiple fix attempts target explicit UTF-8 encoding and reliable stdout capture on non-UTF-8 Windows locales.

## TL;DR

- 8 member(s): 0 open issue(s), 3 closed issue(s), 0 open PR(s), 1 merged PR(s), 4 PR(s) closed without merging.
- A fix was merged to main in PR #70875. Verify it addresses your case.
- **Recommended:** read PR #70875 (and any competing PRs below) before filing. Confirm the merged change covers your symptom.

## Maintainer resolution verdict

- Internal-tracker verdict over this cluster's issue members: `unresolved`. This is distinct from the fix status above. Weigh it yourself.

## How this cluster was grouped

- Link evidence (`STRUCTURAL_SPANNING`): every member is connected by structural evidence: shared changed files, or a closing/superseded reference.
- Pairwise link density `0.35`: the share of member pairs that carry a link, counting a structural link in full and a relevance-only link at 0.36. `1.00` means every pair is linked.

## Closed / duplicate issues

- #38633: Windows: Two bugs in cron \`_run_job_script\` — pythonw.exe loses stdout + GBK encoding crash
- #42384: \`no_agent\` cron script stdout silently dropped on Windows (pythonw gateway) when output contains emoji / multi-byte UTF-8
- #42785: cron no_agent script stdout decoded with platform default (cp1252 on Windows), mangling non-ASCII output before delivery

## Prior & competing PRs

- **#42390: fix(cron): add explicit utf-8 encoding for subprocess stdout capture**. closed without merge · fix tier `suggested`
  - maintainer direction: category `uncategorized`; implication `needs_llm`
  - _suggested-tier fix detail withheld; re-request with `?tier=all` to include it._
- **#70875: fix(windows): close out the text-mode subprocess decode bug class — salvage #55339/#60741/#60751 + full sweep + linter**. merged to main · fix tier `verified`
  - maintainer direction: category `merged`; implication `superseded`
  - files: `agent/anthropic_adapter.py`, `agent/context_references.py`, `agent/copilot_acp_client.py`, `agent/lsp/install.py`, `agent/proxy_sources/iron_proxy.py`, `agent/secret_sources/base.py`, `agent/secret_sources/bitwarden.py`, `agent/shell_hooks.py`, `agent/skill_preprocessing.py`, `agent/trace_upload.py`, `agent/transports/codex_app_server.py`, `batch_runner.py`, `cli.py`, `contributors/emails/[redacted:email]`, `contributors/emails/[redacted:email]`, `gateway/platforms/base.py`, `gateway/platforms/webhook.py`, `gateway/platforms/webhook_filters.py`, `gateway/run.py`, `gateway/shutdown_forensics.py` (+72 more)
- **#38666: fix(cron): make _run_job_script work on Windows pythonw.exe + non-UTF-8 locales**. closed without merge
  - maintainer direction: category `silent_close`; implication `active`
- **#42805: fix(cron): decode no-agent script output as UTF-8**. closed without merge
  - maintainer direction: category `superseded_by_pr`; implication `superseded`; refs `7498eae3f7`
- **#43857: fix(cron): explicit UTF-8 encoding for script stdout capture**. closed without merge
  - maintainer direction: category `implemented_elsewhere`; implication `superseded`; refs `#70875`

## Fix status

- Merged to main in PR #70875 (cited above). No release data is tracked. Verify downstream.
- Fix last verified (merged) `2026-07-24`.
- Subsystem: `cron`
