---
title: Approvals Panel
nav_order: 3
parent: Panels
---

# Approvals Panel

The Approvals Panel provides a running list of every git commit an agent has made during the session. Each entry starts in the **Needs Approval** section; you check it off to move it to **Approved**. The panel lets you review agent commits at your own pace, jump directly to the transcript turn where the commit happened, and open the commit on GitHub — all without leaving SquadDash.

---

## Opening the Panel

**View** menu → **Approvals Panel** (toggles visibility). The menu item has a checkmark when the panel is open. Visibility is persisted per workspace.

Close the panel with its **×** button.

---

## How Entries Are Added

SquadDash populates the panel automatically. When an agent's turn ends with a push notification that contains a git commit SHA, SquadDash:

1. Extracts the short SHA from the notification.
2. Constructs a GitHub URL (`<workspaceGitHubUrl>/commit/<sha>`) when a GitHub remote is configured.
3. Derives a short description (≤ ~10 words) from the notification summary, or falls back to the first 8 words of the original prompt.
4. Adds the entry to **Needs Approval**.

Entries persist across SquadDash restarts (stored in `commit-approvals.json` in the workspace state directory). The store retains the **200 most recent** entries.

---

## Panel Layout
![Screenshot: The Approvals panel allows you to review work performed by the Squad team](images/descriptive-filename.png)


Each row contains:

| Element | Description |
|---|---|
| **Checkbox** | Unchecked = Needs Approval; checked = Approved. Toggling moves the row between sections. |
| **Description** | Short summary derived from the notification or prompt. Click to jump to the transcript turn. |
| **SHA link** | First 7 characters of the commit SHA, underlined. Click to open the full commit on GitHub. Only shown when a GitHub remote URL is configured. |

---

## Approving a Commit

Check the checkbox next to an entry. The row moves from **Needs Approval** to **Approved** immediately. Uncheck it to move it back.

State is saved to `commit-approvals.json` after every toggle.

---

## Jumping to the Transcript Turn

Click the **description text** of any entry to scroll the coordinator transcript to the prompt that produced that commit. SquadDash switches to the coordinator transcript if another thread is currently selected.

This is useful for reviewing exactly what the agent was asked and what it did before approving.

---

## Clearing Approved Entries

Click **Clear Approved** in the Approved section to remove all approved entries permanently. Only approved entries are removed; pending entries are unaffected.

---

## Tips

- The SHA link only appears when `workspaceGitHubUrl` is configured. If you see no SHA links, check your workspace GitHub URL setting in Preferences.
- The panel is per-workspace. Switching workspaces replaces the entry list with that workspace's `commit-approvals.json`.
- Entries survive SquadDash restarts — you can review and approve commits from a previous session.
- If the panel is cluttered, approve everything you've already reviewed and then use **Clear Approved** to reset it.

---

## Follow-up on a Commit

You can reference a specific approval entry when composing your next prompt. This is useful for asking an agent to revisit, explain, or build on top of a specific commit.

**How to attach a follow-up:**

1. Right-click any entry in the **Needs Approval** or **Approved** section.
2. Select **Follow up…**.

A dismissable strip appears above the prompt input (or above the queue tab strip if a queued tab is selected):

```
↩ Follow-up: abc1234 — "Fix agent sort order"   [×]
```

### What happens when you send

The follow-up context is silently prepended to the outgoing prompt — it is not visible in the draft or the conversation history:

```
[Follow-up on abc1234 — "Fix agent sort order": <original prompt summary>]

<your new prompt>
```

The agent receives the full context header and can see what the referenced commit was about. Your message appears in the transcript without the header.

### Clearing a follow-up

Click **×** on the strip to remove the attachment before sending. The draft is unaffected.

### Follow-up with queued prompts

If a follow-up is attached to the **Active Draft** and you queue that prompt while the agent is busy, the attachment travels with the queued item and fires when that item is dispatched. Each queued tab tracks its own follow-up independently.

---

## Related

- **[Loop Panel](loop-panel.md)** — Commit entries accumulate quickly during loop runs; the approvals panel is the review checkpoint
- **[Transcripts](../concepts/transcripts.md)** — Jump-to-turn lands in the coordinator transcript
- **[Configuration](../reference/configuration.md)** — Setting the workspace GitHub URL
