---
title: "Review and approve work"
description: "Follow agent activity, inspect changes, and resolve approvals within the thread."
canonical_url: "https://hoplite.sh/docs/threads/review"
markdown_url: "https://hoplite.sh/docs/threads/review.md"
---

# Review and approve work
URL: /docs/threads/review
LLM index: /llms.txt
Description: Follow agent activity, inspect changes, and resolve approvals within the thread.
Related: /docs/threads/run, /docs/agent/tools, /docs/sandboxes/previews, /docs/github

# Review and approve work

Follow agent activity, inspect code changes, and direct the next step from the thread. Tool activity streams into the timeline, and actions that require approval wait for a decision before proceeding.

## The activity timeline

Tool calls stream into the thread as they happen: file reads and edits, shell commands, browser actions, GitHub operations. Each entry carries a short human-readable description of what the agent is doing and why. Mid-run reasoning and narration fold into the timeline so long runs stay scannable.

## Approvals

Sensitive sandbox and preview actions pause and ask before they execute:

| Action | Examples |
| --- | --- |
| Sensitive file changes | Credentials and environment files, CI workflows, infrastructure configuration, unresolved targets, and paths outside the repository workspace |
| Shell | Commands gated by the active command policy |
| Processes and sandbox | Killing processes, sandbox restarts, sandbox downsizes |
| Previews | Preview-checklist changes |
| Project settings | Policy changes that require approval; script overrides can be repaired directly |

Pending approvals surface in an inline bar — approve or deny each one without leaving the conversation. Routine repository-local edits, reads, searches, browser actions, and status checks run without interruption so the agent keeps its momentum. The full tool-by-tool breakdown is at [Tools](/docs/agent/tools#which-tools-require-approval).

An unanswered approval expires after 72 hours by default. Hoplite closes that waiting run and releases its billing hold; a late approval cannot restart it and nothing is published by the expiry. Send a new message in the same thread to start a new run and continue from the current thread state.

## Questions

When an agent needs structured input, its question appears in the same pending
action bar. A request with several questions shows one question at a time behind
tabs labelled with each question's header, and answered tabs are marked with a
check. Picking a single-choice option moves on to the next unanswered question,
and **Enter** submits once every question is answered. You can type your own
answer in the **Other…** field, or select **Dismiss** to decline the whole request.
Answers are persisted before execution resumes, so the same response reaches
both cloud and local-agent runs without being lost to a refresh or worker retry.

## Agent tasks

When Agent tasks are enabled for your workspace, a progress indicator and a collapsible **Agent tasks** dock appear above the composer. They summarize the agent's planned work and show whether individual tasks are pending, in progress, completed, or cancelled. The overall task list can also be marked interrupted.

## Subagents

When a run delegates work, the **Subagents** control opens a durable panel for its child agents. The panel separates active work from recent results and reports whether each child is running, needs approval, completed, failed, or was interrupted. Selecting a child shows its tool activity in the same collapsible format as the main timeline, refreshed while it runs, followed by its summary once available; the delegation prompt the parent wrote is not shown.

A child that needs approval exposes the same review path in the panel, so you can resolve its blocked action without hunting through the timeline.

## References in messages

When an agent cites a GitHub pull request, commit, Linear issue, source location, or task, Hoplite renders it as an inline reference link. References that Hoplite can resolve show live metadata on hover; unresolved links remain ordinary links so the message stays readable.

## Review the diff

In a cloud thread, open **Views** in the header and select **Diff**. On a narrow screen, use the **Show side panel** icon. The cloud diff compares the thread workspace against its base branch. Review the changed files and patches before creating or merging a PR; use the activity timeline to inspect test results.

Send a follow-up in the same thread when you need revisions, then reopen the diff to review the updated result.

The desktop diff view includes a changed-files tree with file, addition, and deletion counts. Select a file to jump to its patch, drag the divider to resize the tree, or use the button beside **Changed files** to hide and restore it. Hoplite remembers the layout for that workspace; smaller viewports show patches at full width without the tree.

**Cmd+B** on macOS or **Ctrl+B** elsewhere toggles the thread side panel containing Diff, PR, Preview, Terminal, and Subagents. The shortcut closes the whole panel from any active tab without changing the main application navigation.

## Rate an agent response

Use the thumbs-up or thumbs-down control on an assistant reply to save a private rating. You can add reason chips and an optional comment, change the rating later, or remove it; your choice persists across reloads and is not shared with other workspace members. Hoplite attributes the response to its producing model server-side so the team can triage the right behavior.

## Previews and terminal

When the agent starts your app, a **Preview panel** shows it live inside the thread, and a **Terminal panel** gives you a shell into the sandbox. For UI changes, the agent can attach an ordered checklist to guide your review. See [Previews](/docs/sandboxes/previews).

## Sitemap

Sitemap discovery is not enabled for this deployment.
