v13.24.8

thedotmack/claude-memv13.24.8Sep 11, 2026by thedotmack

Upgrading?

AI Summary

This is a bugfix patch introducing eight fixes primarily focusing on Cloud sync stability, session handling improvements, and worker runtime errors. It resolves issues ranging from stale device IDs and EPIPE errors to incorrect OpenRouter detection and CI timeouts.

Key Highlights

  • Cloud sync now quarantines ops with stale device IDs instead of blocking the outbox.
  • The `resume` matcher now correctly fires the SessionStart hook for resumed sessions.
  • Bun runtime errors (EPIPE and socket closed) are now handled gracefully via fallback paths.
  • OpenRouter detection now uses exact hostname matching to prevent misrouting.

New Features

  • Quarantined ops with stale device IDs in Cloud sync.
  • Empty-string `cwd` now correctly falls back to normal project resolution.
  • Worker processes handle early exits and socket closures gracefully.
  • OpenRouter detection is now based on exact hostname matching.

Full Release Notes

## 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_id` that the server rejects with `400 invalid_ops` are now quarantined instead of blocking the whole sync outbox forever (#3973)

### Hooks & sessions
- **`resume` matcher**: the SessionStart hook now fires on `claude --resume`, so resumed sessions get memory context injected (#3969)
- **Empty-string cwd**: an empty `cwd` is treated as absent and falls through to the normal fallbacks instead of resolving to the wrong project (#3977)

### Worker / runtime
- **bun-runner EPIPE**: `child.stdin` now 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 CASCADE` is preserved when the `session_summaries` table 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.

Related Repositories