v13.24.8
Bugfix patch — eight fixes that landed after 13.24.7.
Cloud sync
- Stale device-id outbox heads: ops stamped with a stale
origin_device_idthat the server rejects with400 invalid_opsare now quarantined instead of blocking the whole sync outbox forever (#3973)
Hooks & sessions
resumematcher: the SessionStart hook now fires onclaude --resume, so resumed sessions get memory context injected (#3969)- Empty-string cwd: an empty
cwdis treated as absent and falls through to the normal fallbacks instead of resolving to the wrong project (#3977)
Worker / runtime
- bun-runner EPIPE:
child.stdinnow has an error listener, so a worker that exits early no longer crashes the hook with an unhandled EPIPE (#3976) - Bun socket closed: Bun's "socket connection was closed" error is classified as worker-unavailable, so it takes the graceful fallback path rather than surfacing as a hard failure (#3978)
Providers
- OpenRouter detection: OpenRouter is classified by exact hostname, not a URL substring match, so lookalike base URLs are no longer misrouted (#3979)
Database
- session_summaries FK cascade:
ON UPDATE CASCADEis preserved when thesession_summariestable is rebuilt by migrations (#3980)
CI
- grammar-lib-reuse test: fixed a CI timeout and an inter-test state leak (#3975)
Upgrade: npx claude-mem@13.24.8 or update the plugin from the marketplace.