# spool_status

Локальный инструмент mmw-agent — очередь записей remember, которые ещё не доставлены на сервер.

Из этой страницы вы узнаете, что показывает `spool_status` и что делать, если записи долго не уходят на сервер.

Сквозной пример: разработчик работал в поезде без интернета, ассистент сохранил три решения, и разработчик спрашивает «дошли ли мои записи до MMW?».

## Назначение

С версии 0.1.9 локальный агент [mmw-agent](/agent/overview/) сначала записывает каждый `remember` на диск, в `~/.mmw/outbox.db`, и только потом отправляет на сервер. Если сервер недоступен, запись ждёт в этой очереди и уходит в фоне. `spool_status` показывает состояние очереди. Инструмент отвечает локально, к серверу не обращается.

Клиенты без агента (claude.ai, ChatGPT, прямое HTTP-подключение) этого инструмента не видят: у них `remember` сразу идёт на сервер.

Аннотации: `readOnlyHint: true`, `idempotentHint: true`.

## Параметры

Нет. Входная схема — пустой объект.

## Ответ

| Поле | Что значит |
| --- | --- |
| `pending` | Сколько записей ждут доставки. |
| `delivered` | Сколько записей уже доставлено через очередь. |
| `failed` | Сколько записей сервер отклонил по существу (например, сработала [защита памяти](/memory/memory-guard/)). Такие записи не повторяются. |
| `oldest_pending_age_seconds` | Сколько секунд ждёт самая старая запись. |
| `next_attempt_at` | Когда будет следующая попытка доставки. |
| `last_error` | Почему не удалась последняя попытка: например, сервер недоступен. |
| `recent_failures` | Последние отклонённые записи с причиной. |
| `outbox` | Путь к файлу очереди на вашем компьютере. |

## Пример

```json
{
  "outbox": "/home/dev/.mmw/outbox.db",
  "pending": 3,
  "delivered": 41,
  "failed": 0,
  "oldest_pending_age_seconds": 1260.4,
  "next_attempt_at": "2026-10-18T16:05:12+00:00",
  "last_error": "[Errno -3] Temporary failure in name resolution",
  "recent_failures": []
}
```

Три записи ждут, сети нет. Как только интернет появится, агент доставит их в том же порядке, в каком они были сделаны.

## Как это работает

- Пока сервер отвечает, `remember` уходит на сервер сразу, и ассистент получает обычный ответ сервера.
- Если сервер недоступен или перегружен, ассистент получает ответ со статусом `queued` и идентификатором вида `local-…`. Это не ошибка: запись уже сохранена на диске.
- Агент повторяет доставку с растущей паузой, до 5 минут.
- Каждая запись несёт свой ключ идемпотентности, поэтому повторная доставка не создаёт копию.
- Пока в очереди есть старые записи, новые встают за ними: более новая версия факта не обгонит старую.
- Если сервер отклонил API-ключ, ассистент так и узнаёт: «MMW отклонил API-ключ… Запись сохранена на этом компьютере». Запись ждёт в очереди и уйдёт после исправления ключа (с версии 0.1.10).
- Запись, которую не удалось доставить за 7 дней или за 200 попыток, помечается как неуспешная и больше не задерживает очередь. Она остаётся на диске; отправить снова: `mmw-agent outbox-retry`.
- Доставленные записи удаляются из очереди через 7 дней.

Записи в очереди лежат на вашем компьютере в открытом виде, с правами доступа только для вашей учётной записи. Пока запись не доставлена, на других устройствах её нет.
