Skip to content

v0.4.0

Choose a tag to compare

@prom3theu5 prom3theu5 released this 27 Aug 01:03
· 94 commits to main since this release
f895d84

What's changed

  • Add the searchable dashboard and per-upload Git provenance by @prom3theu5 in #5

Full changelog: v0.3.1...v0.4.0


Highlights

Keryx 0.4.0 replaces the basic draft list with a responsive management dashboard and records the source checkout for every new upload.

Search and manage drafts in the browser

  • Search titles, descriptions, draft IDs, repositories, and branches.
  • Filter by update time, version count, disabled state, missing provenance, or repository.
  • Sort by update time, title, or version count.
  • Select a draft without leaving the list. The detail pane shows its metadata and version history.
  • Download the current HTML or PDF from the row menu.
  • Prune a draft, or force prune every version after a destructive-action confirmation.
  • Follow the system color scheme by default, with persistent light and dark overrides.
  • Use the wider, more spacious layout on large displays. The list and detail pane still collapse for laptop, tablet, and mobile widths.

Record provenance for every upload

keryx upload now reads Git metadata from the directory where you run the command. The uploaded HTML can live elsewhere, including /tmp/keryx.

Each immutable version can store:

  • The repository host, owner, and name.
  • The current branch.
  • The commit SHA and subject.
  • The dirty state of the checkout.

The SQLite migration copies existing draft-level repository metadata onto the version that is current during the upgrade. Keryx cannot recover branch or commit data for historic uploads that never recorded it. Upload a new version to add current provenance.

Keep API-key dashboards public without exposing management data

The dashboard remains public when KERYX_API_KEY is set. In that mode, Keryx redacts Git provenance and removes PDF, history, prune, and force-prune controls. Use the authenticated CLI for those operations. Public draft and raw HTML links continue to work.

Upgrade

No manual data migration is required. Replace the binary and restart keryx serve. Keryx updates the SQLite schema when it opens the database.

Install

Binaries are attached below for three targets. If yours is not one of them, build from source. The release archives also include the README, licence, and ready-made Keryx agent skills.

Platform Asset
Linux, x86-64 (glibc 2.35+) keryx-0.4.0-x86_64-unknown-linux-gnu.tar.gz
macOS, Apple Silicon keryx-0.4.0-aarch64-apple-darwin.tar.gz
Windows, x86-64 keryx-0.4.0-x86_64-pc-windows-msvc.zip

Linux (x86-64)

gh release download v0.4.0 --repo SimCubeLtd/keryx \
  --pattern 'keryx-0.4.0-x86_64-unknown-linux-gnu.tar.gz*'

sha256sum -c keryx-0.4.0-x86_64-unknown-linux-gnu.tar.gz.sha256
tar -xzf keryx-0.4.0-x86_64-unknown-linux-gnu.tar.gz

sudo install -m755 keryx-0.4.0-x86_64-unknown-linux-gnu/bin/keryx /usr/local/bin/
keryx --version

For a single-user install with no sudo, use ~/.local/bin instead and make sure it is on your PATH.

macOS (Apple Silicon)

gh release download v0.4.0 --repo SimCubeLtd/keryx \
  --pattern 'keryx-0.4.0-aarch64-apple-darwin.tar.gz*'

shasum -a 256 -c keryx-0.4.0-aarch64-apple-darwin.tar.gz.sha256
tar -xzf keryx-0.4.0-aarch64-apple-darwin.tar.gz

sudo install -m755 keryx-0.4.0-aarch64-apple-darwin/bin/keryx /usr/local/bin/
keryx --version

The binary is not code-signed or notarised. Downloading through a browser can attach a quarantine flag and cause Gatekeeper to refuse it. Clear the flag once with:

xattr -d com.apple.quarantine /usr/local/bin/keryx

Intel Macs do not have a native binary. Build from source, or run the Apple Silicon build under Rosetta 2. Rosetta 2 is unsupported and untested for this release.

Windows (x86-64)

Run these commands in PowerShell:

gh release download v0.4.0 --repo SimCubeLtd/keryx `
  --pattern 'keryx-0.4.0-x86_64-pc-windows-msvc.zip*'

# Compare the archive against the published checksum.
Get-FileHash keryx-0.4.0-x86_64-pc-windows-msvc.zip -Algorithm SHA256
Get-Content keryx-0.4.0-x86_64-pc-windows-msvc.zip.sha256

Expand-Archive keryx-0.4.0-x86_64-pc-windows-msvc.zip -DestinationPath $env:LOCALAPPDATA\Programs

$dir = "$env:LOCALAPPDATA\Programs\keryx-0.4.0-x86_64-pc-windows-msvc\bin"
[Environment]::SetEnvironmentVariable(
  'Path', [Environment]::GetEnvironmentVariable('Path','User') + ";$dir", 'User')

Open a new terminal, then run keryx --version.

The executable is unsigned, so SmartScreen can warn on first run. The installation does not require administrator rights.

Build from source (any platform)

Install the Rust nightly toolchain, then run:

rustup toolchain install nightly --profile minimal
git clone --branch v0.4.0 --depth 1 https://github.com/SimCubeLtd/keryx.git
cd keryx
cargo +nightly build --release --locked
./target/release/keryx --version

To install the tagged release into ~/.cargo/bin, run:

cargo +nightly install --git https://github.com/SimCubeLtd/keryx \
  --tag v0.4.0 --locked keryx

--locked uses the dependency versions in the committed Cargo.lock.