Skip to content

dibs v0.1.1

Latest

Choose a tag to compare

@mrzroot mrzroot released this 09 Oct 14:49
· 2 commits to main since this release

Tested end to end against the real Claude Code 2.1.295, Codex 0.162.0, Gemini CLI 0.63.0 and aider
0.86.2 (with a scripted local model, see scripts/e2e), and against the hook payloads and output
validators of the Cursor agent CLI 2026.10.01. Fixes for everything that turned up:

  • New dibs doctor [--json]: checks dibs is on PATH, the pre-commit hook really runs, Claude Code
    disableAllHooks, Codex hook trust (Codex skips untrusted project hooks silently), Gemini folder
    trust (Gemini ignores project settings in untrusted folders), disabled hooks, and logged hook errors.
  • Claude Code: the ask dialog does not show the hook's reason, so dibs adds a systemMessage for you.
  • Cursor: the turn brief now goes out with the prompt (beforeSubmitPrompt additional_context) and is
    repeated after the first tool call; the postToolUse matcher is Write|Delete|Shell (Cursor's real tool
    names). Cursor also runs .claude/settings.json hooks: dibs now recognises them so Cursor's work is not
    credited to Claude, and defers to its Cursor hooks when both are installed.
  • aider: dibs run passes the brief to aider with --read (it was printed but never reached the model),
    and prints a warning plus the dibs restore command when the run undid your lines.
  • pre-commit: the dibs line is inserted right after the shebang; appended after another tool's
    exec ... line it never ran.
  • Large repositories: dibs init on 30,000 files went from 52 s to 1.2 s (one git cat-file --batch-check
    instead of a process per file, faster scanning); hooks read only the tail of the journal
    (0.1–0.4 s per hook on that repository). scripts/bench.py measures it.
  • Lock: a lock is broken when its owner process died, and otherwise only after 120 s, so a slow scan is
    not interrupted by a second process.
  • dibs watch: keeps running through errors (each reported once), skips a round when a hook holds the
    lock, stops when the repository disappears, no longer pauses forever for an agent that crashed mid-turn
    (--agent-timeout, default 3 h), and backs off on big trees.
  • Init messages now say how to trust the hooks in Codex and Gemini.