Skip to content

Releases: Cliftonz/jarvy

v0.6.4

Choose a tag to compare

@github-actions github-actions released this 18 Jul 01:17
v0.6.4
fce1930

Features:

  • npm-style lifecycle hooks for jarvy run — if pre<name> or
    post<name> keys exist in [commands], jarvy run <name> runs them
    around the main command with npm's exact semantics: a failing pre
    aborts the run (its exit code propagates), post only runs after a
    successful main, a failing post fails the run, and extra -- args go
    to the main command only. The more readable colon spelling works too
    ("pre:build" / "post:build", quoted — TOML bare keys can't
    contain :); when both spellings are defined the colon form wins and
    a note is printed. Hooks are ordinary entries: listed, directly
    runnable, same safety guards.
  • jarvy shell-init --apply — wires the jr (= jarvy run)
    shorthand into your shell rc file with one command, whatever way you
    installed jarvy (previously nothing did this automatically —
    cargo install users never got jr without hand-editing their rc).
    Idempotent; supports bash/zsh/sh/fish/PowerShell, and nushell via a
    materialized ~/.jarvy/init.nu (re-run --apply after upgrading).
  • Bare jarvy run with no [commands] table now prints a real
    getting-started guide (worked example, the three usage forms, cwd
    rule, jr tip) instead of a one-line hint.
  • New docs page: Task runner
    — npm-run-style documentation including a "Coming from npm?" mapping
    table.

Fixes:

  • Every jarvy invocation warned plugin directory has insecure permissions for users who never created ~/.jarvy/tools.d — the
    permission probe conflated "directory doesn't exist" with "unsafe
    permissions". An absent plugin directory is now a silent no-op; the
    security gate still fires for directories that exist with loose
    permissions.

Internal:

  • verify-release-assets.sh accepts the bare-basename SHA256SUMS.txt
    entries introduced in v0.6.3 (its listing regex previously required a
    path separator before the name).
  • This repo's own jarvy.toml gained a [commands] table — jarvy's
    development tasks now dogfood jarvy run.

Full Changelog: v0.6.4-rc.2...v0.6.4

Installation

Quick Install (Unix)

curl -fsSL https://raw.githubusercontent.com/Cliftonz/jarvy/main/dist/scripts/install.sh | bash

Quick Install (Windows PowerShell)

irm https://raw.githubusercontent.com/Cliftonz/jarvy/main/dist/scripts/install.ps1 | iex

Homebrew

brew install Cliftonz/tap/jarvy

Cargo

cargo install jarvy

Early-Release Channel

Pre-release tags (-rc.N, -beta.N) are routed through the beta channel.
Opt in: JARVY_CHANNEL=beta on the install script, or jarvy update --channel beta.
See docs/release-testing.md.

See installation docs for more options.

Security

Verify Signatures

All release artifacts are signed with Sigstore keyless OIDC. Verify any artifact:

# Substitute a triple that matches your platform, e.g.
# aarch64-apple-darwin, x86_64-unknown-linux-musl,
# aarch64-unknown-linux-gnu, x86_64-pc-windows-msvc (.zip).
ARTIFACT=jarvy-v0.6.4-x86_64-unknown-linux-musl.tar.gz
BASE=https://github.com/Cliftonz/jarvy/releases/download/v0.6.4
curl -LO $BASE/$ARTIFACT
curl -LO $BASE/$ARTIFACT.sig
curl -LO $BASE/$ARTIFACT.pem
cosign verify-blob \
  --signature $ARTIFACT.sig \
  --certificate $ARTIFACT.pem \
  --certificate-identity-regexp '^https://github\.com/Cliftonz/jarvy/\.github/workflows/release\.yml@refs/tags/v[0-9.]+(-[A-Za-z0-9.]+)?$' \
  --certificate-oidc-issuer 'https://token.actions.githubusercontent.com' \
  $ARTIFACT

Tag Signature

This release was cut from a signed git tag. Verify with:

git -c gpg.ssh.allowedSignersFile=.github/allowed_signers tag --verify v0.6.4

SBOM

Software Bill of Materials in SPDX 2.3 (sbom.spdx.json) and CycloneDX 1.4 (sbom.cdx.json).

Checksums

SHA256 checksums for all artifacts are in SHA256SUMS.txt.

v0.6.4-rc.2

v0.6.4-rc.2 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 18 Jul 00:28
v0.6.4-rc.2
12d57f1
  • fix(update): stronger visible Windows swap retry — Defender outlasted 3x backoff (12d57f1)

Full Changelog: v0.6.4-rc.1...v0.6.4-rc.2

Installation

Quick Install (Unix)

curl -fsSL https://raw.githubusercontent.com/Cliftonz/jarvy/main/dist/scripts/install.sh | bash

Quick Install (Windows PowerShell)

irm https://raw.githubusercontent.com/Cliftonz/jarvy/main/dist/scripts/install.ps1 | iex

Homebrew

brew install Cliftonz/tap/jarvy

Cargo

cargo install jarvy

Early-Release Channel

Pre-release tags (-rc.N, -beta.N) are routed through the beta channel.
Opt in: JARVY_CHANNEL=beta on the install script, or jarvy update --channel beta.
See docs/release-testing.md.

See installation docs for more options.

Security

Verify Signatures

All release artifacts are signed with Sigstore keyless OIDC. Verify any artifact:

# Substitute a triple that matches your platform, e.g.
# aarch64-apple-darwin, x86_64-unknown-linux-musl,
# aarch64-unknown-linux-gnu, x86_64-pc-windows-msvc (.zip).
ARTIFACT=jarvy-v0.6.4-rc.2-x86_64-unknown-linux-musl.tar.gz
BASE=https://github.com/Cliftonz/jarvy/releases/download/v0.6.4-rc.2
curl -LO $BASE/$ARTIFACT
curl -LO $BASE/$ARTIFACT.sig
curl -LO $BASE/$ARTIFACT.pem
cosign verify-blob \
  --signature $ARTIFACT.sig \
  --certificate $ARTIFACT.pem \
  --certificate-identity-regexp '^https://github\.com/Cliftonz/jarvy/\.github/workflows/release\.yml@refs/tags/v[0-9.]+(-[A-Za-z0-9.]+)?$' \
  --certificate-oidc-issuer 'https://token.actions.githubusercontent.com' \
  $ARTIFACT

Tag Signature

This release was cut from a signed git tag. Verify with:

git -c gpg.ssh.allowedSignersFile=.github/allowed_signers tag --verify v0.6.4-rc.2

SBOM

Software Bill of Materials in SPDX 2.3 (sbom.spdx.json) and CycloneDX 1.4 (sbom.cdx.json).

Checksums

SHA256 checksums for all artifacts are in SHA256SUMS.txt.


Soak window (24h): PASSED — see #68 for the audit trail.

v0.6.4-rc.1

v0.6.4-rc.1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 17 Jul 17:22
v0.6.4-rc.1
f2fc56b
  • test(run): quote-tolerant extra-args assert — cmd.exe echoes quotes (f2fc56b)
  • docs(changelog): v0.6.4 entry ahead of stable promotion (8b93315)
  • chore(release): bump version to 0.6.4 (5beacfa)
  • docs: propagate run-hooks + shell-init --apply across every doc surface (248acfe)
  • feat(run): accept pre:name / post:name hook spelling alongside npm concatenation (10f4bdb)
  • feat(run): npm-style pre/post lifecycle hooks (edae18f)
  • docs(run): dedicated npm-run-style page for the jarvy run task runner (20e2c89)
  • feat(shell-init): --apply wires the jr loader into the rc file directly (d107921)
  • chore(dx): [commands] task runner for the repo itself (8babac2)
  • fix(plugins): absent tools.d is a silent no-op, not a perms warning (bdd1900)
  • feat(run): teach the empty-state message how to actually get started (74ce384)
  • fix(scripts): verify-release accepts bare-basename SHA256SUMS entries (3d12fe2)

Full Changelog: v0.6.3...v0.6.4-rc.1

Installation

Quick Install (Unix)

curl -fsSL https://raw.githubusercontent.com/Cliftonz/jarvy/main/dist/scripts/install.sh | bash

Quick Install (Windows PowerShell)

irm https://raw.githubusercontent.com/Cliftonz/jarvy/main/dist/scripts/install.ps1 | iex

Homebrew

brew install Cliftonz/tap/jarvy

Cargo

cargo install jarvy

Early-Release Channel

Pre-release tags (-rc.N, -beta.N) are routed through the beta channel.
Opt in: JARVY_CHANNEL=beta on the install script, or jarvy update --channel beta.
See docs/release-testing.md.

See installation docs for more options.

Security

Verify Signatures

All release artifacts are signed with Sigstore keyless OIDC. Verify any artifact:

# Substitute a triple that matches your platform, e.g.
# aarch64-apple-darwin, x86_64-unknown-linux-musl,
# aarch64-unknown-linux-gnu, x86_64-pc-windows-msvc (.zip).
ARTIFACT=jarvy-v0.6.4-rc.1-x86_64-unknown-linux-musl.tar.gz
BASE=https://github.com/Cliftonz/jarvy/releases/download/v0.6.4-rc.1
curl -LO $BASE/$ARTIFACT
curl -LO $BASE/$ARTIFACT.sig
curl -LO $BASE/$ARTIFACT.pem
cosign verify-blob \
  --signature $ARTIFACT.sig \
  --certificate $ARTIFACT.pem \
  --certificate-identity-regexp '^https://github\.com/Cliftonz/jarvy/\.github/workflows/release\.yml@refs/tags/v[0-9.]+(-[A-Za-z0-9.]+)?$' \
  --certificate-oidc-issuer 'https://token.actions.githubusercontent.com' \
  $ARTIFACT

Tag Signature

This release was cut from a signed git tag. Verify with:

git -c gpg.ssh.allowedSignersFile=.github/allowed_signers tag --verify v0.6.4-rc.1

SBOM

Software Bill of Materials in SPDX 2.3 (sbom.spdx.json) and CycloneDX 1.4 (sbom.cdx.json).

Checksums

SHA256 checksums for all artifacts are in SHA256SUMS.txt.

v0.6.3

Choose a tag to compare

@github-actions github-actions released this 16 Jul 17:29
v0.6.3
d572cf1

First release under the gate model (see docs/release-testing.md):
soaked as v0.6.3-rc.1 for the 24h patch window because it changes the
update chain.

Security:

  • install.sh / install.ps1 checksum verification actually fires
    now.
    Two stacked bugs meant curl | bash and PowerShell installs
    were silently skipping integrity verification: SHA256SUMS.txt
    entries carry build paths that the lookup never matched, and under
    PowerShell 7 the sums file arrived as raw bytes that never split into
    lines. Both installers now match entries by basename and decode the
    manifest explicitly — a tampered download aborts the install on every
    platform. Caught by the new installer end-to-end suite on its first
    run. SHA256SUMS.txt entries are also generated as bare asset names
    going forward (the pathed entries likewise broke Chocolatey's publish
    step on v0.6.1).

Fixes:

  • jarvy update --rollback no longer fails with Text file busy on
    Linux — the restore path wrote over the running executable; it now
    uses the same atomic temp-rename as the forward update. The consumed
    backup also no longer leaves an orphaned file in ~/.jarvy/backup/.
  • Windows binary updates retry the final swap (3× with backoff) when
    Defender or an indexer briefly holds the freshly extracted binary
    (Access is denied flake).
  • Release binaries embed the exact release tag: an rc build reports
    jarvy 0.6.3-rc.1 from --version instead of the bare crate
    version, and the update checker compares true prerelease versions —
    beta-channel users were previously never offered the next rc.
  • Unknown subcommands (jarvy rollback, typos) exit 2 in
    non-interactive contexts instead of printing a menu prompt and
    exiting 0 — scripts and CI can no longer mistake a typo for
    success. Humans at a TTY still get the interactive menu.

Changed:

  • Hooks run under bash (or sh) on Unix instead of the user's
    $SHELL. zsh's lack of word splitting silently broke POSIX-style
    hooks depending on who ran them — the same jarvy.toml now behaves
    identically for every developer. Opt back into a specific shell with
    [hooks.config] shell = "zsh".
  • A pinned node version installs through nvm when nvm is configured
    (nvm install <ver> && nvm alias default <ver>), so node = "24"
    is honored and a second package-manager node no longer shadows nvm's.
    Ranges and latest keep the platform installer.

Known issues:

  • Upgrading from v0.6.2 on Windows with jarvy update --method binary can intermittently fail with Access is denied — the retry
    fix ships in this release but the binary performing that upgrade is
    v0.6.2's. Re-run the update or use the install script. Upgrades from
    v0.6.3 onward retry automatically.

Internal:

  • Release pipeline hardening after the v0.6.1 incident: a
    draft-verification gate (checksums, cosign, SBOMs, and a binary
    --version smoke) must pass before any release publishes; the
    Cargo.toml↔tag guard refuses to build a mislabeled tag; and the
    installer/package e2e suites now actually run on every release.
    Soak-window automation is bump-kind aware and no longer labels
    force-dispatched validation runs (#53).

Full Changelog: v0.6.3-rc.1...v0.6.3

Installation

Quick Install (Unix)

curl -fsSL https://raw.githubusercontent.com/Cliftonz/jarvy/main/dist/scripts/install.sh | bash

Quick Install (Windows PowerShell)

irm https://raw.githubusercontent.com/Cliftonz/jarvy/main/dist/scripts/install.ps1 | iex

Homebrew

brew install Cliftonz/tap/jarvy

Cargo

cargo install jarvy

Early-Release Channel

Pre-release tags (-rc.N, -beta.N) are routed through the beta channel.
Opt in: JARVY_CHANNEL=beta on the install script, or jarvy update --channel beta.
See docs/release-testing.md.

See installation docs for more options.

Security

Verify Signatures

All release artifacts are signed with Sigstore keyless OIDC. Verify any artifact:

# Substitute a triple that matches your platform, e.g.
# aarch64-apple-darwin, x86_64-unknown-linux-musl,
# aarch64-unknown-linux-gnu, x86_64-pc-windows-msvc (.zip).
ARTIFACT=jarvy-v0.6.3-x86_64-unknown-linux-musl.tar.gz
BASE=https://github.com/Cliftonz/jarvy/releases/download/v0.6.3
curl -LO $BASE/$ARTIFACT
curl -LO $BASE/$ARTIFACT.sig
curl -LO $BASE/$ARTIFACT.pem
cosign verify-blob \
  --signature $ARTIFACT.sig \
  --certificate $ARTIFACT.pem \
  --certificate-identity-regexp '^https://github\.com/Cliftonz/jarvy/\.github/workflows/release\.yml@refs/tags/v[0-9.]+(-[A-Za-z0-9.]+)?$' \
  --certificate-oidc-issuer 'https://token.actions.githubusercontent.com' \
  $ARTIFACT

Tag Signature

This release was cut from a signed git tag. Verify with:

git -c gpg.ssh.allowedSignersFile=.github/allowed_signers tag --verify v0.6.3

SBOM

Software Bill of Materials in SPDX 2.3 (sbom.spdx.json) and CycloneDX 1.4 (sbom.cdx.json).

Checksums

SHA256 checksums for all artifacts are in SHA256SUMS.txt.

v0.6.3-rc.1

v0.6.3-rc.1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 15 Jul 16:29
v0.6.3-rc.1
d3c758e
  • fix(release): basename-match SHA256SUMS entries in the draft gate (d3c758e)
  • fix(release): enable globstar in the draft gate's artifact collection (db7d4c2)
  • fix(release): draft gate verifies local artifacts + API asset cross-check (2515113)
  • chore(release): bump version to 0.6.3 (cd46ab0)
  • feat(release): gate model — verify the draft before publishing, rc only for update-chain changes (d0be5d2)
  • fix(security): make the re-enabled security workflow actionable (2b9b1b9)
  • feat(tools): route pinned node through nvm; deterministic hook shell; doc fixes (5a40713)
  • fix(update): tag-aware version + Windows self-replace retry (c05c773)
  • fix(ci): soak gate waits for the real bump-kind window before labeling (#53) (7ca3a81)
  • fix(ci): repair four broken/dead automation paths (0b04dd9)
  • fix(update): atomic temp-rename in rollback restore — ETXTBSY on Linux (9a44fe9)
  • fix(cli): exit 2 on unknown command without a TTY; fix Path 4 rollback invocation (4cf3411)
  • fix(ci): install cosign before release-paths Path 2 update step (4ec0f16)

Full Changelog: v0.6.2...v0.6.3-rc.1

Installation

Quick Install (Unix)

curl -fsSL https://raw.githubusercontent.com/Cliftonz/jarvy/main/dist/scripts/install.sh | bash

Quick Install (Windows PowerShell)

irm https://raw.githubusercontent.com/Cliftonz/jarvy/main/dist/scripts/install.ps1 | iex

Homebrew

brew install Cliftonz/tap/jarvy

Cargo

cargo install jarvy

Early-Release Channel

Pre-release tags (-rc.N, -beta.N) are routed through the beta channel.
Opt in: JARVY_CHANNEL=beta on the install script, or jarvy update --channel beta.
See docs/release-testing.md.

See installation docs for more options.

Security

Verify Signatures

All release artifacts are signed with Sigstore keyless OIDC. Verify any artifact:

# Substitute a triple that matches your platform, e.g.
# aarch64-apple-darwin, x86_64-unknown-linux-musl,
# aarch64-unknown-linux-gnu, x86_64-pc-windows-msvc (.zip).
ARTIFACT=jarvy-v0.6.3-rc.1-x86_64-unknown-linux-musl.tar.gz
BASE=https://github.com/Cliftonz/jarvy/releases/download/v0.6.3-rc.1
curl -LO $BASE/$ARTIFACT
curl -LO $BASE/$ARTIFACT.sig
curl -LO $BASE/$ARTIFACT.pem
cosign verify-blob \
  --signature $ARTIFACT.sig \
  --certificate $ARTIFACT.pem \
  --certificate-identity-regexp '^https://github\.com/Cliftonz/jarvy/\.github/workflows/release\.yml@refs/tags/v[0-9.]+(-[A-Za-z0-9.]+)?$' \
  --certificate-oidc-issuer 'https://token.actions.githubusercontent.com' \
  $ARTIFACT

Tag Signature

This release was cut from a signed git tag. Verify with:

git -c gpg.ssh.allowedSignersFile=.github/allowed_signers tag --verify v0.6.3-rc.1

SBOM

Software Bill of Materials in SPDX 2.3 (sbom.spdx.json) and CycloneDX 1.4 (sbom.cdx.json).

Checksums

SHA256 checksums for all artifacts are in SHA256SUMS.txt.


Soak window (24h): PASSED — see #65 for the audit trail.

v0.6.2

Choose a tag to compare

@github-actions github-actions released this 14 Jul 11:55
v0.6.2
0896a4e

Corrected re-release of the withdrawn v0.6.1 — identical code plus the
version bump v0.6.1 was missing and a release-workflow guard that makes
the mistake impossible to repeat (the tag now refuses to build unless
Cargo.toml matches it).

Fixes:

  • nvm is now detected via its filesystem marker
    (${NVM_DIR:-$HOME/.nvm}/nvm.sh) instead of shell probes. nvm is a
    shell function, not a binary, so the previous PATH lookup and
    bash -lc probes could never see it — every jarvy setup with nvm
    in the config re-downloaded and re-ran the installer, and the version
    check reported nvm as needing install forever. Detection now converges
    after one install, and jarvy upgrade node correctly suggests
    nvm install when node is nvm-managed. (Windows is unaffected:
    nvm-windows is a real binary.)

Internal:

  • CI action bumps (Dependabot): actions/checkout 4→7,
    actions/download-artifact 7→8, actions/setup-java 4→5,
    azure/setup-helm 4.3.0→5.0.1, docker/setup-buildx-action 3→4.
    The release-critical ones were smoke-validated by dispatch runs
    before this release.

This is also the first release upgradable to via
jarvy update --method binary from v0.6.0 — the redirect fix shipped in
v0.6.0 makes the updater work going forward (upgrading from v0.5.x
still requires the install script or a package manager).

Full Changelog: v0.6.1...v0.6.2

Installation

Quick Install (Unix)

curl -fsSL https://raw.githubusercontent.com/Cliftonz/jarvy/main/dist/scripts/install.sh | bash

Quick Install (Windows PowerShell)

irm https://raw.githubusercontent.com/Cliftonz/jarvy/main/dist/scripts/install.ps1 | iex

Homebrew

brew install Cliftonz/tap/jarvy

Cargo

cargo install jarvy

Early-Release Channel

Pre-release tags (-rc.N, -beta.N) are routed through the beta channel.
Opt in: JARVY_CHANNEL=beta on the install script, or jarvy update --channel beta.
See docs/release-testing.md.

See installation docs for more options.

Security

Verify Signatures

All release artifacts are signed with Sigstore keyless OIDC. Verify any artifact:

# Substitute a triple that matches your platform, e.g.
# aarch64-apple-darwin, x86_64-unknown-linux-musl,
# aarch64-unknown-linux-gnu, x86_64-pc-windows-msvc (.zip).
ARTIFACT=jarvy-v0.6.2-x86_64-unknown-linux-musl.tar.gz
BASE=https://github.com/Cliftonz/jarvy/releases/download/v0.6.2
curl -LO $BASE/$ARTIFACT
curl -LO $BASE/$ARTIFACT.sig
curl -LO $BASE/$ARTIFACT.pem
cosign verify-blob \
  --signature $ARTIFACT.sig \
  --certificate $ARTIFACT.pem \
  --certificate-identity-regexp '^https://github\.com/Cliftonz/jarvy/\.github/workflows/release\.yml@refs/tags/v[0-9.]+(-[A-Za-z0-9.]+)?$' \
  --certificate-oidc-issuer 'https://token.actions.githubusercontent.com' \
  $ARTIFACT

Tag Signature

This release was cut from a signed git tag. Verify with:

git -c gpg.ssh.allowedSignersFile=.github/allowed_signers tag --verify v0.6.2

SBOM

Software Bill of Materials in SPDX 2.3 (sbom.spdx.json) and CycloneDX 1.4 (sbom.cdx.json).

Checksums

SHA256 checksums for all artifacts are in SHA256SUMS.txt.

v0.6.1

v0.6.1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 14 Jul 11:06
v0.6.1
3870b4b

Caution

WITHDRAWN — do not install this release. The binaries and package
assets in v0.6.1 self-identify as 0.6.0 (the version bump commit was
missed before tagging), which breaks jarvy update with a perpetual
update loop. Use v0.6.2, the corrected re-release of exactly this
code: https://github.com/Cliftonz/jarvy/releases/tag/v0.6.2
Assets are left in place because releases are immutable by policy.

Fixes:

  • nvm is now detected via its filesystem marker
    (${NVM_DIR:-$HOME/.nvm}/nvm.sh) instead of shell probes. nvm is a
    shell function, not a binary, so the previous PATH lookup and
    bash -lc probes could never see it — every jarvy setup with nvm
    in the config re-downloaded and re-ran the installer, and the version
    check reported nvm as needing install forever. Detection now converges
    after one install, and jarvy upgrade node correctly suggests
    nvm install when node is nvm-managed. (Windows is unaffected:
    nvm-windows is a real binary.)

Internal:

  • CI action bumps (Dependabot): actions/checkout 4→7,
    actions/download-artifact 7→8, actions/setup-java 4→5,
    azure/setup-helm 4.3.0→5.0.1, docker/setup-buildx-action 3→4.
    The release-critical ones were smoke-validated by dispatch runs
    before this release.

This is also the first release upgradable to via
jarvy update --method binary from v0.6.0 — the redirect fix shipped in
v0.6.0 makes the updater work going forward (upgrading from v0.5.x
still requires the install script or a package manager).

Full Changelog: v0.6.0...v0.6.1

Installation

Quick Install (Unix)

curl -fsSL https://raw.githubusercontent.com/Cliftonz/jarvy/main/dist/scripts/install.sh | bash

Quick Install (Windows PowerShell)

irm https://raw.githubusercontent.com/Cliftonz/jarvy/main/dist/scripts/install.ps1 | iex

Homebrew

brew install Cliftonz/tap/jarvy

Cargo

cargo install jarvy

Early-Release Channel

Pre-release tags (-rc.N, -beta.N) are routed through the beta channel.
Opt in: JARVY_CHANNEL=beta on the install script, or jarvy update --channel beta.
See docs/release-testing.md.

See installation docs for more options.

Security

Verify Signatures

All release artifacts are signed with Sigstore keyless OIDC. Verify any artifact:

# Substitute a triple that matches your platform, e.g.
# aarch64-apple-darwin, x86_64-unknown-linux-musl,
# aarch64-unknown-linux-gnu, x86_64-pc-windows-msvc (.zip).
ARTIFACT=jarvy-v0.6.1-x86_64-unknown-linux-musl.tar.gz
BASE=https://github.com/Cliftonz/jarvy/releases/download/v0.6.1
curl -LO $BASE/$ARTIFACT
curl -LO $BASE/$ARTIFACT.sig
curl -LO $BASE/$ARTIFACT.pem
cosign verify-blob \
  --signature $ARTIFACT.sig \
  --certificate $ARTIFACT.pem \
  --certificate-identity-regexp '^https://github\.com/Cliftonz/jarvy/\.github/workflows/release\.yml@refs/tags/v[0-9.]+(-[A-Za-z0-9.]+)?$' \
  --certificate-oidc-issuer 'https://token.actions.githubusercontent.com' \
  $ARTIFACT

Tag Signature

This release was cut from a signed git tag. Verify with:

git -c gpg.ssh.allowedSignersFile=.github/allowed_signers tag --verify v0.6.1

SBOM

Software Bill of Materials in SPDX 2.3 (sbom.spdx.json) and CycloneDX 1.4 (sbom.cdx.json).

Checksums

SHA256 checksums for all artifacts are in SHA256SUMS.txt.

v0.6.0

Choose a tag to compare

@github-actions github-actions released this 13 Jul 17:52
v0.6.0
cbde66f

Known issues:

  • Upgrading from v0.5.x with jarvy update --method binary fails with
    Checksum verification failed: the v0.5.x updater does not follow the
    HTTP redirects GitHub now serves on release-asset downloads (fixed in
    this release, but the fix cannot reach the old binary doing the
    upgrade). Workaround: reinstall via the install script
    (curl -fsSL https://raw.githubusercontent.com/Cliftonz/jarvy/main/dist/scripts/install.sh | bash)
    or your package manager. Upgrades from v0.6.0 onward work.

Features:

  • jarvy run [name] [-- args] — npm-run-style command runner for a
    [commands] table in jarvy.toml. An explicitly named command is
    treated as consent (shell chaining allowed; the command is printed
    ANSI-stripped before exec), the child's exit code is propagated, and
    the working directory is the config file's directory. Bare jarvy run
    lists the available commands; there is no implicit cargo run/cargo test fallback, and NUL-bearing (on Windows, also %-bearing)
    -- args are refused. jarvy shell-init emits a snippet defining jr
    as shorthand, and shell-init/completions gain nushell support
    alongside bash/zsh/fish/sh/powershell. Telemetry: run.command.*,
    shell_init.generated, completions.generated.
  • jarvy doctor --check <path,tools,hooks> — limit the health run to
    specific categories (system info is always shown as context). Skips the
    unselected probes entirely; an unknown category exits 2 with the valid
    set. Composes with --tools and --extended. Closes PRD-027.
  • jarvy skills update [<name>] — re-fetch skills from library_sources,
    compare the advertised version/sha against the installed sidecar per
    agent, and reinstall only on divergence (no-op when unchanged; a pinned
    [skills.install] version that no longer matches the library refuses
    rather than silently drifting). PRD-049 phase 2.
  • jarvy skills remove <name> — uninstall SKILL.md + the
    .jarvy-skill.json sidecar from every targeted agent. Idempotent:
    removing an absent skill is a clean no-op. User-added companion files
    next to SKILL.md are preserved.
  • Ad-hoc jarvy skills install <name> — a name absent from
    [skills.install] now resolves from the configured library_sources
    at latest instead of erroring (the --name flag is replaced by a
    positional argument).
  • All three subcommands accept --format json (PRD-051), and emit
    skills.updated / skills.removed telemetry events (gated behind the
    standard telemetry opt-in).
  • jarvy setup observability flags are now wired into the tracing
    subscriber: -v/-vv/-vvv raise console verbosity, -q suppresses all
    but errors (without starving jarvy.log / OTLP), --log-format json,
    --log-file <path>, --debug-filter <module>, and --profile /
    --profile-output (phase-level timing report). These flags previously
    parsed but were silently dropped.
  • 15 new tools: allure, aws-sam-cli, cfn-lint, cypress,
    goaccess, k3s, linkerd, locust, microk8s, playwright,
    putty, structurizr, task, tmux, todoist. structurizr is
    the 2026 consolidated "software architecture models as code" tool
    (C4 model) — installs via Homebrew / Linuxbrew (the old,
    now-deprecated structurizr-cli formula is not used); no first-party
    winget/choco, so Windows uses the .war or Docker image. k3s and
    microk8s cover single-node local Kubernetes: k3s is Linux-only and
    installs from a commit-pinned, sha256-verified copy of the upstream
    installer (no floating get.k3s.io fetch); microk8s installs via snap
    on Linux or Canonical's Multipass-backed Homebrew tap on macOS.
  • [git] gains three capabilities (see docs/git-config.md):
    • [git.extra] — a free-form escape hatch for git config keys Jarvy
      doesn't model as typed fields (core.fsmonitor, feature.manyFiles,
      …), applied last so they override modeled fields. Each entry runs a
      layered guard: dotted-grammar/flag-injection key validation, a
      leading-- value refusal (argv option-injection), an outright
      refusal of keys whose value git executes
      (core.pager/editor/
      sshCommand/askPass/hooksPath, pager.<cmd>, filter.*.clean,
      *.textconv, merge.*.driver, remote.*.uploadpack,
      init.templateDir, … — RCE the !-filter alone missed;
      core.fsmonitor=true|false stays allowed) overridable with
      JARVY_ALLOW_GIT_EXEC_KEYS=1, a security-guardrail-downgrade check,
      and a !-shell-value refusal (leading whitespace included). The
      typed editor/credential_helper fields (which legitimately set
      such keys) are value-guarded instead: a bare command/helper + flags
      is allowed, a shell metacharacter / ! / program-path value is
      refused. The dry-run preview runs the same gauntlet, so it shows
      refusals rather than claiming a blocked key "would be set."
    • os_defaults (default on; os_defaults = false opts out) — writes
      host-aware defaults for unset keys: core.autocrlf
      (Windows true / else input), Windows core.longpaths, macOS
      core.precomposeunicode, plus a cross-platform recommended set
      (fetch.prune, rerere.enabled, merge.conflictStyle = zdiff3).
      Explicit fields and [git.extra] always win; keys already matching
      are skipped so re-runs don't re-write.
    • Security guardrail — [git.extra] values that weaken a git defense
      are refused (core.protectNTFS/protectHFS = false,
      safe.directory = * (CVE-2022-24765), safe.bareRepository = all,
      fsck.*/fetch.fsck.*/receive.fsck.* = ignore,
      *.fsckObjects = false, http[.<url>].sslVerify = false) unless
      JARVY_ALLOW_GIT_PROTECT_DOWNGRADE=1.
    • Trust boundary — a remote-origin config (--from <url>) cannot apply
      [git] unless it sets allow_remote = true, and even then writes are
      forced to --local scope (never ~/.gitconfig). jarvy setup --dry-run previews every OS-default and [git.extra] write. Full
      git_config.* telemetry — lifecycle, adoption (extra_applied,
      os_defaults_applied), and security refusals/overrides — all gated
      behind the telemetry opt-out.
  • Default post-install hooks for rust (clippy/rustfmt + cargo env),
    tmux (TPM plugin manager), kubectx (kctx/kns aliases), and nvim
    (starter init.lua). Unix-only where the tool also ships on Windows.

Added:

  • Library manifests can now reference item bodies by URL instead of
    inlining them (PRD-054 companion-fetch phase): ai_hook items honor
    bash_url / powershell_url (each requiring a matching *_sha256
    pin), and skill items install their companion_files (templates,
    helper scripts) alongside SKILL.md. Every companion fetch is
    HTTPS-bounded, sha256-verified against the manifest pin (no
    unverified fetch path), cached content-addressed under
    ~/.jarvy/library.d/companions/, and skill companion filenames are
    path-safety validated so a hostile manifest cannot escape the skill
    directory. New telemetry: library.companion.{fetched,sha_mismatch,fetch_failed,refused_filename}.
  • npm wrapper (packages/npm/, PRD-021): jarvy-mcp npm package that
    downloads the platform-native jarvy release binary on install
    (SHA256-verified against the release SHA256SUMS.txt, mirroring
    install.sh) and exposes jarvy-mcp (runs jarvy mcp) and jarvy
    bins. npx -y jarvy-mcp is now a zero-install MCP client command.
    Not yet published to npm — maintainer action.
  • Docker image (dist/docker/Dockerfile, PRD-021): multi-stage
    Alpine image that builds jarvy from source, runs as a non-root user,
    pins JARVY_MCP_WORKSPACE=/workspace, and defaults to the MCP server
    entrypoint. .github/workflows/docker-publish.yml builds
    linux/amd64 + linux/arm64 to ghcr.io/cliftonz/jarvy, gated on
    release tags / manual dispatch only.
  • MCP registry submission prep (dist/mcp-registry/, PRD-021):
    server.json for the official MCP registry
    (io.github.cliftonz/jarvy, validated against the 2025-12-11
    schema) plus maintainer submission runbook. Ownership proofs are
    pre-wired: mcpName in the npm package.json and the
    io.modelcontextprotocol.server.name OCI label in the Dockerfile.
    Not submitted — requires the maintainer to publish npm + ghcr first.
  • CI e2e coverage for Fedora, Arch, and Alpine via distro containers on
    the free ubuntu runner (PRD-014).
  • Published GitHub Action (top-level action.yml, PRD-017 phase 2):
    installs jarvy (checksum-verified) and runs validate/setup/doctor, with
    caching, outputs, and a problem matcher. Self-tested on
    ubuntu/macos/windows. Referenceable as Cliftonz/jarvy@v1 once tagged.
  • VS Code extension (editors/vscode/, PRD-017 phase 3): live
    jarvy.toml diagnostics, setup/doctor/validate commands, status bar,
    and an unknown-tool quick fix. Compiles clean under strict tsc.
  • JetBrains/IntelliJ plugin (editors/jetbrains/, PRD-017 phase 6):
    Tools ▸ Jarvy actions + a TOML ExternalAnnotator driven by
    jarvy validate. Builds via ./gradlew buildPlugin (IntelliJ Platform
    Gradle Plugin 2.x, JDK 21).
  • Consumable pre-commit hook (.pre-commit-hooks.yaml) and devcontainer
    feature (dist/devcontainer/jarvy/), PRD-017 phases 4–5.

Changed:

  • rust migrated from a bespoke installer to the define_tool! macro
    (so it can carry a default hook); removed a duplicate rust entry from
    the tool index.
  • Removed ~1.3k LOC of unwired diagnostic surface: the
    observability::{network_trace, bundle} modules (the latter duplicated
    the wired jarvy ticket bundler) and the per-tool/per-network arms of
    the profiler. --profile-output durations now serialize as integer
    *_ms, matching the duration_ms telemetry contract.

Fixes:

  • jarvy update --method binary now follows HTTP redirects when
    downloading release assets, fixing Checksum verification failed on
    every binary self-up...
Read more

v0.6.0-rc.2

v0.6.0-rc.2 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 12 Jul 20:05
v0.6.0-rc.2
64a3a1f
  • fix(update): follow redirects when downloading release assets (64a3a1f)

Full Changelog: v0.6.0-rc.1...v0.6.0-rc.2

Installation

Quick Install (Unix)

curl -fsSL https://raw.githubusercontent.com/Cliftonz/jarvy/main/dist/scripts/install.sh | bash

Quick Install (Windows PowerShell)

irm https://raw.githubusercontent.com/Cliftonz/jarvy/main/dist/scripts/install.ps1 | iex

Homebrew

brew install Cliftonz/tap/jarvy

Cargo

cargo install jarvy

Early-Release Channel

Pre-release tags (-rc.N, -beta.N) are routed through the beta channel.
Opt in: JARVY_CHANNEL=beta on the install script, or jarvy update --channel beta.
See docs/release-testing.md.

See installation docs for more options.

Security

Verify Signatures

All release artifacts are signed with Sigstore keyless OIDC. Verify any artifact:

# Substitute a triple that matches your platform, e.g.
# aarch64-apple-darwin, x86_64-unknown-linux-musl,
# aarch64-unknown-linux-gnu, x86_64-pc-windows-msvc (.zip).
ARTIFACT=jarvy-v0.6.0-rc.2-x86_64-unknown-linux-musl.tar.gz
BASE=https://github.com/Cliftonz/jarvy/releases/download/v0.6.0-rc.2
curl -LO $BASE/$ARTIFACT
curl -LO $BASE/$ARTIFACT.sig
curl -LO $BASE/$ARTIFACT.pem
cosign verify-blob \
  --signature $ARTIFACT.sig \
  --certificate $ARTIFACT.pem \
  --certificate-identity-regexp '^https://github\.com/Cliftonz/jarvy/\.github/workflows/release\.yml@refs/tags/v[0-9.]+(-[A-Za-z0-9.]+)?$' \
  --certificate-oidc-issuer 'https://token.actions.githubusercontent.com' \
  $ARTIFACT

Tag Signature

This release was cut from a signed git tag. Verify with:

git -c gpg.ssh.allowedSignersFile=.github/allowed_signers tag --verify v0.6.0-rc.2

SBOM

Software Bill of Materials in SPDX 2.3 (sbom.spdx.json) and CycloneDX 1.4 (sbom.cdx.json).

Checksums

SHA256 checksums for all artifacts are in SHA256SUMS.txt.


24h soak: PASSED — see #52 for the audit trail.

v0.6.0-rc.1

v0.6.0-rc.1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 12 Jul 18:34
v0.6.0-rc.1
6047101
  • chore(release): bump version to 0.6.0 (6047101)
  • feat(commands): add jarvy run command runner and nushell shell support (83af591)
  • fix(cargo-jarvy): scaffold generated uncompilable module wiring (a7ae221)
  • feat(tools): add k3s and microk8s local Kubernetes tools (72c4ce9)
  • Merge chore/docs-remove-edit-button (16649c5)
  • chore(docs): remove edit/view source buttons from doc pages (d148655)
  • Merge feat/tools-directory (148b8a3)
  • feat(docs): searchable tool directory with per-OS install commands (909ee6e)
  • Merge perf/logging-allocations (5c0c47e)
  • perf(logging): remove per-line allocations in log reading and stats (ec80d7a)
  • Merge feat/tool-todoist (2a1f2da)
  • feat(tools): add todoist CLI tool (8cc1a59)
  • Merge chore/jetbrains-platform-2025.3 (3f90c45)
  • chore(jetbrains): migrate to unified IntelliJ platform 2025.3 (2e666ae)
  • Merge chore/jetbrains-platform-2025.2 (00af2fc)
  • chore(jetbrains): build against IntelliJ platform 2025.2 (45e799f)
  • Merge chore/vscode-dep-security (fc86997)
  • chore(vscode): clear npm audit advisories in extension dev tooling (b6cfdc9)
  • Merge fix/git-config-review-round2 (66e51eb)
  • fix(git): round-2 hardening from parallel-review verification (87f931f)
  • fix(ci): don't let jarvy doctor's health exit code fail the action e2e (a540068)
  • test(e2e): headless VS Code integration + Action setup e2e (8501e93)
  • fix(git): harden [git.extra] from parallel-review findings (b9b6810)
  • ci(editors): PR-gated build/test workflows for the VS Code + JetBrains plugins (d4e5ba0)
  • Merge feat/git-config-extra-os-defaults (b97ba1e)
  • feat(git): [git.extra] escape hatch, OS-aware defaults, guardrails (47bad46)
  • feat(tools): add structurizr tool (C4 architecture models as code) (8e7681c)
  • docs: maintainer marketplace-publishing runbook (f307c11)
  • Merge remote-tracking branch 'origin/feat/jetbrains-plugin' (86bac24)
  • Merge remote-tracking branch 'origin/feat/vscode-extension' (95a642f)
  • Merge remote-tracking branch 'origin/feat/gh-action' (e21f6fc)
  • ci(jetbrains): marketplace publish workflow + signing config + release docs (1b2c0b4)
  • ci(vscode): marketplace publish workflow + release docs (e049901)
  • ci(action): independent action-vX version line + moving major tag (71c4b38)
  • chore(tasks): PRD-017 all six phases built in-repo (b5bf8b3)
  • feat(editor): JetBrains/IntelliJ plugin for jarvy (PRD-017 phase 6) (31d61ba)
  • ci(action-selftest): authenticate install with github.token (b175d0a)
  • Merge remote-tracking branch 'origin/main' into feat/gh-action (fb27bc8)
  • fix(install): bash-3.2-safe empty-array expansion in gh_api_fetch (13c3c0b)
  • Merge remote-tracking branch 'origin/main' into feat/gh-action (3179956)
  • fix(install): stop exit-1-after-success + harden GitHub fetches (148ab31)
  • feat(editor): VS Code extension for jarvy (PRD-017 phase 3) (dd02a3e)
  • feat(ci): publishable GitHub Action for jarvy (PRD-017 phase 2) (893b9ee)
  • feat(integration): consumable pre-commit hook + devcontainer feature (PRD-017) (67f7be6)
  • feat(doctor): add --check category filter + observability integration tests (cbb600a)
  • chore(tasks): reconcile PRD trackers with merged work (54c6889)
  • fix(skills): reconcile update path with companion-fetch after merge (a65dea5)
  • Merge branch 'feat/library-companion-fetch' (58b3f02)
  • Merge branch 'feat/mcp-distribution' (35d79f6)
  • Merge branch 'feat/skills-update-remove' (e2862f9)
  • Merge branch 'feat/new-tools-batch' (57e7177)
  • Merge branch 'chore/observability-cleanup' (27d6015)
  • feat(library): companion file fetch for hook bodies + skill companions (PRD-054) (255478b)
  • feat(dist): npm wrapper, Docker image, and MCP registry server.json (PRD-021) (40dc476)
  • feat(skills): add jarvy skills update/remove + ad-hoc install (PRD-049 ph2) (15a603c)
  • feat(tools): add 10 tools (testing, devops, network utilities) (5190ae3)
  • docs(skill): note codex review --base cannot take a focus prompt (6d1171b)
  • fix(observability): address parallel-review findings on the flag wiring (8bd1845)
  • chore(ci): Bump gitleaks/gitleaks-action from 2 to 3 (#44) (98821f9)
  • chore(ci): Bump codecov/codecov-action from 4 to 7 (#41) (e1aec49)
  • chore(tasks): reconcile stale trackers against verified codebase state (ba804cf)
  • ci(e2e): cover Fedora/Arch/Alpine via container jobs (PRD-014 T11) (bfbcf34)
  • feat(tools): add default hooks for rust, tmux, kubectx, nvim (ede1958)
  • fix(observability): wire setup logging/profiling flags; drop dead modules (661b759)
  • chore(ci): Bump actions/github-script from 8 to 9 (#42) (3747f13)
  • chore(ci): Bump anchore/sbom-action/download-syft from 0.17.9 to 0.24.0 (#40) (a9bf7ad)
  • docs: add Fable 5 model-routing guidance and codex shell-out skills (4849be0)
  • test(init): gate global-config tests behind test-bypass feature (d136a28)
  • ci: upgrade first-party GitHub Actions to the Node 24 runtime (ce27ee6)
  • docs(changelog): add Unreleased section for installer fixes (e3556b9)
  • test(install): add installer unit tests + e2e/lint workflows (b42d0dc)
  • fix(install): verify checksums and request the shipped Linux triple (257adc6)
  • chore: update contributors (#45) (4322d8d)
  • ci(release-paths): warn+skip binary-update when N-1/N-2 predates v0.5.2 (219e8a8)

Full Changelog: v0.5.2...v0.6.0-rc.1

Installation

Quick Install (Unix)

curl -fsSL https://raw.githubusercontent.com/Cliftonz/jarvy/main/dist/scripts/install.sh | bash

Quick Install (Windows PowerShell)

irm https://raw.githubusercontent.com/Cliftonz/jarvy/main/dist/scripts/install.ps1 | iex

Homebrew

brew install Cliftonz/tap/jarvy

Cargo

cargo install jarvy

Early-Release Channel

Pre-release tags (-rc.N, -beta.N) are routed through the beta channel.
Opt in: JARVY_CHANNEL=beta on the install script, or jarvy update --channel beta.
See docs/release-testing.md.

See installation docs for more options.

Security

Verify Signatures

All release artifacts are signed with Sigstore keyless OIDC. Verify any artifact:

# Substitute a triple that matches your platform, e.g.
# aarch64-apple-darwin, x86_64-unknown-linux-musl,
# aarch64-unknown-linux-gnu, x86_64-pc-windows-msvc (.zip).
ARTIFACT=jarvy-v0.6.0-rc.1-x86_64-unknown-linux-musl.tar.gz
BASE=https://github.com/Cliftonz/jarvy/releases/download/v0.6.0-rc.1
curl -LO $BASE/$ARTIFACT
curl -LO $BASE/$ARTIFACT.sig
curl -LO $BASE/$ARTIFACT.pem
cosign verify-blob \
  --signature $ARTIFACT.sig \
  --certificate $ARTIFACT.pem \
  --certificate-identity-regexp '^https://github\.com/Cliftonz/jarvy/\.github/workflows/release\.yml@refs/tags/v[0-9.]+(-[A-Za-z0-9.]+)?$' \
  --certificate-oidc-issuer 'https://token.actions.githubusercontent.com' \
  $ARTIFACT

Tag Signature

This release was cut from a signed git tag. Verify with:

git -c gpg.ssh.allowedSignersFile=.github/allowed_signers tag --verify v0.6.0-rc.1

SBOM

Software Bill of Materials in SPDX 2.3 (sbom.spdx.json) and CycloneDX 1.4 (sbom.cdx.json).

Checksums

SHA256 checksums for all artifacts are in SHA256SUMS.txt.


24h soak: PASSED — see #51 for the audit trail.