Repository navigation
Releases: ALBDNDJ/hpcguard
Release list
HPCGuard v1.6.0 — Agent circuit breakers
This release extends account-scoped protection for autonomous research workflows on shared Slurm login nodes.
Highlights:
- Detect common Python multiprocessing/process-pool fan-out and high-concurrency launchers.
- Warn on single-process and aggregate RSS plus account-wide process count.
- Back off identical failed commands and rate-limit wrapped sbatch attempts.
- Fail closed on unclassified hosts with stable machine-oriented exit codes.
- Strengthen AGENTS.md guidance and document the cooperative integration boundary.
- Expand regression coverage to 73 tests.
Scope: validated against the project owner’s single shared Slurm environment; no cross-cluster compatibility claim is made.
HPCGuard v1.5.0 — Hardening release
This release hardens HPCGuard itself while keeping its account-scoped, zero-root model.
Safety hardening
- Parse
~/.hpcguard/config.envas a strict allowlisted key-value file instead of executing it as shell code. - Secure configuration and watchdog state files with user ownership and restrictive permissions.
- Add watchdog start locking and process identity checks using PID, command, user, and start time.
- Make automatic termination opt-in, protect shells and scheduler/SSH processes, and prefer TERM before KILL.
- Preserve existing VSCode settings by default and write a reviewable proposal instead of overwriting them.
- Validate Slurm names, resource values, array ranges, and job identifiers.
- Sanitize job-log tails and avoid whitespace-based path splitting.
Agent integration
- Add
hpcguard check --json -- <command> [args...]for machine-readable policy decisions. - Add
hpcguard run -- <command> [args...]to preserve argument boundaries and avoid shell re-parsing. - Keep
hpcguard exec "..."for compound shell syntax, with its shell-string boundary documented. - Detect common wrapper forms and Python filesystem traversal patterns.
- Explicitly report unknown hostnames as unclassified instead of treating them as compute nodes.
Verification
- 50 local regression assertions, including adversarial and non-destructive behavior tests.
- Shell syntax check, ShellCheck, and regression tests pass in GitHub Actions.
HPCGuard remains a cooperative user-space guard and does not replace Slurm, cgroups, network controls, or administrator policy.
HPCGuard v1.4.1 — Safe SSH liveness probing
HPCGuard is an account-scoped safety layer for researchers and AI coding agents working on shared HPC systems without root access.
Highlights
- Blocks high-frequency
nc/ncat -z,/dev/tcp, and fresh-SSH liveness loops below the configurable safety interval. - Adds
hpcguard probe <ssh-config-host>for checking an existing OpenSSH ControlMaster socket without opening a new SSH session or falling back to authentication. - Covers login-node command interception for Python, R/bioinformatics, and genomics workloads.
- Includes Slurm array rate-limiting guidance, job-failure inspection, VSCode Remote safeguards, and an account-scoped watchdog.
- Corrects login-node detection so unknown hostnames are not assumed to be login nodes.
Safety boundaries
HPCGuard operates only within the current user account. It does not replace administrator-enforced cgroups, scheduler policy, or network security controls. Automatic process termination remains opt-in.
Verification
- Shell syntax validation
- ShellCheck
- 14 regression tests
All checks pass in GitHub Actions.
See the README for installation, anonymized incident patterns, and AI-agent integration guidance.