{"repo":"NousResearch/hermes-agent","public_id":"77988","display_label":"Guard against NUL bytes in terminal/lifecycle code","summary":"These members address crashes or errors caused by embedded NUL bytes appearing in command tokens, affecting lifecycle guard and terminal script scanning paths. Fixes are applied to prevent unhandled exceptions in both areas.","subsystem":null,"counts":{"members":4,"open_issues":0,"open_issues_distinct":0,"open_prs":0,"closed_issues":1,"merged_prs":1,"attempt_prs":2},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":80258,"merged_at":"2026-08-06T12:06:41+00:00"},"resolution":{"state":"unresolved","by":null},"freshness":{"state":"verified","last_verified_at":"2026-08-06T12:06:41+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.5},"fix_edges":[{"issue_number":76510,"pr_number":80258,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-08-06T12:06:41+00:00"},{"issue_number":77931,"pr_number":80258,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-08-06T12:06:41+00:00"},{"issue_number":77988,"pr_number":80258,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-08-06T12:06:41+00:00"},{"issue_number":78256,"pr_number":80258,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-08-06T12:06:41+00:00"},{"issue_number":78800,"pr_number":80258,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-08-06T12:06:41+00:00"},{"issue_number":78942,"pr_number":80258,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-08-06T12:06:41+00:00"},{"issue_number":79148,"pr_number":80258,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-08-06T12:06:41+00:00"}],"members":[{"kind":"issue","number":77988,"title":"lifecycle_guard: unhandled ValueError (\"embedded null byte\") crashes every terminal-tool call once a NUL byte appears in a command token","url":null,"state":"closed"},{"kind":"pr","number":78013,"title":"fix(cron): handle embedded null byte in lifecycle guard command tokens (#77988)","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#80258","number":80258},{"kind":"pr","value":"#76762","number":76762},{"kind":"pr","value":"#77703","number":77703},{"kind":"pr","value":"#77780","number":77780},{"kind":"pr","value":"#78256","number":78256}],"category":"superseded_by_pr","implication":"superseded"},"merged":false},{"kind":"pr","number":79390,"title":"fix(terminal): guard against NUL bytes in referenced script scanning","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#80258","number":80258},{"kind":"pr","value":"#76762","number":76762},{"kind":"pr","value":"#77703","number":77703},{"kind":"pr","value":"#77780","number":77780},{"kind":"pr","value":"#78256","number":78256}],"category":"superseded_by_pr","implication":"superseded"},"merged":false},{"kind":"pr","number":80258,"title":"fix(cron): make the lifecycle guard total — sanitize at ingestion, not per-syscall","url":null,"state":"merged","close_reason":{"category":"merged"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["cron/lifecycle_guard.py","cron/scheduler.py","tests/cron/test_cron_no_agent.py","tests/hermes_cli/test_gateway_restart_loop.py","tools/terminal_tool.py"]}],"trust":{"default_tier":"verified","includes_suggested":false}}