0.29.0
Generated files can be kept out of a commit. Until now commit scanned and signed everything in
the worktree — a limitation this project's own README named as a reason not to use it. .prikkignore
closes that gap. The rest of this release finishes the corrective program for the 2026-08-31 external
audit, including a correction to something 0.28.0's own notes claimed and only half delivered.
Added
-
.prikkignore— a worktree ignore mechanism. A file at the repository root, one rule per line,
each a literal repo-relative path prefix.targetmatchestargetand everything under it, never
target2ortargetfoo— whole path components, so a rule cannot over-match a differently-named
sibling. There is no globbing, no negation, no comments, and no per-directory files, and that
is a stated limit rather than a first step: an ignore syntax that nearly matched gitignore's
semantics would be worse than one that plainly does not attempt to.It binds at discovery only —
commit's worktree walk andworktree-status's, and nothing
else. Applying, replaying, verifying, and materializing history ignore it entirely, so two
repositories with different ignore files can never disagree about the same signed history.A rule can never hide a path that is already tracked, or one under an already-tracked path, so
adding a line cannot makecommitsee an existing file as deleted. A malformed.prikkignoreis
refused rather than treated as empty. No file at all means no rules: every existing repository
behaves exactly as it did before..prikkignoreis an ordinary tracked file, not configuration — it is committed, signed, and
travels throughbundleandsynclike anything else.
Fixed
- A full-disk stdout and stderr together no longer exits
101.0.28.0's notes announced this
fix and delivered half of it: the single-stream case was corrected, while
prikk verify >/dev/full 2>/dev/fullstill panicked, because the error report itself panicked on
its own failed write. The exit code now stays inside the ruled0/1/2vocabulary even when the
message cannot be delivered anywhere. sealandmergenow report a bad flag as the usage error it is. Both acquired the maintainer
signing key before parsing their arguments, soprikk seal --nonsensewith no key configured
reported "maintainer signing is required" and exited1. It now exits2with the argument error,
matchingcommitandrollback-draft.
Changed
- A worktree path that is not valid UTF-8 is now reported as an invalid name rather than as a
repository integrity failure. An empty path remains an integrity failure. - Three internal
update_seqincrements now refuse rather than wrap on overflow — unreachable in
ordinary use, changed for consistency with the ref-log's existing checked arithmetic. - The workspace now denies
unwrap,expect, and direct indexing in product code at build time
rather than warning, the patch algebra gained oracle-backed property tests, and the three
check-only CI workflows declarecontents: readexplicitly.
Prebuilt binaries
Linux (aarch64/x86_64), Windows (x86_64), macOS (aarch64). Each archive contains the prikk binary, LICENSE, and a sibling .sha256
checksum plus .build-info.txt recording the exact toolchain and command used to build
it — reproduce with:
git checkout <tag> && cargo build -p prikk --release --target <triple> --lockedcargo install prikk remains the toolchain-based install path; these binaries are an
additional option, not a replacement.
macOS binaries are unsigned. Gatekeeper will warn on first run — right-click (or Control-click) the binary and choose Open, or clear the quarantine attribute directly with xattr -d com.apple.quarantine <path>. Notarization needs an Apple Developer identity and is a stated gap for a future increment, not an oversight.
Release authority — read before relying on this release
This release does not pass the DC-35 signer-authority audit, and does not claim to. The
committed release-signer set (release-signers.toml) is empty and fail-closed, so no release
currently satisfies that gate. A checksum published beside a binary on this page proves integrity of
transport, not authority of origin. Verify what you obtain by content, not by release authority —
see prikk verify and this project's
release-compatibility reference.