# NousResearch/hermes-agent · NUL-padded scripts bypassing lifecycle guard scan

## Open now

- Nothing open on GitHub.

A regression introduced a bypass where NUL-padded text scripts were incorrectly treated as binary and skipped by the lifecycle guard scan. Multiple fixes explore correcting the binary detection logic, such as checking magic bytes instead of bare NUL characters.

## TL;DR

- 5 member(s): 0 open issue(s), 1 closed issue(s), 0 open PR(s), 1 merged PR(s), 3 PR(s) closed without merging.
- A fix was merged to main in PR #93411. Verify it addresses your case.
- **Recommended:** read PR #93411 (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.40`: 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

- #77927: lifecycle_guard: NUL-padded text script bypasses the scan (regression from #76762 binary check)

## Prior & competing PRs

- **#93411: fix: dot-sourced and NUL-padded scripts no longer bypass the gateway lifecycle guard (#77925 #77927, salvage #77926 #77928)**. merged to main · fix tier `verified`
  - maintainer direction: category `merged`; implication `superseded`
  - files: `cron/lifecycle_guard.py`, `tests/hermes_cli/test_gateway_restart_loop.py`
- **#77928: fix(cron): close NUL-padded script bypass in lifecycle guard (#77927)**. closed without merge
  - maintainer direction: category `merged_via`; implication `superseded`; refs `a9e46229b265`, `#93411`
- **#78083: fix(cron): check binary magic bytes instead of bare NUL for lifecycle guard (#77927)**. closed without merge
  - maintainer direction: category `duplicate_of`; implication `duplicate`; refs `#77928`
- **#82637: fix(lifecycle_guard): scan NUL-padded text scripts instead of treating NUL as binary signal (#77927)**. closed without merge
  - maintainer direction: category `uncategorized`; implication `needs_llm`; refs `#93411`, `#77928`, `#77927`

## Fix status

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