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
10 changes: 6 additions & 4 deletions content/docs/tasks.es.md
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,8 @@ tarea encontrada en un mensaje puede tener responsables; las tareas de proyecto
Una tarea sin responsable está bien: es mejor que una tarea perdida. Si la herramienta no conoce a la
persona que envió el mensaje, la tarea se añade igualmente, sin responsable.

`tasks list "assignee:any state:open"` lista las tareas abiertas que otros te deben. `assignee:none`
`tasks agenda` lista las tareas abiertas que otros te deben en "assigned", primero las más antiguas;
`tasks list "assignee:any state:open"` también las lista. `assignee:none`
encuentra las tareas sin responsable, y `assignee:person:<id>` las de una persona. Los agentes que usan
el servidor MCP pasan `assignee` a `tasks_add` y `tasks_plan`.

Expand Down Expand Up @@ -173,8 +174,8 @@ te da muchas tareas.
tarea.
- Pide a tu agente que lea los mensajes nuevos de cada día y añada lo que las reglas no ven: peticiones
y promesas sin signo de interrogación, tuyas y de otras personas.
- Guarda lo que otros te deben como tareas con responsable y revisa
`tasks list "assignee:any state:open"`.
- Guarda lo que otros te deben como tareas con responsable. La agenda las lista en "assigned", primero
las más antiguas.

```text prompt
Usa tg CLI. Sincroniza mis chats y muéstrame la agenda de tareas. Después lee los mensajes nuevos de hoy en mis chats uno a uno y en los grupos con la etiqueta watch-tasks, y añade una tarea por cada petición o promesa que las reglas no detectaron, con el remitente como responsable cuando sea su promesa. Muéstrame la lista antes de añadir nada. No envíes nada.
Expand Down Expand Up @@ -246,7 +247,8 @@ tg personal tasks reject <task>
</details>

- **agenda** lista las tareas vencidas, las que vencen pronto o toca revisar, y después los chats
donde debes una respuesta y los chats donde la esperas tú. Avisa si el almacén lleva tiempo sin
donde debes una respuesta y los chats donde la esperas tú, y por último lo que otros te deben: las
tareas abiertas con responsable, primero las más antiguas. Avisa si el almacén lleva tiempo sin
guardar nada.
- **add** necesita un tipo. También necesita una categoría
(`--category`), y se niega si ya existe una tarea parecida; consulta
Expand Down
8 changes: 5 additions & 3 deletions content/docs/tasks.md
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,8 @@ found in a message can have assignees; project tasks in `memo` have their own.
A task with no assignee is fine: it is better than a missed task. If the tool knows no person for the
sender, the task is still added, with no assignee.

`tasks list "assignee:any state:open"` lists the open tasks that others owe you. `assignee:none` finds
`tasks agenda` lists the open tasks that others owe you under "assigned", oldest first;
`tasks list "assignee:any state:open"` lists them too. `assignee:none` finds
tasks with no assignee, and `assignee:person:<id>` the tasks of one person. Agents that use the MCP
server pass `assignee` to `tasks_add` and `tasks_plan`.

Expand Down Expand Up @@ -166,7 +167,7 @@ tasks.
the chats where you wrote last and nobody answered. These are there even when no task is.
- Ask your agent to read each day's new messages and add what the rules cannot see: requests and
promises without a question mark, yours and other people's.
- Keep what others owe you as tasks with an assignee, and check `tasks list "assignee:any state:open"`.
- Keep what others owe you as tasks with an assignee. The agenda lists them under "assigned", oldest first.

```text prompt
Use tg CLI. Sync my chats and show my task agenda. Then read today's new messages in my one-to-one chats and in the groups tagged watch-tasks, and add a task for each request or promise the rules missed, with the sender as assignee when it is their promise. Show me the list before you add anything. Don't send anything.
Expand Down Expand Up @@ -238,7 +239,8 @@ tg personal tasks reject <task>
</details>

- **agenda** lists tasks that are overdue, due soon or due for a check, then chats where you owe an
answer and chats where you wait for one. It warns when the store has not saved anything for a while.
answer and chats where you wait for one, then what others owe you: open tasks with an assignee, oldest
first. It warns when the store has not saved anything for a while.
- **add** needs a type. It also needs a category (`--category`), and it
refuses when a similar task exists; see [No duplicate tasks](#no-duplicate-tasks).
- **plan** sets the title, the description, the due date, the next check and the assignees.
Expand Down
10 changes: 6 additions & 4 deletions content/docs/tasks.ru.md
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,8 @@ description: "Вопросы, просьбы и обещания из ваших
Задача без исполнителя — это нормально: лучше, чем пропущенная задача. Если инструмент не знает
человека-отправителя, задача всё равно добавляется, без исполнителя.

`tasks list "assignee:any state:open"` показывает открытые задачи, которые вам должны другие.
`tasks agenda` показывает открытые задачи, которые вам должны другие, в разделе "assigned", сначала
самые старые; `tasks list "assignee:any state:open"` тоже их показывает.
`assignee:none` находит задачи без исполнителя, а `assignee:person:<id>` — задачи одного человека.
Агенты, которые работают через MCP-сервер, передают `assignee` в `tasks_add` и `tasks_plan`.

Expand Down Expand Up @@ -167,8 +168,8 @@ tg personal tags remove --chat "Renovation" watch-tasks
чаты, где последним написали вы и вам не ответили. Они там, даже если задачи нет.
- Попросите агента каждый день читать новые сообщения и добавлять то, чего правила не видят: просьбы
и обещания без вопросительного знака — ваши и чужие.
- Храните то, что вам должны другие, как задачи с исполнителем и проверяйте
`tasks list "assignee:any state:open"`.
- Храните то, что вам должны другие, как задачи с исполнителем. План на день показывает их в разделе
"assigned", сначала самые старые.

```text prompt
Используй tg CLI. Синхронизируй мои чаты и покажи план задач. Потом прочитай сегодняшние новые сообщения в личных чатах и в группах с тегом watch-tasks и добавь задачу на каждую просьбу или обещание, которые пропустили правила; если это обещание отправителя, укажи его исполнителем. Покажи список, прежде чем что-то добавлять. Ничего не отправляй.
Expand Down Expand Up @@ -240,7 +241,8 @@ tg personal tasks reject <task>
</details>

- **agenda** показывает просроченные задачи, задачи со скорым сроком или пора проверить, затем чаты,
где ответа ждут от вас, и чаты, где ждёте вы. Предупреждает, если хранилище давно ничего не сохраняло.
где ответа ждут от вас, и чаты, где ждёте вы, затем то, что должны вам: открытые задачи с исполнителем,
сначала самые старые. Предупреждает, если хранилище давно ничего не сохраняло.
- **add** требует тип и категорию (`--category`) и
отказывает, если уже есть похожая задача; см. [Без дубликатов](#без-дубликатов).
- **plan** задаёт название, описание, срок, следующую проверку и исполнителей. Следующая проверка — когда агенту
Expand Down
4 changes: 2 additions & 2 deletions docs/release-notes-review.json
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
{
"tg": {
"version": "v0.71.0",
"version": "v0.72.0",
"roadmapSha256": "978bfe805c38732b567388b00cbe701d12721599bc2d3e8dae060fee8f83baab",
"reviewedAt": "2026-10-18",
"conclusion": "Reviewed Telegram0.69-0.71 with Core0.326.0/Base0.43.0: an agent can no longer delete for everyone; mcp --permission only tightens (a looser override is refused at startup, so shared browser and permission pages no longer start tg with messages.send=allow); TG_READ_ONLY also stops login/logout and store changes; contacts link <person> me; fewer wrong mention names, own accounts linked, addresses keep their city; in a watch-tasks group any member's reply closes a question while a later non-reply closes nothing; bot MCP tools are the bot commands with their own snake_case arguments. Roadmap unchanged: multi-photo sending, private chat notes and listed MAX-only capabilities remain planned."
"conclusion": "Reviewed Telegram0.72.0 with Core0.331.0/Base0.43.5: tasks agenda lists what others owe you (an assigned section, assigned in JSON); the duplicate check weighs a shared reply chain less, so fewer false duplicate suggestions; a command path given as one argument fails; interactive commands without a terminal wait 5 minutes; under TG_READ_ONLY writes that ask first stop with exit 5 before asking; session start, session end and setup never run through serve, and session end with serve running stops with exit 2; the stemmer settings are spelled search_stemmers.* in the native pages. Roadmap unchanged: multi-photo sending, private chat notes and listed MAX-only capabilities remain planned."
},
"max": {
"version": "v0.60.0",
Expand Down
42 changes: 42 additions & 0 deletions docs/reviews/2026-10-18-tg-072-release.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# tg 0.72.0 release review: the agenda lists what others owe you, stemmer settings fixed at the source

Reviewer: Claude. Portal base: `78fb75e`.
Reviewed runtime: tg `v0.72.0`, commit `9c30815eff5ef19b85f5e29727fb73e9d503507e`, Core `0.331.0`, Base `0.43.5`.
Compared native guides and changelog against the previous pin `v0.71.0` (#304).
Other runtime pins are unchanged.

Readers of the tg pages now learn that `tasks agenda` lists the open tasks others owe them, that a shared reply chain
counts less in the duplicate check, and the 0.72.0 changes to `session end`, read-only exits and interactive timeouts.
The stemmer settings read `search_stemmers.*` from the native pages, without a portal correction.

## Evidence

- tg tagged diff `v0.71.0..v0.72.0`: `CHANGELOG.md` (0.72.0), `docs/commands.md` (generated: the agenda description
adds "open tasks someone else does"), `docs/archive.md` and `docs/configuration-reference.md` (`searchStemmers.*` →
`search_stemmers.*`, tg-cli#602). `docs/roadmap.md` unchanged (fingerprint `978bfe80…`).
- cli-core `v0.331.0` contains cli-core#1484 (agenda "assigned" section, merge `4fe8c553`) and cli-core#1497 (reply-chain
weight +6 → +2, merge `4d6f5304`).

## Reader paths

| Page / locale | Changed fact | Result / owner |
| --- | --- | --- |
| tasks / EN, RU, ES | The agenda lists what others owe you under "assigned", oldest first | Reviewed / Claude |
| tg commands / RU, ES | Agenda description adds open tasks someone else does | Reviewed / Claude |
| tg archive, configuration-reference / RU, ES | `search_stemmers.*` spelling | Reviewed / Claude |
| tg changelog / RU, ES | 0.72.0 entry | Reviewed / Claude |
| tg cli-contract / RU, ES | Versioned link moved to v0.72.0 | Reviewed / Claude |

## Portal corrections

- Removed: tg/configuration-reference and tg/archive EN/RU/ES `searchStemmers.*` → `search_stemmers.*`. The native pages
at v0.72.0 spell `search_stemmers.*` (tg-cli#602), and the synced pages contain no `searchStemmers`.

## Remaining items

- Native, cli-core: the `config unset` setting list in the generated `commands.md` still includes `default_profile`
(still there at v0.72.0, Core 0.331.0).

## Validation

Portal check results are recorded in the PR. No account or message data was used.
110 changes: 0 additions & 110 deletions scripts/docs-corrections.json
Original file line number Diff line number Diff line change
Expand Up @@ -2069,115 +2069,5 @@
}
]
}
},
{
"tool": "tg",
"slug": "configuration-reference",
"reason": "cli-core reads the store-wide stemmer settings as search_stemmers.cyrillic and search_stemmers.latin (src/cli/store-settings.ts); the camelCase name is refused.",
"replacements": {
"en": [
{
"before": "| `searchStemmers.cyrillic`, `searchStemmers.latin` |",
"after": "| `search_stemmers.cyrillic`, `search_stemmers.latin` |"
},
{
"before": "`searchStemmers.cyrillic` (`russian`",
"after": "`search_stemmers.cyrillic` (`russian`"
},
{
"before": "`searchStemmers.latin` (`english`",
"after": "`search_stemmers.latin` (`english`"
},
{
"before": "| `searchStemmers.cyrillic` | `russian`, `none` |",
"after": "| `search_stemmers.cyrillic` | `russian`, `none` |"
},
{
"before": "| `searchStemmers.latin` | `english`, `spanish`,",
"after": "| `search_stemmers.latin` | `english`, `spanish`,"
}
],
"es": [
{
"before": "| `searchStemmers.cyrillic`, `searchStemmers.latin` |",
"after": "| `search_stemmers.cyrillic`, `search_stemmers.latin` |"
},
{
"before": "`searchStemmers.cyrillic` (`russian`",
"after": "`search_stemmers.cyrillic` (`russian`"
},
{
"before": "`searchStemmers.latin` (`english`",
"after": "`search_stemmers.latin` (`english`"
},
{
"before": "| `searchStemmers.cyrillic` | `russian`, `none` |",
"after": "| `search_stemmers.cyrillic` | `russian`, `none` |"
},
{
"before": "| `searchStemmers.latin` | `english`, `spanish`,",
"after": "| `search_stemmers.latin` | `english`, `spanish`,"
}
],
"ru": [
{
"before": "| `searchStemmers.cyrillic`, `searchStemmers.latin` |",
"after": "| `search_stemmers.cyrillic`, `search_stemmers.latin` |"
},
{
"before": "`searchStemmers.cyrillic` (`russian`",
"after": "`search_stemmers.cyrillic` (`russian`"
},
{
"before": "`searchStemmers.latin` (`english`",
"after": "`search_stemmers.latin` (`english`"
},
{
"before": "| `searchStemmers.cyrillic` | `russian`, `none` |",
"after": "| `search_stemmers.cyrillic` | `russian`, `none` |"
},
{
"before": "| `searchStemmers.latin` | `english`, `spanish`,",
"after": "| `search_stemmers.latin` | `english`, `spanish`,"
}
]
}
},
{
"tool": "tg",
"slug": "archive",
"reason": "cli-core reads the store-wide stemmer settings as search_stemmers.cyrillic and search_stemmers.latin (src/cli/store-settings.ts); the camelCase name is refused.",
"replacements": {
"en": [
{
"before": "`tg config set searchStemmers.cyrillic russian`",
"after": "`tg config set search_stemmers.cyrillic russian`"
},
{
"before": "`searchStemmers.latin english,spanish`",
"after": "`search_stemmers.latin english,spanish`"
}
],
"es": [
{
"before": "`tg config set searchStemmers.cyrillic russian`",
"after": "`tg config set search_stemmers.cyrillic russian`"
},
{
"before": "`searchStemmers.latin english,spanish`",
"after": "`search_stemmers.latin english,spanish`"
}
],
"ru": [
{
"before": "`tg config set searchStemmers.cyrillic russian`",
"after": "`tg config set search_stemmers.cyrillic russian`"
},
{
"before": "`searchStemmers.latin english,spanish`",
"after": "`search_stemmers.latin english,spanish`"
}
]
}
}
]
2 changes: 1 addition & 1 deletion tools.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
"ru": "Клиент Telegram для терминала и ИИ-агентов, с вашим собственным аккаунтом.",
"es": "Un cliente de Telegram para la terminal y para agentes de IA, con tu propia cuenta."
},
"docsRef": "v0.71.0"
"docsRef": "v0.72.0"
},
{
"name": "drive",
Expand Down
16 changes: 8 additions & 8 deletions translations/sources.json
Original file line number Diff line number Diff line change
Expand Up @@ -58,18 +58,18 @@
"max/troubleshooting.es": "cee7a1a2f60cabcb639bc73d33f2f1db19a7c964c98d602c0319866004b7e34a",
"max/usage.en": "4bfca461d8b77ecf99af57d0e405d8708db9b6bbf13649c4768b293731a554ee",
"max/usage.es": "4bfca461d8b77ecf99af57d0e405d8708db9b6bbf13649c4768b293731a554ee",
"tg/archive.es": "39fd8faf0c8616215953751d740db42744290410564fdc81ad61135e3b1f06d4",
"tg/archive.ru": "39fd8faf0c8616215953751d740db42744290410564fdc81ad61135e3b1f06d4",
"tg/archive.es": "5a12db3c345d75d53f626a3c45292035cc40c3d73f8ac6cfb7d355e052d48556",
"tg/archive.ru": "5a12db3c345d75d53f626a3c45292035cc40c3d73f8ac6cfb7d355e052d48556",
"tg/bot.es": "acd4741b6fc5d3bdab77e655bb41ef77f907cba85b4b47b569b37ea36b39b933",
"tg/bot.ru": "acd4741b6fc5d3bdab77e655bb41ef77f907cba85b4b47b569b37ea36b39b933",
"tg/changelog.es": "d050b95a6cf87dd2e9e71529da8b0661e2ad3397a7b290f81ca47ffea0b3a40c",
"tg/changelog.ru": "d050b95a6cf87dd2e9e71529da8b0661e2ad3397a7b290f81ca47ffea0b3a40c",
"tg/changelog.es": "0d6b231400c6d37fb282edf6224f64be524b3fb6e95540c9ab1a3159a3487760",
"tg/changelog.ru": "0d6b231400c6d37fb282edf6224f64be524b3fb6e95540c9ab1a3159a3487760",
"tg/cli-contract.es": "b64ac9c35106278e2af2d9a9f5e7a1a3f6c51108d81123f2e7d8a6f0f5b95b9a",
"tg/cli-contract.ru": "b64ac9c35106278e2af2d9a9f5e7a1a3f6c51108d81123f2e7d8a6f0f5b95b9a",
"tg/commands.es": "2969ed8a35c24c699f743ffc180d0e120b24380e4cf3ddc04abaa901db497267",
"tg/commands.ru": "2969ed8a35c24c699f743ffc180d0e120b24380e4cf3ddc04abaa901db497267",
"tg/configuration-reference.es": "ddfccaa7ac879dcccf5cb34d2ea01920453d50be5791975a6884ae4ef4bea4a6",
"tg/configuration-reference.ru": "ddfccaa7ac879dcccf5cb34d2ea01920453d50be5791975a6884ae4ef4bea4a6",
"tg/commands.es": "f28a833b1bf430ba09e58ae1b324644f1422dd5f63c3e5a12fb05b27c29ca697",
"tg/commands.ru": "f28a833b1bf430ba09e58ae1b324644f1422dd5f63c3e5a12fb05b27c29ca697",
"tg/configuration-reference.es": "3b8a509f69c67cf3d0dcf3f02d7dff86bc5ace542882604c94e42d961ae970e8",
"tg/configuration-reference.ru": "3b8a509f69c67cf3d0dcf3f02d7dff86bc5ace542882604c94e42d961ae970e8",
"tg/configuration.es": "816885273b9d9a566ff673d5d9c3508aad5bacb7b5799065e542d1f539147a51",
"tg/configuration.ru": "816885273b9d9a566ff673d5d9c3508aad5bacb7b5799065e542d1f539147a51",
"tg/diagnostics.es": "fe9b0cbabe7b8d597bb16f970329e06f403ce1a2e00ce2e6276a082cb04f1ff1",
Expand Down
Loading
Loading