Skip to content

ProcLease v0.1.3 experimental preview

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 07 Nov 06:09
· 34 commits to main since this release

ProcLease v0.1.3 is an experimental corrective prerelease. It fixes four
startup and retry defects found by an independent review of v0.1.2. Command-line
usage, state layout and the JSON schema are unchanged.

Fixes

  • Retry identity: a keyed retry fingerprint no longer treats argv
    [/usr/bin/true, A, value] as the same request as argv [/usr/bin/true] with
    environment A=value. Records retained from v0.1.2 keep matching their exact
    original argv and directory; colliding or changed contexts are rejected.
  • Overdue startup: a lease whose deadline passes before startup completes now
    finishes expired without running the command. Previously, a very short lease
    could still run the command after the persisted deadline.
  • Guardian setup failure: a failure such as a denied control-socket bind is
    now reported as a failed launch with a nonzero exit. It was reported as an
    interrupted launch with exit 0.
  • Keeper spawn failure: the launch and its same-key retries now return a
    failed record with exit 1, and prune collects it by age. Previously a
    starting record remained, retries reused it as unknown, and prune skipped it.

The startup and retry corrections
describe each regression test.

Test reliability

Test teardown could remove a fixture directory while a job's keeper was still
writing its final record, which left partial fixture directories. The test
fixtures now wait for their own supervisors before deleting state. This change is
test-only; production lifecycle code is unchanged. See
fixture teardown residue.
The lease-extension test now uses a 60-second lease, because a 10-second lease
could expire under load before the test extended it; its assertions are
unchanged. The release archive smoke check applies the same teardown rule. It also confirms that the
packaged command started before it accepts the service's expiry.

Website sources

The website refresh adds a lease-ring logo and favicons, a balanced responsive
type scale, em-dash-free copy, clearer product answers and factual search/social
metadata. It is prepared separately from deployment. See the
website verification for checks
and the subsequent narrow-screen enlarged-text selector correction.

Install

Download install.sh from this release, review it, then run:

sh install.sh --skills both
proclease --version

The installer selects your native binary, verifies its SHA-256 checksum and
installs to ~/.local/bin, without sudo or Rust. Add that directory to PATH if
needed. Existing unrelated skill folders are preserved. Omit --skills both
to install the CLI without linking agent skills.

Alternatively, download your platform's .tar.gz, verify it against
SHA256SUMS, and put its proclease executable on PATH. Each archive includes
the shared skill, README and MIT license.

Compatibility and limits

The release workflow builds and tests each archive natively on GitHub's macOS
Apple Silicon and macOS 15 Intel runners and on Ubuntu 22.04 ARM64/x64 (glibc).
Both macOS binaries target macOS 15.0; an older Apple Silicon OS is not separately
runtime-tested. macOS binaries are not Developer ID signed or notarized. Linux
musl/Alpine and Windows binaries are not provided. The CLI source was published
to crates.io after this binary prerelease; source builds
require Rust 1.89 or newer. Current stable Rust/Cargo is recommended. See the
registry verification
for the macOS Rust/Cargo 1.89 stripping caveat.

ProcLease manages only services launched through it. It is a supervisor, not a
sandbox: descendants that create a new process group can escape cleanup. Use
native storage for state inside a VM, not a host-shared directory. Reading status,
logs or resource usage never renews a lease. See the README for support limits.

Created by Jared Chu, with Codex and Claude contributions. See the README for credits.