Installation Verification

August 30, 2026 ยท View on GitHub

Use this checklist for release/install-polish and for every release that claims the defaults-first operator loop.

The install promise is:

cargo install ripr
ripr pilot
# add one focused test
ripr outcome --before <before.repo-exposure.json> --after <after.repo-exposure.json>
ripr agent verify --before <before.repo-exposure.json> --after <after.repo-exposure.json> --json
ripr agent receipt --verify-json <agent-verify.json> --seam-id <seam_id> --json

ripr init may materialize repo policy, but it must not be required for the first useful CLI, editor, or CI experience.

Last Published Release Proof

The ripr 0.7.0 release was published and verified on 2026-05-20. The verified public loop covers ripr first-pr, zero-config ripr pilot, ripr outcome, ripr agent verify, ripr agent receipt, saved-workspace editor actions, first-run/start-here guidance, operator cockpit status, swarm repair-loop planning, and generated non-blocking CI artifacts.

Post-publish proof covered:

  • crates.io serving ripr 0.7.0;
  • public cargo install ripr --version 0.7.0 --locked;
  • installed CLI smoke for doctor, first-pr --help, first-pr, pilot, outcome, agent verify, and agent receipt;
  • GitHub Release v0.7.0 with VSIX, server manifest, checksums, and all supported server archives (Windows, Linux x86_64/aarch64, macOS x86_64/aarch64);
  • VS Marketplace serving EffortlessMetrics.ripr@0.7.0;
  • Open VSX serving EffortlessMetrics.ripr@0.7.0.

Release execution also verified the Windows server archive checksum, the downloaded VSIX package version, marketplace listing routes, and the public-copy boundary. Isolated marketplace install smoke remains useful post-release hygiene, but the 0.7.0 public availability claim is already verified by the release closeout.

Next Release-Candidate Proof

Use this section for the next unreleased line. Until the maintainer tags, publishes, and verifies new public artifacts, do not claim crates.io, GitHub Release, VS Marketplace, or Open VSX availability for that next version.

Pre-publish proof should record:

  • local package and publish dry-run success;
  • packaged-crate-installed ripr --version, ripr --help, and ripr doctor;
  • an external Cargo fixture (including a path with spaces) exercised by the installed binary for check --write-artifact, exact diff, typed explain, typed context, and bounded pilot, with the resulting packet and summary retained in a platform receipt;
  • generated CI dry-run with start-here/advisory gate boundaries;
  • VSIX packaging success;
  • one external-adopter smoke showing an installed binary can find one Rust repairable gap, produce a bounded packet or no-action state, add one focused proof outside ripr, and verify static movement.

The release-readiness gate writes target/ripr/release-readiness/packaged-cli-journey-<os>.json for each platform that runs it. The receipt records the packaged binary, independent fixture base/head identities, and executed commands. The readiness check reports retained JSON artifacts alongside the receipt. A Windows-only or Linux-only receipt is not a cross-platform qualification: the release handoff must name the missing platform when the other hosted lane has not run.

The installed binary's identity probe is intentionally narrower than every other CLI command: ripr --version and ripr -V must exit 0 and emit exactly ripr <package version> followed by one newline on stdout, with empty stderr. The top-level version flag takes precedence over leading help, JSON, and verbose-looking flags; it must not print help, parse repository configuration, analyze a workspace, or write artifacts. Command-local version contracts, such as ripr lsp --version, remain distinct. This is a package identity check, not release qualification.

Previous Release Proof

The ripr 0.5.0 release was published and verified on 2026-05-10. The verified public loop covered zero-config ripr pilot, ripr outcome, ripr agent verify, ripr agent receipt, saved-workspace editor actions, operator cockpit status, and generated non-blocking CI artifacts.

Post-publish proof covered:

  • crates.io serving ripr 0.5.0;
  • public cargo install ripr --version 0.5.0 --locked;
  • installed CLI smoke for doctor, pilot, outcome, agent verify, and agent receipt;
  • GitHub Release v0.5.0 with VSIX, server manifest, checksums, and all supported server archives (Windows, Linux x86_64/aarch64, macOS x86_64/aarch64);
  • VS Marketplace serving EffortlessMetrics.ripr@0.5.0;
  • Open VSX serving EffortlessMetrics.ripr@0.5.0.

Older Release Proof

The ripr 0.4.0 release was published and verified on 2026-05-07. The verified public loop covered zero-config ripr pilot, ripr outcome, ripr agent verify, ripr agent receipt, saved-workspace editor actions, operator cockpit status, and generated non-blocking CI artifacts.

Post-publish proof covered:

  • crates.io serving ripr 0.4.0;
  • public cargo install ripr --version 0.4.0 --locked;
  • installed CLI smoke for doctor, pilot, outcome, agent verify, and agent receipt;
  • GitHub Release v0.4.0 with VSIX, server manifest, checksums, and all supported server archives;
  • Windows server archive checksum matching the manifest;
  • extracted Windows server smoke for ripr --version, ripr lsp --version, pilot, outcome, agent verify, and agent receipt;
  • VS Marketplace serving EffortlessMetrics.ripr@0.4.0;
  • Open VSX serving EffortlessMetrics.ripr@0.4.0;
  • isolated VS Code install smoke from VS Marketplace and from the Open VSX VSIX download.

Pre-Publish Local Proof

Run these before publishing:

cargo package -p ripr --list
cargo publish -p ripr --dry-run

The authoritative packaged-crate install proof is produced by VERSION="0.11.0" cargo xtask release-readiness --version "$VERSION". It packages the requested crate, extracts it outside the source checkout, installs from that extracted source, compares the installed binary with the workspace build, and exercises ripr doctor --root <external-fixture> --json. It then runs the installed binary against an independent Cargo/Git fixture for check, exact diff, explain, context, and bounded pilot, retaining the check artifact, agent-seam packet, pilot summary, and platform receipt. The path-install smoke below is supplemental operator-loop coverage and must not be used as a substitute for that package-boundary receipt.

Install from the checked-out package into a local temp root and exercise the operator loop with checked examples. The checked fixture is only the repeatable release smoke input; the installed binary must not depend on the ripr source checkout for normal use.

cargo install --path crates/ripr --locked --root target/ripr/install-smoke-path --force
target/ripr/install-smoke-path/bin/ripr --version
target/ripr/install-smoke-path/bin/ripr first-pr --help
target/ripr/install-smoke-path/bin/ripr pilot \
  --root fixtures/boundary_gap/input \
  --out target/ripr/install-smoke-path/pilot
target/ripr/install-smoke-path/bin/ripr outcome \
  --before fixtures/boundary_gap/calibration/before-targeted-test.repo-exposure.json \
  --after fixtures/boundary_gap/calibration/after-targeted-test.repo-exposure.json
mkdir -p target/ripr/install-smoke-path/agent
target/ripr/install-smoke-path/bin/ripr agent verify \
  --root . \
  --before fixtures/boundary_gap/calibration/before-targeted-test.repo-exposure.json \
  --after fixtures/boundary_gap/calibration/after-targeted-test.repo-exposure.json \
  --json > target/ripr/install-smoke-path/agent/agent-verify.json
target/ripr/install-smoke-path/bin/ripr agent receipt \
  --root . \
  --verify-json target/ripr/install-smoke-path/agent/agent-verify.json \
  --seam-id 67fc764ba37d77bd \
  --json \
  --out target/ripr/install-smoke-path/agent/agent-receipt.json

On Windows, use target\ripr\install-smoke-path\bin\ripr.exe.

Also confirm the generated CI and editor first-run front doors before release:

VERSION="0.11.0" cargo xtask release-readiness --version "$VERSION"

The readiness report must show that generated GitHub CI includes #### First-run status, missing_start_here, and target/ripr/reports/start-here.md; it must also verify that the VS Code manifest contributes ripr: Start Current Repair.

Public Cargo Install Proof

After publishing to crates.io, run the same smoke from an isolated install root. Use the version being verified so an older cached or latest crate cannot mask a release mistake:

cargo install ripr --version 0.7.0 --locked --root target/ripr/install-smoke-cratesio --force
target/ripr/install-smoke-cratesio/bin/ripr --version
target/ripr/install-smoke-cratesio/bin/ripr first-pr --help
target/ripr/install-smoke-cratesio/bin/ripr pilot \
  --root fixtures/boundary_gap/input \
  --out target/ripr/install-smoke-cratesio/pilot
target/ripr/install-smoke-cratesio/bin/ripr outcome \
  --before fixtures/boundary_gap/calibration/before-targeted-test.repo-exposure.json \
  --after fixtures/boundary_gap/calibration/after-targeted-test.repo-exposure.json
mkdir -p target/ripr/install-smoke-cratesio/agent
target/ripr/install-smoke-cratesio/bin/ripr agent verify \
  --root . \
  --before fixtures/boundary_gap/calibration/before-targeted-test.repo-exposure.json \
  --after fixtures/boundary_gap/calibration/after-targeted-test.repo-exposure.json \
  --json > target/ripr/install-smoke-cratesio/agent/agent-verify.json
target/ripr/install-smoke-cratesio/bin/ripr agent receipt \
  --root . \
  --verify-json target/ripr/install-smoke-cratesio/agent/agent-verify.json \
  --seam-id 67fc764ba37d77bd \
  --json \
  --out target/ripr/install-smoke-cratesio/agent/agent-receipt.json

The installed version must be the release being verified. If crates.io still serves an older version, the defaults-first public install is not verified. The fixture paths are for this repository's release smoke; a user should be able to run the same commands against any Rust/Cargo workspace without checking out the ripr source.

GitHub Release Server Proof

After the server-binary workflow runs for the release tag, verify that the GitHub Release has:

ripr-server-manifest-v<VERSION>.json
SHA256SUMS
ripr-server-v<VERSION>-x86_64-pc-windows-msvc.zip
ripr-server-v<VERSION>-x86_64-unknown-linux-gnu.tar.gz
ripr-server-v<VERSION>-aarch64-unknown-linux-gnu.tar.gz
ripr-server-v<VERSION>-x86_64-apple-darwin.tar.gz
ripr-server-v<VERSION>-aarch64-apple-darwin.tar.gz

Then download the archive for the current platform, verify the SHA-256 from the manifest or sidecar checksum, extract it, and run:

ripr --version
ripr lsp --version
ripr pilot --root fixtures/boundary_gap/input --out target/ripr/release-server-smoke/pilot
ripr outcome \
  --before fixtures/boundary_gap/calibration/before-targeted-test.repo-exposure.json \
  --after fixtures/boundary_gap/calibration/after-targeted-test.repo-exposure.json
mkdir -p target/ripr/release-server-smoke/agent
ripr agent verify \
  --root . \
  --before fixtures/boundary_gap/calibration/before-targeted-test.repo-exposure.json \
  --after fixtures/boundary_gap/calibration/after-targeted-test.repo-exposure.json \
  --json > target/ripr/release-server-smoke/agent/agent-verify.json
ripr agent receipt \
  --root . \
  --verify-json target/ripr/release-server-smoke/agent/agent-verify.json \
  --seam-id 67fc764ba37d77bd \
  --json \
  --out target/ripr/release-server-smoke/agent/agent-receipt.json

The VS Code extension relies on these assets for first-run self-provisioning.

VS Code Package Proof

Package the extension from the repository root:

npm --prefix editors/vscode run package

The VSIX version must match editors/vscode/package.json. Before publishing the extension, confirm that the matching GitHub Release server manifest is already available. The extension resolves the server in this order:

ripr.server.path
bundled server binary, if present
downloaded cached server binary
verified first-run download from GitHub Releases
ripr on PATH
actionable error

Normal editor installs should not require cargo install ripr; that remains a fallback for offline, pinned, or controlled environments.

Known Limits

These limits are intentional for the defaults-first release:

  • no runtime mutation execution by default;
  • no CI blocking by default;
  • no runtime mutation outcome language in static outputs;
  • no unsaved-buffer analysis overlays by default;
  • no automatic Rust or Cargo installation in the editor extension;
  • no platform-specific VSIX packages with bundled native binaries yet.