Skip to content

fix: the daemon's git runs no hooks, a stale worktree is cut again, and a long reason no longer widens its card - #95

Merged
fiddur merged 2 commits into
developfrom
inbox-hooks-width
Sep 7, 2026
Merged

fix: the daemon's git runs no hooks, a stale worktree is cut again, and a long reason no longer widens its card#95
fiddur merged 2 commits into
developfrom
inbox-hooks-width

Conversation

@fiddur

@fiddur fiddur commented Sep 7, 2026

Copy link
Copy Markdown
Collaborator

Three things the inbox page showed this morning.

  • The daemon ran the checkout's hooks. NCBackend3's clone has core.hooksPath=.husky/_, and its post-checkout runs pnpm install --frozen-lockfile and pnpm build. Every git worktree add and checkout the daemon made ran that script — slowly, sometimes failing ("Command failed: git worktree add … Preparing worktree … Packages are hard linked …"), and with the reviewer's full environment, which is exactly what the review agent is denied. The hook script is part of the checked-out tree, so it is the pull request author's code. Every git call in worktree.ts now runs with core.hooksPath=/dev/null and GIT_TERMINAL_PROMPT=0. A test wires a marking hook the way husky does, confirms a plain checkout runs it, and confirms prepareWorktree does not.
  • A stale worktree directory failed forever. #14545's directory had a .git file pointing at a registration the clone no longer had, so the "existing worktree" path failed on checkout every tick. That path now falls back to removing and cutting again; removeWorktree deletes the directory whatever git made of it and prunes, so a leftover directory never blocks add again.
  • Wide cards. A card inside a flex .entry had min-width: auto, so a long status reason grew it past the page. min-width: 0 keeps it in the card; the full reason, wrapped, is on hover.

Bumps to 0.10.21.

🤖 Generated with Claude Code

https://claude.ai/code/session_01Bwp5QefjsjMFeq6CK6cT6w

fiddur and others added 2 commits September 7, 2026 14:09
…nd a long reason no longer widens its card

A checkout's hook scripts are the pull request author's code, and the daemon runs with the
reviewer's credentials: husky's post-checkout in a checkout ran pnpm install and pnpm build
on every worktree add, slowly, sometimes failing, and with everything the agent is denied.
Every git call the daemon makes now runs with core.hooksPath pointed at nothing. A worktree
directory whose registration in the clone is gone is deleted and cut again instead of
failing on checkout, and removeWorktree deletes the directory whatever git made of it and
prunes. On the page, a card inside a flex row could grow with its status reason; it keeps
its width now, and the full reason is on hover.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Bwp5QefjsjMFeq6CK6cT6w
A directory with a .git directory is a repository of its own — the clone, or whatever a
misconfigured worktreesDir points at — and is refused; only a .git file or none is disposable.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Bwp5QefjsjMFeq6CK6cT6w
@fiddur
fiddur marked this pull request as ready for review September 7, 2026 12:14
@fiddur
fiddur merged commit 269ae6a into develop Sep 7, 2026
2 checks passed
@fiddur
fiddur deleted the inbox-hooks-width branch September 7, 2026 12:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant