squasher ask, Slack bot responses, API clients, and MCP Code Mode.
Threads
source, created_by, external_thread_id, archived_at, last_message_at, model_id, and the canonical incident UUID in incident_id when the conversation belongs to an incident. The list filter accepts either that UUID or the incident’s user-facing display ID.
Incident triage and fix runs share this durable thread. Messages posted in an incident’s Slack war room are written to the same record, so the dashboard, API, CLI, and MCP Code Mode can continue with the full context.
Messages
sequence, role, source, text, external message id, and author metadata. Human messages can carry author_name, author_image, and an authenticated user id. Assistant and system messages are attributed to Squasher.
Responses are ordered by sequence, not client timestamps. Replaying the same
message id, or the same source plus external message id, is idempotent. This
lets web, Slack, API, CLI, and MCP append concurrently without one surface
overwriting another surface’s messages.
Ask
ask creates or continues a shared thread and stores the question as a user message. Pass thread_id to continue an existing investigation.
Use /ask/stream for terminal-style interactive answers. It returns text/plain chunks as the assistant responds, then persists the assistant message back to the same thread.