msantos/prx
53.8
Adequate · 2 October 2026
4.6k
lines of production code
2
measurements over time
What this system is
This system is an Erlang library for managing subprocess lifecycles and execution pipelines. It provides core capabilities for forking, re-executing processes, and handling signals, while exposing wrappers for various system calls and OS-specific security features like Linux ptrace and FreeBSD capabilities. The library utilizes a gen\_statem-based state machine to coordinate these operations and includes tooling to manage its native port binaries.
Behavioural changes
Add procname script to manage port binary symlinks
A new shell script named \procname\ has been added to the \bin\ directory. This script resolves the paths of the \alcove\_drv\ and \prx\_drv\ port executables by invoking their respective \progname/0\ functions via the Erlang runtime, and then copies the source binary to the destination path. This change supports the project's build process by ensuring the correct port binaries are available, addressing issues with building as a Mix dependency and handling Erlang 26 compatibility.
bin · high confidence
Library restructured with dependency upgrade and documentation improvements
The library has been upgraded to version 0.16.4, featuring a significant dependency upgrade of alcove from a git branch to version 1.0.1. Documentation has been enhanced with a new README, license file, and ex\_doc configuration, while build processes have been updated to include post-compile hooks and dialyzer warnings.
(repo-wide) · high confidence
Major API overhaul and migration to gen\_statem
The library has been updated to version 1.0.1, introducing a significant behavioral change by migrating the core process management state machine from gen\_fsm to gen\_statem. This refactor includes a comprehensive API update: the pid/1 function is renamed to children/1, the forkchain/1 function is replaced by pipeline/1, and the replace\_process\_image/1 function is renamed to reexec/1. New capabilities are exposed, including support for FreeBSD capabilities (cap\_ioctls\_limit, cap\_fcntls\_get, etc.), Linux ptrace, OpenBSD pledge and unveil, and fexecve. The module now exports a wide range of system call wrappers (e.g., ioctl, jail, seccomp, socket) and introduces the prx\_task module for running sequences of operations on subprocesses. The dependency on the alcove library is now explicit in the application manifest.
src · high confidence
Test coverage
Expanded test suite with OS-specific groups and configurable defaults
The Common Test suite (prx\_SUITE) has been significantly expanded to cover new functionality including re-execution (reexec), process ownership, flow control, and signal handling, alongside stress tests for cloning and forking. Test execution is now organized into OS-specific groups (Linux, FreeBSD, Darwin, etc.) to run platform-dependent cases like jail execution or /proc unmounting only where supported. Additionally, the test configuration now supports a configurable timeout via the PRX\_TEST\_TIMEOUT environment variable (defaulting to 60 seconds) and reduced default iteration counts for stress tests (ntimes=20, nprocs=10) to improve run times.
test · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 50 → 54 (+3.7)
- Rubric changed (rubric-2026.09.12 → rubric-2026.09.18) — scores are not directly comparable.
Lenses
- Code Health 100 → 100 (+0.0)
- Architecture 100 → 100 (+0.0)
- Maturity 44 → 44 (+0.0)
- Readiness 26 → 33 (+7.7)
- Security 100 → 100 (+0.0)
Resolved (4)
- Coverage not measured — no coverage collector is wired up
- Documentation: no contributor guidance (README.md)
- Documentation: no installation or build instructions (README.md)
- Documentation: no usage examples (README.md)
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
msantos/prx was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 2 October 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 7d2ea3507f08cf4059f7bd6b1ec0f070658f8829 — the exact code this score is about.
- Scored under rubric-2026.09.18 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-e569280dd5e2.