| 1661 | } |
| 1662 | |
| 1663 | static void main_hook_report_absent_daemon(const char *hook_dialect) { |
| 1664 | if (!main_hook_absent_notice_due()) { |
| 1665 | return; |
| 1666 | } |
| 1667 | (void)fprintf(stderr, "codebase-memory-mcp: no CBM daemon is running, so graph " |
| 1668 | "augmentation is skipped. Start an MCP session or run " |
| 1669 | "`codebase-memory-mcp daemon start` to enable it.\n"); |
| 1670 | const char *notice = cbm_hook_admission_notice(CBM_HOOK_ADMISSION_DAEMON_ABSENT, hook_dialect); |
| 1671 | if (notice) { |
| 1672 | (void)fputs(notice, stdout); |
| 1673 | (void)fflush(stdout); |
| 1674 | } |
| 1675 | } |
| 1676 | |
| 1677 | /* #1388: a version-conflicted daemon is an actionable broken state, unlike a |
| 1678 | * merely absent one - and stdout is the only hook channel Claude Code |
no test coverage detected