Repository navigation
Releases: GreyforgeLabs/slake
Releases · GreyforgeLabs/slake
Release list
slake 0.5.0
Added
- Stop signals (SIGHUP, SIGINT, SIGQUIT, SIGTERM) sent to slake while the command runs are relayed to the command. slake waits for it, records the result and releases the claim, so
kill,systemctl stopor a shutdown no longer leaves the job blocked for the rest of its lease. Signals the caller ignores, such as SIGHUP undernohup, stay ignored for the command. - Run results report the terminating signal:
signal=Nin text output and a"signal"field (a number ornull) in JSON output. - A tag-triggered release workflow publishes a Linux x86_64 tarball with a SHA-256 checksum.
Changed
- A command terminated by signal
Nnow makes slake exit with128 + N(for example137for SIGKILL), the convention shells use, instead of1. For SIGHUP, SIGINT and SIGTERM, slake records and prints the result and then ends by the same signal: shells still see128 + N(143for SIGTERM), systemd counts asystemctl stopas a clean stop, and Ctrl-C stops a calling shell script. - The ledger records its schema revision in
PRAGMA user_version. Older ledgers are upgraded once, in one immediate transaction, and later invocations skip the schema checks: one statement on open instead of seven, and no full-table scan per invocation.statusand cooldown skips on a 50,000-row ledger run in 1.5 ms instead of 7.7–8.5 ms. - The unused seconds-precision index is dropped, and the millisecond index now also covers
id, so newest-first reads and history pruning walk the index without sorting. - The bundled SQLite is built without features slake does not use (FTS, R*Tree, JSON, extension loading and others). The release binary is 27% smaller: 2.91 MB to 2.13 MB.
serde,serde_jsonandtimeare replaced by small built-in formatters with identical output, and clap no longer pulls in its color stack: the runtime dependency tree shrinks from 45 to 24 crates. Peak memory for astatuscall drops from 5.1 MB to 4.0 MB.
Fixed
- After the wall clock is set backwards, runs and claims that lie in the future are rebased to the current time on the next
run, so the job waits one interval or lease instead of until the clock catches up. - A failure to record a result now says which outcome (exit code, signal or spawn failure) was not recorded, and a closed stdout is reported as an error instead of aborting.
Compatibility
- Text output, JSON fields and exit codes are unchanged apart from the additions above. Ledgers stay readable and writable by earlier releases.
- The deprecated
cooldown-guardalias is still installed and will be removed in a future release.
Full Changelog: v0.4.0...v0.5.0
slake v0.4.0
Changed
- Renamed from
cooldown-guardtoslake: crate, binary,--versionoutput and repository (GreyforgeLabs/slake). Releases up to 0.3.0 were published ascooldown-guard. - Release builds use fat LTO, a single codegen unit, symbol stripping and abort-on-panic. The x86_64 Linux release binary shrinks from 3.68 MB to 2.91 MB (-21%) with unchanged startup time and test results.
- The default ledger path is resolved only when
--dbis omitted, so an explicit--dbno longer depends on a resolvable home directory.
Deprecated
- The
cooldown-guardbinary is installed as an alias for this release only. It prints a one-line deprecation note to stderr and then behaves exactly likeslake(same arguments, stdout and exit codes). It will be removed in the next release; switch cron lines and scripts toslake.
Compatibility
- Existing ledgers keep working. Without
--db, slake uses its own ledger (~/.local/state/slake/runs.sqlite3on Linux) when it exists; otherwise it uses an existingcooldown-guardledger in place: the Linux state directory ($XDG_STATE_HOME/cooldown-guard/, default~/.local/state/cooldown-guard/), the local data directory ($XDG_DATA_HOME/cooldown-guard/) or, on macOS,~/Library/Application Support/tech.Greyforge.cooldown-guard/. The legacy ledger is never copied or moved, so cooldowns and active claims carry over without a reset or an overlap window. With no ledger anywhere, a new one is created at the slake location. The SQLite schema is unchanged.
cooldown-guard v0.3.0
v0.3.0
clearnow refuses a live claim by default.clear --forceexplicitly permits abandoning it and documents the overlap consequence.- Claim and history deletion are transactional.
- The fixed, nonrenewing lease guarantee is documented throughout the operator guide. Integration coverage demonstrates overlap after lease expiry and the behavior of clearing a running job.
See CHANGELOG.md for details.
cooldown-guard v0.2.0
Full Changelog: https://github.com/GreyforgeLabs/cooldown-guard/commits/v0.2.0