mirror of
https://github.com/thedotmack/claude-mem.git
synced 2026-09-20 04:23:02 +08:00
c61f8be53d
* docs(plans): plan-26 Telegram session wrap-ups from the Stop summary Alex, 2026-09-12: "the 'telegram session wrap-ups' are not derived of the stop hook summary, they're coming at the end of all turns. ALSO NOT scoped that way". Verified against this checkout: notifyTelegram fires per observation batch from the PostToolUse path (ResponseProcessor.ts:623-628), never from the summary path (:828-890); the plugin registers Stop (per turn) and no SessionEnd (plugin/hooks/hooks.json); delivery is one global chat with no route, no ledger. Claude Code docs give SessionEnd a 1.5 s budget that plugin timeouts cannot raise, so the hook must POST and exit. Plan: SessionEnd hook + /api/sessions/session-end; wrap-up text is the latest stored summary (getSummaryForSession, no new model call); SQLite ledger telegram_wrapups (schema v52) with atomic claim; JSON route map CLAUDE_MEM_TELEGRAM_WRAPUP_ROUTES with exact/parent match and reject on unknown; observation alerts behind a new default-off switch. Four Codex phases, each with exact files, bun tests and a stop line. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017DdeSScwheHym2T4xQ8cLW * feat(telegram): wrap-up ledger, routes and notifier (plan-26 phase 1) Baseline failures (pre-existing): - tests/worker/field-deadline-wire.test.ts — mandatory first-baseline failure - tests/infrastructure/plugin-distribution.test.ts — mandatory first-baseline failure Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017DdeSScwheHym2T4xQ8cLW * docs(telegram): mark plan-26 phase 1 complete * feat(telegram): SessionEnd hook, session-end route and wrap-up request (plan-26 phase 2) Verification: focused 2/2 + 2/2 + 9/9; CLI+HTTP 176/176; build/tsc green; full npm test 3758 pass, 28 skip, sole pre-existing field-deadline failure. Cold Node probe 0.197/0.172/0.170s failed pre-dispatch due inherited bun:sqlite Node incompatibility. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017DdeSScwheHym2T4xQ8cLW * docs(telegram): mark plan-26 phase 2 complete Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017DdeSScwheHym2T4xQ8cLW * feat(telegram): deliver wrap-up after the session-end summary lands (plan-26 phase 3) Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017DdeSScwheHym2T4xQ8cLW * docs(plan): mark telegram wrap-up Phase 3 complete Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017DdeSScwheHym2T4xQ8cLW * docs(telegram): wrap-up routes, alerts default off; plan-26 verification Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017DdeSScwheHym2T4xQ8cLW * docs(plan): mark telegram wrap-up Phase 4 complete Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017DdeSScwheHym2T4xQ8cLW * fix(telegram): recover SessionEnd wrap-up review findings Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017DdeSScwheHym2T4xQ8cLW --------- Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>