{"repo":"NousResearch/hermes-agent","public_id":"87280","display_label":"lifecycle guard false-positives and bypass fixes","summary":"These issues and pull requests concern the cron lifecycle guard incorrectly blocking legitimate inputs (such as bash arithmetic division, prose, and quoted data) and failing to intercept certain scripts that bypass it via dot-sourcing or NUL-padding. Work spans bug reports, fixes, and regression tests for these edge cases.","subsystem":"cron/scripts","counts":{"members":4,"open_issues":0,"open_issues_distinct":0,"open_prs":0,"closed_issues":1,"merged_prs":2,"attempt_prs":1},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":93411,"merged_at":"2026-08-24T01:24:37+00:00"},"resolution":{"state":"unresolved","by":null},"freshness":{"state":"verified","last_verified_at":"2026-08-24T01:24:37+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.5},"fix_edges":[{"issue_number":76762,"pr_number":93411,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-08-24T01:24:37+00:00"},{"issue_number":77925,"pr_number":93411,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-08-24T01:24:37+00:00"},{"issue_number":77927,"pr_number":93411,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-08-24T01:24:37+00:00"},{"issue_number":82887,"pr_number":93411,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-08-24T01:24:37+00:00"},{"issue_number":85557,"pr_number":93286,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-08-23T23:18:40+00:00"},{"issue_number":87280,"pr_number":93286,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-08-23T23:18:40+00:00"},{"issue_number":87280,"pr_number":93411,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-08-24T01:24:37+00:00"},{"issue_number":92372,"pr_number":93286,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-08-23T23:18:40+00:00"}],"members":[{"kind":"issue","number":87280,"title":"cron lifecycle guard (#30719) false-positives on bash arithmetic division $(( x / y ))","url":null,"state":"closed"},{"kind":"pr","number":87417,"title":"test(cron): regression test for bash arithmetic division in lifecycle guard (#87280)","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#87280","number":87280},{"kind":"pr","value":"#93286","number":93286},{"kind":"pr","value":"#93411","number":93411}],"category":"implemented_elsewhere","implication":"superseded"},"merged":false},{"kind":"pr","number":93286,"title":"fix: lifecycle guard no longer blocks prose or quoted data as gateway commands (#92372, salvage #92443)","url":null,"state":"merged","close_reason":{"category":"merged"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["cron/lifecycle_guard.py","tests/hermes_cli/test_gateway_restart_loop.py"]},{"kind":"pr","number":93411,"title":"fix: dot-sourced and NUL-padded scripts no longer bypass the gateway lifecycle guard (#77925 #77927, salvage #77926 #77928)","url":null,"state":"merged","close_reason":{"category":"merged"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["cron/lifecycle_guard.py","tests/hermes_cli/test_gateway_restart_loop.py"]}],"trust":{"default_tier":"verified","includes_suggested":false}}