This is the record of an abcd-managed repository

abcdBetav0.16.2 · 2026-11-06

Development record

2026-08-01 — itd-105 / spc-21 implementation: the plugin provisions its own binary from a committed POSIX-sh `hooks/bootstrap.sh` wired as the FIRST `SessionStart` hook, per spc-21's Decisions (fast path on an executable binary, darwin/linux × amd64/arm64 gate, atomic `mkdir` lock with a 10-minute stale break, same-origin SHA-256 against the release `checksums.txt`, atomic rename install, `.binary-meta` provenance). Three judgment calls a reviewer should see. (1) The script's TEST-ONLY overrides are TWO env vars, not one: `ABCD_BOOTSTRAP_BASE_URL` (download base, as spc-21 names) plus `ABCD_BOOTSTRAP_API_URL` (release-commit lookup base) — the release-sha resolution hits a different URL shape than the asset download, and folding both behind one variable would have made the fixture server lie about which endpoint was called. Both mirror `ABCD_BIN_TARGET`'s pattern. (2) `release_sha` is read from the commits API (`/commits/<tag>`), NOT the releases API's `target_commitish`: this repo tags annotated (`git tag -a`) and creates the release from an existing tag, so `target_commitish` is the default branch name rather than a commit — a value that would have made the skew notice compare a branch name against a SHA. A value that is not 40 hex is recorded as `unknown` and renders nothing. (3) spc-21's CI-smoke line ("the existing smoke job additionally runs `sh hooks/bootstrap.sh` against a fixture server on both OS runners") is satisfied WITHOUT touching workflow YAML: the script-driving test lives in `internal/surface/cli/bootstrap_test.go`, which `go test ./...` already runs on both legs of ci.yml's ubuntu+macos `check` matrix, and it shells out to the committed script against an `httptest` fixture exactly as the AC describes. A bespoke workflow step would have duplicated that coverage while adding background-process management to CI. Rejected: a PATH fallback in the hook commands (spc-21 forbids it); signature verification (out of scope, same-origin checksums are the accepted bar); guessing `plugin_sha` from `git rev-parse` when the plugin root is not a commit-stamped cache directory (the meta file never guesses).

decisiondcn-2608010000000005

2026-08-01 — itd-105 / spc-21 implementation: the plugin provisions its own binary from a committed POSIX-sh hooks/bootstrap.sh wired as the FIRST SessionStart hook, per spc-21's Decisions (fast path on an executable binary, darwin/linux × amd64/arm64 gate, atomic mkdir lock with a 10-minute stale break, same-origin SHA-256 against the release checksums.txt, atomic rename install, .binary-meta provenance). Three judgment calls a reviewer should see. (1) The script's TEST-ONLY overrides are TWO env vars, not one: ABCD_BOOTSTRAP_BASE_URL (download base, as spc-21 names) plus ABCD_BOOTSTRAP_API_URL (release-commit lookup base) — the release-sha resolution hits a different URL shape than the asset download, and folding both behind one variable would have made the fixture server lie about which endpoint was called. Both mirror ABCD_BIN_TARGET's pattern. (2) release_sha is read from the commits API (/commits/<tag>), NOT the releases API's target_commitish: this repo tags annotated (git tag -a) and creates the release from an existing tag, so target_commitish is the default branch name rather than a commit — a value that would have made the skew notice compare a branch name against a SHA. A value that is not 40 hex is recorded as unknown and renders nothing. (3) spc-21's CI-smoke line ("the existing smoke job additionally runs sh hooks/bootstrap.sh against a fixture server on both OS runners") is satisfied WITHOUT touching workflow YAML: the script-driving test lives in internal/surface/cli/bootstrap_test.go, which go test ./... already runs on both legs of ci.yml's ubuntu+macos check matrix, and it shells out to the committed script against an httptest fixture exactly as the AC describes. A bespoke workflow step would have duplicated that coverage while adding background-process management to CI. Rejected: a PATH fallback in the hook commands (spc-21 forbids it); signature verification (out of scope, same-origin checksums are the accepted bar); guessing plugin_sha from git rev-parse when the plugin root is not a commit-stamped cache directory (the meta file never guesses).

Frontmatter

iddcn-2608010000000005
typedecision
date2026-08-01

mentions3