#1388: a version-conflicted daemon is an actionable broken state, unlike a * merely absent one - and stdout is the only hook channel Claude Code * surfaces, so stderr-only reporting reads as eternal silence in-session. * Emit a throttled systemMessage with restart guidance (the misleading * "no daemon is running" text pointed at `daemon start`, which cannot heal a * build conflict). */
| 1681 | * "no daemon is running" text pointed at `daemon start`, which cannot heal a |
| 1682 | * build conflict). */ |
| 1683 | static void main_hook_report_conflicted_daemon(const char *hook_dialect) { |
| 1684 | if (hook_dialect || !main_hook_absent_notice_due()) { |
| 1685 | return; |
| 1686 | } |
| 1687 | const char *notice = cbm_hook_admission_notice(CBM_HOOK_ADMISSION_BUILD_CONFLICT, hook_dialect); |
| 1688 | if (notice) { |
| 1689 | (void)fputs(notice, stdout); |
| 1690 | (void)fflush(stdout); |
| 1691 | } |
| 1692 | } |
| 1693 | |
| 1694 | static int main_run_hook_frontend(cbm_daemon_runtime_client_t *client, const char *hook_event, |
| 1695 | const char *hook_dialect) { |
no test coverage detected