Troubleshooting
Reviews Not Triggering
The most common issue is commits going unreviewed. Walk through these checks in order.
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
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
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
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
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
- Quick Start: Initial setup and first review
- CLI Commands: Full command reference
- Review Hooks: Hook configuration and custom workflows