Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion authored-docs.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
{
"name": "email",
"package": "@wirecat/mail-cli",
"docsRef": "v0.28.0",
"docsRef": "v0.32.0",
"pages": ["translations/pages/mail/email"]
},
{
Expand Down
4 changes: 2 additions & 2 deletions docs/release-notes-review.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion tools.json
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@
"repo": "WireCatLabs/mail-cli",
"package": "@wirecat/mail-cli",
"lang": "en",
"docsRef": "v0.28.0",
"docsRef": "v0.32.0",
"summary": {
"en": "Sync your mailbox over IMAP into the shared WireCat store, search it offline, and organise it on the server (flags, moves, Trash with undo, folders), keep drafts, and send mail over SMTP.",
"ru": "Синхронизируйте почтовый ящик по IMAP в общее хранилище WireCat, ищите по нему без интернета и наводите порядок на сервере: флаги, перемещение, корзина с отменой, папки, храните черновики и отправляйте письма по SMTP.",
Expand Down
64 changes: 64 additions & 0 deletions translations/mail/changelog.es.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,70 @@ title: "Historial de cambios"

Cambios destacados de `@wirecat/mail-cli`. Una sección por versión, de la más reciente a la más antigua.

## 0.32.0 — 14.11.2026

### Cambiado — puede romper a quien llama

- **Un nivel `readonly` ya no detiene `mail sync`** (cli-core 0.662.0, antes 0.661.0). Un comando que solo trae
correo al almacén local funciona en `readonly`; `deny` lo sigue rechazando. Los comandos que escriben archivos del
propietario o llaman a otro servicio siguen bloqueados por `readonly`. Si un perfil usaba `readonly` para detener la
sincronización, pon esa clave en `deny`.

## 0.31.0 — 14.11.2026

### Corregido

- **`rules import --format gmail` acepta `--yes` por MCP.** Un agente solo podía previsualizar las reglas que
sugieren los filtros de Gmail: la herramienta ofrecía solo las opciones propias del comando, y `--yes` era del
programa.
- **`rules export` responde por MCP.** La llamada fallaba con «el comando imprimió su respuesta en lugar de
entregarla». Ahora el agente recibe el archivo de reglas como respuesta; en una terminal y en una tubería sigue
imprimiendo el archivo, así que `rules export > rules.json` se vuelve a importar.
- **`rules apply` ya no ofrece repetir con el mismo límite de tiempo una ejecución que no leyó nada.** Por MCP el paso
decía que se pasara un `--timeout` más largo, algo que un agente no puede hacer, y estaba marcado como seguro de
ejecutar sin preguntar, así que una ejecución reanudada podía repetirse sin avanzar. Por MCP ahora pide al
propietario que dé al servidor un `MAIL_TIMEOUT` más largo o que lo ejecute en una terminal; en una terminal el paso
añade `--timeout 30m` y espera al propietario.
- **`messages delete --rules` conserva el correo de un remitente al que el propietario escribió.** Juzgaba a los
remitentes por el correo guardado, donde el correo propio del propietario de una carpeta Enviados por IMAP parecía
recibido. Así, un sobre de alguien a quien el propietario respondió podía proponerse para la Papelera, y una regla
predefinida aún podía atrapar a ese remitente. Ahora cli-core marca como enviado el correo guardado del propietario,
y los motivos «respondido» y «enviado» de la limpieza valen también para los buzones IMAP.

## 0.30.0 — 14.11.2026

### Cambiado — puede romper a quien llama

- **Construido sobre cli-core 0.659.0** (antes 0.657.0). Consulta el
[historial de cambios de cli-core](https://github.com/WireCatLabs/cli-core/blob/main/CHANGELOG.md).

### Corregido

- **Una configuración compartida con un pequeño desliz se repara al leerla.** En `~/.config/WireCat/config.json`, una
marca de orden de bytes, un comentario, una coma final o una coma que falta entre dos líneas se corrigen en el sitio,
y el archivo anterior se guarda al lado como `config.json.bak-<time>`. Para otros daños se indica la línea, la
columna y la corrección probable.

## 0.29.0 — 14.11.2026

### Añadido

- **`rules apply --cursor` continúa desde donde terminó una ejecución detenida.** Una ejecución que llega a su límite
de tiempo responde `state: partial` con el cursor y el paso que continúa. La ejecución que termina la ventana
informa los recuentos de toda ella.
- **`rules apply` acepta `--yes` por MCP.** Un agente solo podía previsualizarlo: la herramienta no ofrecía `--yes`.

### Corregido

- **`rules apply` termina en un buzón grande, y por MCP responde a tiempo.** Fallaba a los 27 segundos en un buzón de
17 000 correos, cuya lista tarda unos 4 minutos en leerse. Ahora funciona hasta 15 minutos por defecto (45 segundos
por MCP, donde los clientes se rinden tras un minuto más o menos; `--timeout` sigue fijándolo). Lee los encabezados
del más nuevo al más antiguo y guarda su trabajo lote a lote, así que una ejecución que se detiene conserva lo hecho.
`score:` y `--kind` juzgan a un remitente por su correo en el almacén, así que el punto donde se detiene una
ejecución nunca cambia lo que deciden.
- **`rules apply` dice cuándo se queda sin límite de tiempo.** El error decía que el servidor de correo no respondió a
tiempo. Ahora dice que el comando llegó a su límite de tiempo y que se ejecute de nuevo con un `--timeout` más largo.

## 0.28.0 — 13.11.2026

### Corregido
Expand Down
64 changes: 64 additions & 0 deletions translations/mail/changelog.ru.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,70 @@ title: "История изменений"

Заметные изменения в `@wirecat/mail-cli`. По одному разделу на версию, новые сверху.

## 0.32.0 — 14.11.2026

### Изменено — может сломать вызывающий код

- **Уровень `readonly` больше не останавливает `mail sync`** (cli-core 0.662.0, было 0.661.0). Команда, которая только
загружает почту в локальное хранилище, работает на уровне `readonly`; `deny` по-прежнему её запрещает. Команды,
которые пишут файлы владельца или обращаются к другому сервису, `readonly` по-прежнему блокирует. Если профиль
останавливал синхронизацию уровнем `readonly`, поставьте этому ключу `deny`.

## 0.31.0 — 14.11.2026

### Исправлено

- **`rules import --format gmail` принимает `--yes` через MCP.** Агент мог только просмотреть правила, которые
предлагают фильтры Gmail: инструмент предлагал лишь собственные параметры команды, а `--yes` принадлежал программе.
- **`rules export` отвечает через MCP.** Вызов падал с ошибкой «команда напечатала ответ вместо того, чтобы передать
его». Теперь агент получает файл правил как ответ; в терминале и в конвейере команда по-прежнему печатает сам файл,
поэтому `rules export > rules.json` импортируется обратно.
- **`rules apply` больше не предлагает повторить с тем же лимитом времени запуск, который ничего не прочитал.**
Через MCP шаг предлагал передать более длинный `--timeout`, чего агент сделать не может, и был помечен как безопасный
для запуска без вопроса, поэтому продолженный запуск мог повторяться без продвижения. Через MCP он теперь говорит
владельцу дать серверу более длинный `MAIL_TIMEOUT` или запустить команду в терминале; в терминале шаг добавляет
`--timeout 30m` и ждёт владельца.
- **`messages delete --rules` сохраняет почту от отправителя, которому писал владелец.** Команда судила об
отправителях по сохранённой почте, где собственные письма владельца из папки «Отправленные» по IMAP выглядели
полученными. Поэтому конверт от человека, которому владелец ответил, мог попасть в предложение для корзины, а
готовое правило всё ещё могло поймать такого отправителя. Теперь cli-core помечает сохранённые письма владельца как
отправленные, и причины очистки «ответил» и «писал» работают и для почтовых ящиков IMAP.

## 0.30.0 — 14.11.2026

### Изменено — может сломать вызывающий код

- **Построен на cli-core 0.659.0** (было 0.657.0). См.
[журнал изменений cli-core](https://github.com/WireCatLabs/cli-core/blob/main/CHANGELOG.md).

### Исправлено

- **Общая конфигурация с мелкой ошибкой исправляется при чтении.** В `~/.config/WireCat/config.json` метка порядка
байтов, комментарий, лишняя запятая в конце или пропущенная запятая между двумя строками исправляются на месте, а
старый файл сохраняется рядом как `config.json.bak-<time>`. Для других повреждений команда называет строку, столбец
и вероятное исправление.

## 0.29.0 — 14.11.2026

### Добавлено

- **`rules apply --cursor` продолжает с места, где остановился прошлый запуск.** Запуск, который дошёл до лимита
времени, отвечает `state: partial` с курсором и шагом, который продолжает работу. Запуск, который завершает окно,
сообщает счётчики за всё окно.
- **`rules apply` принимает `--yes` через MCP.** Агент мог только просмотреть результат: инструмент не предлагал
`--yes`.

### Исправлено

- **`rules apply` завершается на большом почтовом ящике, а через MCP отвечает вовремя.** Команда падала через 27 секунд
на ящике из 17 000 писем, список которых читается около 4 минут. Теперь по умолчанию она работает до 15 минут (через
MCP — 45 секунд, потому что клиенты сдаются примерно через минуту; `--timeout` по-прежнему задаёт лимит). Она читает
заголовки от новых к старым и сохраняет работу пакет за пакетом, так что остановленный запуск сохраняет сделанное.
`score:` и `--kind` судят об отправителе по его почте в хранилище, поэтому место остановки запуска никогда не меняет
их решение.
- **`rules apply` сообщает, когда исчерпывает лимит времени.** Ошибка говорила, что почтовый сервер не ответил вовремя.
Теперь она говорит, что команда дошла до лимита времени, и предлагает запустить её снова с более длинным `--timeout`.

## 0.28.0 — 13.11.2026

### Исправлено
Expand Down
5 changes: 4 additions & 1 deletion translations/mail/commands.es.md
Original file line number Diff line number Diff line change
Expand Up @@ -365,9 +365,11 @@ mail rules apply [options]
| Option | What it does |
|---|---|
| `--since-time <time>` | only mail from this time, ISO 8601 or 30d ago (default: all mail). |
| `--yes` | cut them; without it, only say what would change. |
| `--dry-run` | only say what would change, even with --yes; the read-only lock lets this through. |
| `--cursor <cursor>` | go on from where a stopped run ended; its next step gives it, with the same options. |

**Returns:** mail rules apply — account, applied, listed, envelopes, bytes, skip_matched, protected_kept, tagged, and 2 more; every field: mail commands info rules apply
**Returns:** mail rules apply — account, applied, listed, envelopes, bytes, skip_matched, protected_kept, tagged, and 5 more; every field: mail commands info rules apply

**Example:** `mail personal rules apply`, `mail personal rules apply --since-time 2026-01-01 --yes`

Expand Down Expand Up @@ -398,6 +400,7 @@ mail rules import <file> [options]
| Option | What it does |
|---|---|
| `--format <format>` | the file's format: mail (memo's export is the same file) or gmail. One of: `mail`, `memo`, `gmail`. Default: `mail`. |
| `--yes` | with --format gmail, add the rules the filters suggest; without it, only preview them. |

**Returns:** mail rule import — match, action, decided_at, id, tags, reason, protected, meeting_notes, and 5 more; every field: mail commands info rules import

Expand Down
5 changes: 4 additions & 1 deletion translations/mail/commands.ru.md
Original file line number Diff line number Diff line change
Expand Up @@ -366,9 +366,11 @@ mail rules apply [options]
| Option | What it does |
|---|---|
| `--since-time <time>` | only mail from this time, ISO 8601 or 30d ago (default: all mail). |
| `--yes` | cut them; without it, only say what would change. |
| `--dry-run` | only say what would change, even with --yes; the read-only lock lets this through. |
| `--cursor <cursor>` | go on from where a stopped run ended; its next step gives it, with the same options. |

**Returns:** mail rules apply — account, applied, listed, envelopes, bytes, skip_matched, protected_kept, tagged, and 2 more; every field: mail commands info rules apply
**Returns:** mail rules apply — account, applied, listed, envelopes, bytes, skip_matched, protected_kept, tagged, and 5 more; every field: mail commands info rules apply

**Example:** `mail personal rules apply`, `mail personal rules apply --since-time 2026-01-01 --yes`

Expand Down Expand Up @@ -399,6 +401,7 @@ mail rules import <file> [options]
| Option | What it does |
|---|---|
| `--format <format>` | the file's format: mail (memo's export is the same file) or gmail. One of: `mail`, `memo`, `gmail`. Default: `mail`. |
| `--yes` | with --format gmail, add the rules the filters suggest; without it, only preview them. |

**Returns:** mail rule import — match, action, decided_at, id, tags, reason, protected, meeting_notes, and 5 more; every field: mail commands info rules import

Expand Down
8 changes: 4 additions & 4 deletions translations/sources.json
Original file line number Diff line number Diff line change
Expand Up @@ -312,10 +312,10 @@
"mail/troubleshooting.es": "945b3cd2a95a415e6f6a8a09d017b0c25ddfacd4b5a68ba4310e072ea917f65e",
"mail/security.ru": "58526b63aba8e60cbf361bc109a42670e6c5363cb845121150491ac98f1b82b7",
"mail/security.es": "58526b63aba8e60cbf361bc109a42670e6c5363cb845121150491ac98f1b82b7",
"mail/commands.ru": "8d6f80eff02e1de0e0f53da25e7e00bba2147879930b4242601f087495160eee",
"mail/commands.es": "8d6f80eff02e1de0e0f53da25e7e00bba2147879930b4242601f087495160eee",
"mail/changelog.ru": "d2bfcda4f78259ef41735a32ee2c2f912a254fb6032cff1128c8bfea52b9afd6",
"mail/changelog.es": "d2bfcda4f78259ef41735a32ee2c2f912a254fb6032cff1128c8bfea52b9afd6",
"mail/commands.ru": "f3162a4d82a1327661d23c3fec988d04f8cc15295d3aee5c9bfae7a49bc01b16",
"mail/commands.es": "f3162a4d82a1327661d23c3fec988d04f8cc15295d3aee5c9bfae7a49bc01b16",
"mail/changelog.ru": "d554224446b11b47f40fcd7b9074715bcd1606f74fdecfb22d9dff2ffe20431e",
"mail/changelog.es": "d554224446b11b47f40fcd7b9074715bcd1606f74fdecfb22d9dff2ffe20431e",
"mail/roadmap.ru": "26f518eb06e32a807701a3cb7c004728a8d54223b47d16383823eb7c05ae1887",
"mail/roadmap.es": "26f518eb06e32a807701a3cb7c004728a8d54223b47d16383823eb7c05ae1887",
"mail/oauth-google.ru": "7080651b2f78863ceba94f432164ebdc1ec62b58a3f9c5bbe59e26a903259580",
Expand Down
Loading