Troubleshooting
Reviews Not Triggering
Section titled “Reviews Not Triggering”The most common issue is commits going unreviewed. Walk through these checks in order.
Check the hook is installed
Section titled “Check the hook is installed”roborev uses a post-commit git hook to enqueue commits for review. Verify it exists:
# Resolves core.hooksPath (relative or absolute) against the main# repo root, falling back to .git/hooks. Works from linked worktrees.COMMON="$(git rev-parse --path-format=absolute --git-common-dir)"HP="$(git config core.hooksPath || true)"if [ -n "$HP" ]; then case "$HP" in /*) HOOKS="$HP" ;; *) HOOKS="${COMMON%/.git}/$HP" ;; esacelse HOOKS="$COMMON/hooks"ficat "$HOOKS/post-commit"A healthy hook contains a roborev enqueue call. You should see something like:
#!/bin/sh# roborev post-commit hook - auto-reviews every commitroborev enqueue --quiet 2>/dev/nullIf the file is missing, run roborev install-hook to create it.
Check the daemon is running
Section titled “Check the daemon is running”The hook enqueues commits, but the daemon must be running to process the queue. Check with:
roborev statusIf the daemon is stopped, start it:
roborev daemon startroborev init starts the daemon automatically, but it won’t survive a reboot unless you’ve set up a launchd/systemd service. If the daemon was running but reviews still aren’t appearing, check the daemon log for errors:
roborev daemon run 2>&1 | head -50Post-commit hook log
Section titled “Post-commit hook log”roborev logs every post-commit hook invocation to ~/.roborev/post-commit.log as JSONL. Each entry records a timestamp, the repository path, the outcome (ok or error), and a reason when the hook skips or fails. This is useful for diagnosing silent hook failures, especially in linked git worktrees where path resolution issues can prevent the hook from firing.
# View the last few hook invocationstail -5 ~/.roborev/post-commit.log | jq .Mangled hook file
Section titled “Mangled hook file”Other tools (Husky, lefthook, pre-commit, overcommit) can overwrite or corrupt the post-commit hook. Symptoms include:
- A stray
fiwith no matchingif - Missing
roborev enqueueline - The hook file containing only another tool’s boilerplate
To diagnose, inspect the hook file and look for the roborev enqueue call. If it’s missing or the file looks wrong, reinstall:
roborev install-hook --forceIf your repo uses a hook manager, you may need to add the roborev enqueue call to your hook manager’s post-commit configuration instead. See Review Hooks for details on hook managers and core.hooksPath.
The nuclear option
Section titled “The nuclear option”If the above steps don’t resolve the issue, reset everything:
Replace just the hook with a known-good version:
roborev install-hook --forceThis overwrites the existing post-commit hook entirely.
Full reset: re-initialize the repo, daemon, and hook from scratch:
roborev init --forceThis is the “nuke it from orbit” option: it re-registers the repo with the daemon, reinstalls the hook, and restarts the daemon. Use this when you’re not sure what’s wrong and want a clean slate.
See Also
Section titled “See Also”- Quick Start: Initial setup and first review
- CLI Commands: Full command reference
- Review Hooks: Hook configuration and custom workflows