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

# Context and compaction

> What the context dial is telling you, how automatic compaction works, and why a fresh chat beats a long one.

Context is everything the model can see at once: your messages, its replies, every step row, the
files it read, the snapshots it took. It is finite, and a busy chat fills it faster than you
would expect. One slide review with two snapshots costs more than a dozen typed sentences.

## The context dial

A small dial sits in the composer's bottom row, next to the model picker. Hover it and you get
*"\~42% context used"*. Past the compaction point it adds *"— compaction threshold exceeded"*.

It is a passive gauge, refreshed when a turn starts and when one finishes, so treat it as a
rough reading rather than a live meter. It changes colour as it climbs.

## Automatic compaction

You do not have to manage this. When a chat gets close to full, Pretty compresses the earlier
part of the conversation into a summary and carries on.

<Frame caption="A Compacted divider in the transcript. Everything above it now exists only as that summary — open it to read what was kept.">
  <img src="https://mintcdn.com/pretty/AolTsLIDSZTnCk8e/images/chat-compaction.png?fit=max&auto=format&n=AolTsLIDSZTnCk8e&q=85&s=50be477ca7d49755ec51aab38cb7baff" alt="Chat transcript with a Compacted divider between two messages" width="1220" height="509" data-path="images/chat-compaction.png" />
</Frame>

A message reads **Compacting…** while the compression runs, then settles into **Compacted**,
holding the summary.

Pretty can also compact deliberately rather than waiting to be forced. That turn shows a step
row labelled **Summarizing**. It happens when the conversation has grown long, or when you ask
for it directly.

<Warning>
  Compaction is lossy by design. Specifics from before the divider (an exact figure you pasted,
  the precise wording you asked for) may not survive it. If a detail still matters after a
  compaction, say it again.
</Warning>

If compaction itself fails, the message reads *"Compaction failed"*.

## Why long chats get worse

Three things happen at once as a chat grows:

* **Old work crowds out new.** The slide you built an hour ago is still taking up room.
* **Summaries stack on summaries.** Each compaction is a step further from what you actually said.
* **Stale instructions linger.** A constraint you gave for slide 2 is still in scope for slide 20.

The fix is **New Chat**.

<Tip>
  One chat per topic. New deck, new chat; new section of a deck, new chat. You lose nothing. The
  old chat stays in **All chats**, and your slides live in the deck, not the conversation.
</Tip>

If a chat does hit the ceiling, you get: *"This chat has grown too large to continue — usually
from many steps or large attachments. Please start a new chat to keep going."*

## Queued messages

Send a message while a turn is still running and it is held, marked **Queued**, and sent when the
current turn finishes.

Two controls sit on the queued card:

| Control      | What it does                                                   |
| ------------ | -------------------------------------------------------------- |
| **Send now** | Pushes it through without waiting for the running turn to end. |
| **Dismiss**  | Throws the queued message away.                                |

Queuing lets you type a correction the moment you spot it mid-run instead of holding it in your
head. Be aware the agent has not seen it yet, so it will keep going down its current path until
the turn ends.

## Truncated output

A step that produces a lot of output does not push all of it into the context. The row shows
*"Output truncated"* with a caption, *"Full output saved to .../tool-output.txt"*, and the complete result
is written to a file in your workspace.

That path is usable. You can ask Pretty to read or search the file, which keeps the bulk out of
the conversation while the detail stays available:

```text theme={null}
Grep the saved output for rows where the region is EMEA and show me
just those.
```
