Development record
In a checkout listed in ~/.abcd.noindex/dogfood-roots, every hook shim but the PreToolUse one hands its event to the dogfood build with no fall-back to the installed release if that build dies. hooks/user-prompt-submit.sh, subagent-stop.sh, pre-compact.sh, post-tool-use.sh and session-end.sh replace the installed binary with the build that hook dogfood-binary names and exec it, and session-start.sh runs it in the release's place; a build that crashes, is killed or exits with an error leaves the rules loader, the router reset, the transcript capture or the session-start checks undone for that event, with nothing run in its stead. The brief's dogfood store section says a hook never runs weaker than the release, and only hooks/pre-tool-use.sh implements that, by handing the command to the installed release when the dogfood guard answers exit 1 or dies. Found in the round-2 security review of the dogfood remote fix (iss-2610070547057816).
In a checkout listed in ~/.abcd.noindex/dogfood-roots, every hook shim but the PreToolUse one hands its event to the dogfood build with no fall-back to the installed release if that build dies. hooks/user-prompt-submit.sh, subagent-stop.sh, pre-compact.sh, post-tool-use.sh and session-end.sh replace the installed binary with the build that hook dogfood-binary names and exec it, and session-start.sh runs it in the release's place; a build that crashes, is killed or exits with an error leaves the rules loader, the router reset, the transcript capture or the session-start checks undone for that event, with nothing run in its stead. The brief's dogfood store section says a hook never runs weaker than the release, and only hooks/pre-tool-use.sh implements that, by handing the command to the installed release when the dogfood guard answers exit 1 or dies. Found in the round-2 security review of the dogfood remote fix (iss-2610070547057816).
Frontmatter
| id | iss-2610121240517742 |
|---|---|
| type | issue |
| lifecycle | resolved |
| severity | minor |
.abcd/work/issues/resolved/iss-2610121240517742-in-a-checkout-listed-in-abcd-noindex.md
open on GitHub ↗ · commit history ↗
mentions1
- iss-2610070547057816In abcd's own source checkout the person wants every abcd invocation, the plugin's hooks and command pages included, to run a build of the checkout's HEAD (dogfooding), and in every other repository to run the most recently installed stable release, so the two can always be compared. Today the hooks and the command pages resolve the plugin-root binary first, which is the last published release (v0.13.1 at 2026-10-07), so inside this checkout the guard, the loader and every slash command run stale code unless an agent knows to substitute go run ./cmd/abcd; the DOGFOODING rule in .abcd/rules.json teaches the agent but cannot reach the hooks. Automatic detection of abcd's source was rejected: a repository posing as abcd would get its own code run by the hooks, the hazard the hook shim's PATH rung already refuses (a binary inside the working tree).