Non-dict JSON causing scan/drain wedge fixes

NousResearch/hermes-agent · cluster 114240

Data as of

Nothing open on GitHub. Fix merged in #114759. Check it covers your case.

The short answer

0open issues
0open PRs
6items grouped
Known?
Yes. 6 related items grouped here, 1 issue already closed.
Fix event
A fix was merged to main in PR #114759. Check it covers your case. No release data is tracked.
Tracker
The maintainers' tracker marks this resolved, deciding PR #114759. That is separate from the fix event.
Still open
Nothing open on GitHub.

These issues and PRs address a bug where valid but non-dictionary JSON in state files or receipts causes directory scans and drain processes to become stuck. The fixes add shape validation to ensure parsed JSON is rejected unless it is a record/dict/object type.

Open issues0

No open issues.

Open PRs0

No open pull requests.

Fixes on record

Merged to main. A stamp counts the issues a fix is linked to.

  • #114759 fix(cron,tools): a parseable non-dict JSON state file no longer wedges the Bot Chat drain or its 8 sibling scans (#114240, salvage #114241)

    merged to main

    files: batch_runner.py, cron/bot_chat_delivery.py, gateway/shutdown_flush.py, hermes_cli/local_runtime/binaries.py, plugins/platforms/a2a/protocol.py, tests/cron/test_bot_chat_pending.py, tests/gateway/test_shutdown_flush.py, tests/hermes_cli/test_local_runtime.py, tests/plugins/test_a2a_plugin.py, tests/test_batch_runner_discard_resume.py, tests/test_trajectory_compressor_async.py, tests/tools/test_bot_live_owner_delivery.py, tests/tools/test_bot_relay.py, tests/tools/test_browser_lightpanda.py, tests/tools/test_write_approval.py, tests/tui_gateway/test_spawn_tree_records.py, tools/bot_live_delivery.py, tools/bot_relay.py, tools/browser_lightpanda.py, tools/write_approval.py (+2 more)

4 PRs closed without merging

From the close comments: duplicate 3 · merged via another change 1

  • #114241 fix(queue-state): parseable non-dict JSON no longer wedges scans and drains · merged via another change → 1c12128, #114759, #114240, #114241
  • #114354 fix(agent): reject non-record JSON at parse boundaries · duplicate → #114241
  • #114407 fix: validate dict shape on JSON receipt and state scans (#114240) · duplicate → #114241
  • #114451 fix: parse JSON receipts as objects so directory scans cannot wedge · duplicate → #114241
Closed issues · 1
  • Closed#114240A parseable non-dict JSON receipt wedges the deferred Bot Chat drain (and 14 sibling scans)
How this cluster was grouped
  • Link evidence (structural links throughout): every member is connected by structural evidence: shared changed files, or a closing/superseded reference.
  • Pairwise link density 0.47: the share of item 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.

Pick up a Lab task

Check whether a fix covers the open issues here, with your own agent. Bring back evidence for maintainers.

Open the Lab

At a glance

Merged PRs
#114759
Closed issues
1
Attempts
4 PRs closed without merging
Fix link checked
18 Sep 2026

For your agent

The same facts, typed.