Block a user
Stage 5: Alembic migrations, durable call rows, one transcript truth
Stage 2: thread ownership at the SIP boundary, leg-state wiring, task hygiene
Stage 1: mount MCP server, bearer auth, outbound-call guards
Stage 4: honest health, explicit error policy, event-bus integrity
Stage 3: composition root, core↔services cycle break, shared REST+MCP data layer
Stage 2: thread ownership at the SIP boundary, leg-state wiring, task hygiene
Stage 1: mount MCP server, bearer auth, outbound-call guards