Release Notes
Fixed
git-prism shim install now creates and manages a gh symlink alongside git, and the PATH-setup line targets a login-shell rc file. The gh interception added in v0.9.0 never took effect because install only ever created the git symlink, so gh pr diff reached the real gh. Install, status, and uninstall now manage both git and gh as a unit, with validate-then-apply atomicity (a refusal on one name no longer leaves the other half-installed) and provenance-aware handling of foreign and dangling symlinks (a user's own symlink — live or dangling — is no longer clobbered or removed without --force). The PATH-setup consent flow now appends the export PATH line to a file sourced by non-interactive login shells (.zprofile / .zshenv) rather than .zshrc, which those shells (including agent shells) skip. (#347)
- The PATH shim now emits OpenTelemetry telemetry from intercepted
git / gh commands. Shim mode previously returned without ever calling telemetry::init(), so the record_shim_* counters wrote nothing and GIT_PRISM_OTLP_ENDPOINT was never read — only the long-lived serve process emitted telemetry. The shim now initializes telemetry (quietly — no per-command banner on stderr) when an endpoint is configured and force-flushes before the process exits, including before the execvp on passthrough paths where a recorded metric would otherwise be lost. The flush is bounded (300 ms) so an unreachable collector cannot stall every intercepted git command. The reported service.version defaults to the crate version when GIT_PRISM_SERVICE_VERSION is unset or empty. (#348)
gh pr diff <N> now works when the PR head commit is not present locally. Previously the shim resolved the PR's base and head SHAs via gh pr view then attempted to build the diff from local objects, failing with Could not find ref '<sha>' for PRs whose head commit had never been fetched (e.g. squash-merged branches or first-time clones). The handler now checks local object presence via gix before building the manifest; when the head SHA is absent it fetches refs/pull/<N>/head from origin using the real git binary (the sanctioned shim-scoped exception to the gix-only rule — gix lacks network capability without optional features this project deliberately omits). The fetch is skipped entirely when the objects are already present, so existing workflows have no overhead. (#349)
Install git-prism 0.9.3
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/mikelane/git-prism/releases/download/v0.9.3/git-prism-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/mikelane/git-prism/releases/download/v0.9.3/git-prism-installer.ps1 | iex"
Install prebuilt binaries via Homebrew
brew install mikelane/tap/git-prism
Download git-prism 0.9.3