v13.1.0
thedotmack/claude-memv13.1.0May 11, 2026by thedotmack
AI Summary
This release lands the full server-beta event pipeline with Postgres + BullMQ, API-key auth, team/project scope, audit logging, and support for Anthropic, OpenAI, and Google AI providers.
Key Highlights
- Event pipeline: agent_event → observation_generation_jobs → BullMQ worker → observation
- API surface: POST /v1/events, session start/end, generation-job management
- Legacy compatibility adapters for existing worker clients
- Three AI generation providers: Anthropic, OpenAI, Google
- Docker/Compose stack with bin/server-beta-cli for local operators
New Features
- Full event-to-observation pipeline with idempotent enqueue
- API-key authentication with team/project scope
- Per-team-project scope enforcement and error classification
- Generation-job retry/cancel surface
- Dedicated MCP server
Full Release Notes
## Server-beta event pipeline (phases 4–13) This release lands the full server-beta track developed on `server-beta-phase-4-event-pipeline` — a self-contained Postgres + BullMQ event-to-observation pipeline with API-key auth, team/project scope, audit log, three AI providers (Anthropic, OpenAI, Google), a dedicated MCP server, legacy compat adapters for existing worker clients, a Docker/Compose stack, and a generation-job retry/cancel surface. ### Highlights - **Event pipeline**: `agent_event` → `observation_generation_jobs` (outbox) → BullMQ worker → `observation` row. Idempotent enqueue, request-id propagation end-to-end, structured audit log. - **API surface**: `POST /v1/events`, `POST /v1/sessions/start`, `POST /v1/sessions/:id/end`, generation-job list/retry/cancel, MCP routes, scoped reads. - **Legacy compat**: `/api/sessions/observations` and `/api/sessions/summarize` shims map legacy worker payloads into the new event/job model without touching worker code. Both shims now wrap session lookup in their try/catch so Postgres failures return structured JSON, and `resolveServerSession` survives TOCTOU races via 23505 catch-and-refetch. - **POST /v1/sessions/start** also catches 23505 on concurrent start with the same `externalSessionId` and refetches the winning row instead of returning 500. - **Generation providers**: Anthropic, OpenAI, and Google with per-team-project scope enforcement and error classification. - **Docker / Compose stack** and `bin/server-beta-cli` for local operator workflows. ### Bug fixes - `resolveServerSession` Postgres errors no longer escape `asyncHandler.catch(next)` and return HTML 500s to legacy clients. - `POST /v1/sessions/start` no longer returns 500 to the loser of a concurrent same-`externalSessionId` race. Full PR thread: #2383.