> ## Documentation Index
> Fetch the complete documentation index at: https://docs.squasher.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# AI diagnosis

> See evidence-backed cause, impact, owner, and next action on new error groups.

AI diagnosis is a short-lived context assembly step. It attaches a structured result to a new error group, then ends. Remediation starts separately only when the diagnosis explicitly recommends a reviewable fix and the project's response policy allows it.

When a diagnosis returns no supporting evidence references, its notification marks the evidence as incomplete. Squasher does not start automatic remediation from that diagnosis. The run history records why automatic remediation was skipped so a responder can inspect the missing context. References that are present still need review; their presence alone does not prove the diagnosis.

## Issues in the dashboard

The dashboard calls grouped runtime failures **Issues**. One issue can contain many matching error
events. The Issues page is a response queue: filter it by lifecycle, priority, service, environment,
or search text, then assign an owner or change the workflow state.

An issue detail uses four stable views:

* **Overview** for current impact, owner, state, and next action.
* **Evidence** for logs, traces, suspect commits, replay, and similar issues.
* **Resolution** for diagnosis, fix runs, and resolution proof.
* **Activity** for comments and workflow history.

The public API and CLI keep the compatibility names `errors`, `error_group_id`, and `/errors`. See
the [Error groups API](/api-reference/errors) when an agent or integration needs the public contract.

## Chat with Squasher Agent

Open **Agent** in your project for a dedicated conversation workspace. Use **New chat** to start a separate investigation, or select a recent chat to load its saved messages and context. The dashboard sidebar and top navigation remain visible around the chat. **Search chats** searches conversation titles across the project, including older and archived threads; it returns up to 50 matching conversations.

Type a message and press **Enter** to send it. Use **Shift + Enter** for a new line. Select **Stop response** to interrupt a response. You can scroll through earlier messages while a response arrives, then use **Jump to latest message** to return to the latest reply.

Select **Attach files** to add text, logs, code, JSON, CSV, or configuration files. You can attach up to five UTF-8 files, each at most 40 KB. The message and encoded file contents together must fit within 100,000 characters. Images, PDFs, and binary files are not supported. File contents are saved with your message and remain available when you reopen that chat. Remove secrets before sending files.

Messages show sender names, role icons, and timestamps. Responses appear as they arrive and support headings, lists, tables, links, and code blocks. If a response is interrupted, the text already received remains visible with an error notice. Use **Copy response** to copy a reply, or expand an attached file to inspect its saved contents. On small screens, **Open recent chats** opens the conversation list.

## What you get

* A concise summary and likely cause.
* Impact, severity, and confidence.
* An inferred service/team owner with confidence.
* Bounded evidence references.
* A smallest next action and one explicit disposition: remediate, needs human, or no safe fix.
* A similar issues panel on each issue detail page with deterministic matches and reason labels.
* Actionable SDK attributes, when present, such as `error.why`, `error.fix`, `error.link`, and `error.status`.

## How to use it well

* Send rich application context with an SDK when possible.
* Add short, safe actionable attributes when your code already knows what failed and how to respond.
* Upload [source maps](/sdks/source-maps) for better stack traces.
* Pair triage with [alerts](/features/alerts) for faster routing.

## Auto-assignment to Squasher

When auto-triage is enabled for a source (runtime errors are on by default; monitor incidents are opt-in), new incidents and error groups are auto-assigned to **Squasher** as soon as they open. The incident timeline records that Squasher picked up triage, and the assignee column in the dashboard shows Squasher as the owner while the agent investigates.

For a monitor incident, Squasher starts a hosted investigation with the incident, monitor, runbook, and recent check evidence. If the opened incident was sent to Slack, the completed diagnosis is posted as a reply in that alert's thread. The reply includes the cause, impact, owner, evidence labels, and next action.

The agent keeps ownership until a teammate manually assigns the incident — assigning to a human clears the Squasher assignee and signals the agent to back off. Resolved incidents keep their historical assignee.

## Notes

Triage quality improves when Squasher receives clear stack frames, environment tags, and surrounding context.

Similar issues use existing project data such as error type, title tokens, level, service, environment, release, and stack-frame tags. Matches stay scoped to the current project and link back to each related issue detail page.

Local development artifacts can help an engineer or coding agent reproduce a failure, but AI triage is based on telemetry ingested into Squasher. Keep local files redacted and temporary; use Squasher for retained incident history and shared investigation context.

When review notifications are configured, Squasher sends other structured diagnoses to the existing Slack or webhook workflow. Diagnosis messages never include raw prompts, reasoning, tool payloads, or agent logs.

## Agent handoff

Use this prompt when an agent is investigating a triaged error:

```text theme={null}
Investigate Squasher error group <error_group_id> in project <project_id>. Fetch the error detail, current AI triage fields, related traces, suspect commits, replay links if available, and triage-run history. Report evidence and ask before forcing a new triage run.
```

Use the [Error groups API](/api-reference/errors), `squasher errors ...`, or MCP `search("errors")` followed by `execute`.

Review webhooks include the diagnosis evidence references and an `evidenceStatus` of `provided` or `missing`. If references are missing, `remediationWithheldReason` is `diagnosis_evidence_missing`, even when the proposed disposition is `remediate`. A proposed disposition does not authorize a fix.
