What an investigation contains
A hypothesis on the timeline has a verdict:
open, supported, or rejected. Evidence links to the
data that Squasher read, such as a trace, a log query, or a deployment.
Start an investigation
You can start an investigation from a question, from a subject, or from both. A subject is an incident, an issue, a finding, a monitor, a release, a service, an entity, a trace, or an agent session.- In the dashboard, open the chat of an incident and select Investigate now. On an issue, select Investigate in the issue header.
- With the CLI, run
squasher investigations startwith--question, a subject, or both. - With the API, call
investigations.create. See the Investigations API. - With MCP, an agent can list, read, start, steer, and cancel investigations, and add notes.
Steer or cancel an investigation
Add a note to give Squasher context, such as “We deployed the payments service at 10:02”. A note goes on the timeline. A redirect changes the direction of the work, such as “Check the database connection pool first”. Squasher records the redirect and continues in that direction. A redirect also works after a diagnosis: Squasher reopens the work to follow the new direction. Cancel stops an active investigation. You can add a reason. You cannot steer a cancelled investigation. Project members can start, steer, and cancel investigations.Approve or reject an action
While it investigates, Squasher can propose an action. Squasher only proposes. It never runs an action without a person’s approval. Each proposal shows:- The exact target, such as one issue, one service, or one incident.
- Bounded parameters, such as the environment or the text of a status page update.
- A risk class:
low,medium, orhigh. - An expiry time. A proposal expires after 1 hour by default, and after at most 24 hours. You cannot approve an expired proposal.
- It checks the precondition, for example that the issue still exists. If the check fails, the action does not run.
- It calls the provider one time.
- It checks the postcondition, for example that the new deployment exists.
When the result is unknown
Sometimes Squasher cannot see the result. For example, the provider does not answer in time after Squasher sent the call. Then the action status isunknown, and the dashboard shows “Result
unknown — checking”. Squasher does not run the action again. It reads the provider to find out if
the change happened, and then sets the status to succeeded or failed.
When the provider cannot tell, an owner or admin checks the provider and settles the result with
Mark as succeeded or Mark as failed. Squasher reads the provider first; your mark counts
only when the provider still cannot tell.
When you cancel an investigation, its open proposals expire.
Supported actions
A fix pull request starts an auto-fix run. The run opens a pull request only
after its tests pass, and nothing merges without your review. A status page update needs an incident
that is published on a status page. Railway actions need a
Railway connection.
Use the CLI
--project or SQUASHER_PROJECT_ID. squasher actions approve
and squasher actions reject ask you to confirm. Add --yes to skip the prompt. Add --json to any
command for machine-readable output. Approve, reject, and resolve use the session from
squasher login, not an API key.
Next steps
Investigations API
Start, steer, and decide from your own tools.
Squasher Agent
Ask follow-up questions in chat or Slack.