Skip to content

Releases: vonzelle-vzt/herdr-extensions

v0.14.0 — review the agent's diff, and fix it

Choose a tag to compare

@vonzelle-vzt vonzelle-vzt released this 30 Jul 23:20

Turn herdr into a terminal IDE, in one command. Everything below is installed, keybound, collision-checked against herdr's own bindings, and completely reversible.

brew tap vonzelle-vzt/herdr-extensions https://github.com/vonzelle-vzt/herdr-extensions
brew trust vonzelle-vzt/herdr-extensions     # recent Homebrew requires this for third-party taps
brew install vonzelle-vzt/herdr-extensions/herdr-extensions
herdr-extensions install

What is new since v0.9

Review the agent's diff, and fix it. ctrl+b shift+k shows the diff against your branch's merge-base, rendered with delta when you have it. Cite a line (path:line your note), collect as many notes as you like, and send them all back to the agent with one key. Or type e path:line and open that line in the editor to fix it yourself — every other review plugin here is read-only, so editing from the review is the part nobody else has. p pushes the branch and opens a draft PR with your notes as the body.

Runtime errors, not just static analysis. The Problems panel already ran tsc, eslint and ruff. It now also reports console.error output and uncaught exceptions thrown by the app the Preview panel is driving, mapped back to file:line. No CDP client, no new dependency.

Send a picture. ctrl+b shift+i watches your screenshot folder, ~/Desktop and ~/Downloads, and types each new image's path to the agent. herdr cannot take a Finder drag-and-drop locally, so dragging the image to your Desktop becomes dragging it into the conversation.

AI commit messages in lazygit, drafted from the staged diff by your local claude CLI.

In the editor

herdr-edit gained autocomplete (Esc space), a command palette (Esc k), rename (Esc y), find-references (Esc j), an outline (Esc i), code actions (Esc l), inline git blame (Esc b), file bookmarks (Esc m), a diff view (Esc o) and Error Lens–style inline diagnostics.

Why this exists

Across the 417 plugins carrying the herdr-plugin topic, swept by keyword for lsp, autocomplete, refactor, formatter, symbol, lint, blame and intellisense, exactly two repos surface any of it: this one, and a thin launcher for a separate third-party IDE. The marketplace has excellent viewers; what it did not have is a real editor that can tell you an identifier does not exist without you running a build.

Verification

96 offline oracles across eight suites, plus a live gate that now derives its suite list from the tests directory rather than restating it. The editor's 14 Go packages pass under -race, and every LSP request is exercised against a real gopls — not just against hand-written JSON.

v0.9.1 — every install path actually works

Choose a tag to compare

@vonzelle-vzt vonzelle-vzt released this 30 Jul 06:58

A correctness release. v0.9.0 shipped with three broken install paths, and none of them was reachable from a development checkout — which is the only way this package had ever been run.

Fixed

  • 🔴 The editor never installed on a fresh machine. install_deps tapped cloudmanic/spice-edit — upstream, which ships spice-edit.rb only — while installing vonzelle-vzt/herdr-edit/herdr-edit from a tap it never added. Skipped entirely whenever an editor is already present, so it failed only on machines that had never worked.
  • 🔴 brew install had no formula to install. The README documented brew tap + brew install while there was no Formula/ directory. The tap succeeded; the install failed with "No available formula or cask".
  • 🔴 Neither install path could find its own files. REPO used abspath(__file__), which does not follow symlinks — and both paths put a symlink on PATH (install.sh does ln -sf, the formula links out of libexec). Every command needing a package file died with package file missing: <symlink dir>/plugin/herdr-plugin.toml.

version kept working throughout all three, because it needs no package files. That is precisely why running ./bin/herdr-extensions from a checkout never revealed any of it.

Added

  • doctor warns when the editor on PATH is behind the tap. A source-built editor never updates itself, while every push to the fork's main auto-tags a release — so the two drift silently, with the stale binary still first on PATH and still reporting success. The check reads the tapped formula on disk, so it stays offline; no tap means no check.

Verification

./tests/live-check.sh20 checks, 0 failures, delegating to six offline suites. New oracle 25 (tests/check-deps.sh, 5 checks) pins tap/install agreement and invocation through a symlink, mutation-verified by restoring both bugs.

Both install paths were then run end to end: brew audit --strict --online clean, brew fetch checksum verified, brew install + brew test passing with install --dry-run exit 0 from the keg, and the curl path cloning and linking with exit 0.

v0.9.0 — terminal IDE, one command

Choose a tag to compare

@vonzelle-vzt vonzelle-vzt released this 30 Jul 06:25

Turn herdr into a terminal IDE in one command. install brings the editor, lazygit, a Nerd Font and prettier, registers 11 panels, and injects 13 keybindings checked against herdr's own 39.

New

  • Preview panel (ctrl+b shift+a) — your dev server rendered inside a pane via headless Chrome + chafa, auto-refreshing. Probes for a listening port rather than reading package.json.
  • Image / screenshot paste (ctrl+b i) — stages a clipboard image and types its path to the agent. Terminals carry text, not image bytes; agents read paths natively.
  • Divider nudge (ctrl+b shift+l / shift+h) — one keypress per step, since herdr has no mouse divider drag and only a modal resize_mode.

Fixed

  • 🔴 The fresh install was broken. install_deps tapped cloudmanic/spice-edit while installing from vonzelle-vzt/herdr-edit — a tap it never added, so a machine without the editor failed with "No available formula… requires the tap vonzelle-vzt/herdr-edit." Invisible to anyone who already had the editor.
  • The split-vs-tab guard tested the requested width instead of the floors, sending the editor to its own tab across a 32-column band that works fine.
  • A workspace rooted at $HOME got no editor at all; the workspace label now resolves the project.
  • The release gate ran none of its own offline suites — it now delegates to all six.

Docs

Full README rewrite: About, on-screen and install-flow diagrams, a layer table, guides, and a comparison against VS Code / herdr / Orca. New docs/PRD.md and CLAUDE.md.

Verification

./tests/live-check.sh20 checks, 0 failures, delegating to 6 offline suites (panels 28, viability 7, project-resolve 7, image-paste 11, preview 8, deps 3). doctor exits non-zero and names any specific failure.