Development record
TestThePromptHookShowsEachAnnouncementOnce (internal/surface/cli/status_hook_test.go) runs the prompt hook at the shipped one-second budget with the status read capped at its shipped 600 ms, and asserts the announcement is shown, so a loaded runner can spend the read's share and fail it the way iss-2610180712063858 failed. Its budget is part of what it tests (the hook returns inside its second with an origin that would hang), so stretching the budget there is a choice about what the test proves, not a tolerance fix.
issueresolvedminoriss-2610180735158998
TestThePromptHookShowsEachAnnouncementOnce (internal/surface/cli/status_hook_test.go) runs the prompt hook at the shipped one-second budget with the status read capped at its shipped 600 ms, and asserts the announcement is shown, so a loaded runner can spend the read's share and fail it the way iss-2610180712063858 failed. Its budget is part of what it tests (the hook returns inside its second with an origin that would hang), so stretching the budget there is a choice about what the test proves, not a tolerance fix.
Frontmatter
| id | iss-2610180735158998 |
|---|---|
| type | issue |
| lifecycle | resolved |
| severity | minor |
.abcd/work/issues/resolved/iss-2610180735158998-testtheprompthookshowseachannouncementon.md
open on GitHub ↗ · commit history ↗
mentions2
- iss-2610180712063858TestTheHooksDeadlineStartsWithTheHook (internal/surface/cli/status_hook_test.go, the second half's assertion) failed on the merge queue's Linux check for docs-only pull request #1089 (merge-group run 39104650787, job check (ubuntu-latest), 2026-10-18T06:44Z): under the one-second hook budget the next prompt rendered 'status unavailable: no time was left to read it at this prompt' instead of the announcement. The test took 1.83s, and the package 253s beside a 349s implement/loop run on the same runner, so the shared one-second budget was spent by load before the read, and the test cannot tell that from a deadline started too early.
- iss-2610181153278714TestThePromptThatNamesTheSessionCarriesTheStatus (internal/surface/cli/status_hook_title_test.go) requires the status line in each of its four subtests under the shipped hook budget (one second) and status read cap (600 ms), with no override, so a loaded runner can spend the read's share and leave the status unavailable, failing it the way iss-2610180735158998 failed.