Highlights
🔐 Security observation types + Telegram notifier
- New observation types:
security_alert🚨 (high-priority, triggers notifications) andsecurity_note🔐 (low-priority). - Fire-and-forget Telegram notifier — MarkdownV2 formatting, per-observation error isolation, no token logging.
- Five env vars control behavior.
CLAUDE_MEM_TELEGRAM_ENABLEDmaster toggle defaults on (no-op without bot token + chat ID).
⚡ Stop hook: fire-and-forget summarize
- Eliminated the ~110s terminal block when a session ended. Summarize handler now enqueues and returns immediately.
- Server-side
SessionCompletionHandlerfinalizes off the hook's critical path (generator + HTTP fallback), with singleton sharing across the worker.
🐛 Hooks: worker-port precedence + Windows (#2086 / PR #2084)
- Hooks now resolve endpoint with the same precedence as the worker: env (
CLAUDE_MEM_WORKER_PORT,CLAUDE_MEM_WORKER_HOST) > settings.json > defaults. - Looser sed regex handles both quoted and unquoted JSON port values.
- Windows fallback to 37777 when per-uid formula doesn't apply.
🔧 Bug fixes (reviewer rounds on PR #2084)
- Don't remove in-memory session after a failed finalize; preserve crash-recovery state at 3 sites.
- Eliminate double-broadcast of
session_completedon fallback path. - Sync
DatabaseManager.getSessionByIdreturn type. TelegramNotifiernow respectssettings.json(not just env).- Hardcoded 🚨 emoji replaced with per-type mapping.
📝 Docs
version-bumpskill now coversnpm publish+ all 6 manifest paths sonpx claude-mem@<version>always resolves. Addsgit greppre-flight for new manifests.
⚙️ Chores
- 🤖 Generated with Claude Code
Full Changelog: v12.3.8...v12.3.9