Skip to content

0.56.0

Choose a tag to compare

@github-actions github-actions released this 16 Oct 15:21
· 191 commits to main since this release
Immutable release. Only release title and notes can be modified.
15eea93

Что нового

  • tasks reject отклоняет предложение агента закрыть задачу, а tasks list close:suggested находит такие
    задачи
    (cli-core 0.295.0). tasks agenda показывает их с причиной close-suggested; владелец подтверждает
    предложение тем же tasks close <задача>, --as можно не указывать. Насколько агенту можно закрывать задачи,
    задают настройки общего хранилища task_agent_close (on по умолчанию) и task_agent_close_min (0.8);
    config show их показывает.
  • Новая задача о задаче, закрытой за последние 14 дней, — продолжение закрытой (cli-core 0.295.0): review и
    tasks add связывают её с закрытой связью follow-up-of. Закрытая остаётся закрытой и не попадает в
    tasks duplicates; tasks show показывает связь.
  • 59 категорий задач по умолчанию вместо 7, в списке до 80 (cli-core 0.295.0 и 0.296.0): bills, health,
    travel, fitness, subscriptions и другие. tasks categories печатает смысл каждой и слова на английском,
    русском и испанском, по которым её выбирает правило. Хранилище, где список сохранили через
    config set task_categories.*, оставляет свой; config unset task_categories берёт новый.
  • Категорию, которую убрали из списка, видно (cli-core 0.296.0): tasks categories называет её и сколько у неё
    открытых и всех задач (unlisted в JSON), а tasks agenda — категории, которые несут открытые задачи
    (unlisted_categories).
  • Испанский в задачах (cli-core 0.296.0): слово-триггер с es: находит и другие формы слова (pagues —
    pagar), когда сообщение написано по-испански, а проверка дублей понимает сроки вроде mañana, el viernes,
    15 de noviembre.
  • Повторная проверка дублей после привязки сообщения (cli-core 0.295.0): после tasks link <задача> msg:…,
    tasks add --into и tasks merge похожие задачи попадают в tasks duplicates, а поле review в ответе их считает.
    Связь остаётся, ничего не объединяется само.
  • commands --json говорит, сколько работает команда (cli-base 0.38.0): у serve и watch поле lifetime —
    persistent, у setup и session start — interactive. Раньше программа узнавала их по имени.

Изменено — может сломать скрипты

  • Агент закрывает задачу только с --certainty <0..1>, а неуверенный — уже не закрывает (cli-core 0.295.0).
    Агента узнаём по AI_AGENT или CLAUDECODE; --as-owner закрывает как владелец.
    Почему: агент может ошибиться, а закрытая задача пропадает из плана владельца.
    Что учесть: tasks close агента без --certainty отклоняется (task.certainty-required); в MCP у
    tasks_close новый обязательный аргумент certainty. Ниже порога (task_agent_close_min, по умолчанию 0.8) или
    при task_agent_close off ответ приходит с state: open и close_suggestion, и задача остаётся открытой.
  • tasks add больше не отказывает, если похожи только закрытые задачи (cli-core 0.295.0): он открывает новую со
    связью follow-up-of (follow_up_of в ответе). Отказ с кодом 2 остаётся, когда похожа открытая задача.
    Что учесть: скрипт, который ждал кода 2 для закрытой задачи, теперь получает новую задачу.
  • Правило выбирает категорию уже: счёт за свет — bills, а не money, врач — health, а не personal
    (cli-core 0.295.0 и 0.296.0). Старые семь категорий сохранили имена и смысл, задачи в базе не меняются.
    Что учесть: фильтр вроде tasks agenda category:personal ловит меньше новых задач. Часть слов перешла в более
    узкие категории: gym — в fitness, restaurant — в food, переезд — в moving.
  • Проверка дублей читает сообщения, на которых стоит задача (cli-core 0.295.0): исходное и пять последних
    привязанных. Задача правила без своего текста теперь сравнивается по словам сообщения, поэтому tasks add может
    отказать (код 2) там, где раньше открывал задачу.
  • max mcp и max <бот> bot mcp — теперь общий MCP-сервер, тот же, что у tg. Инструменты те же: max_read,
    max_tools_search и max_write. Команды chats check в max_write больше нет — вместо неё chats moderate;
    второго имени chats rules тоже нет — только chats rules show. max bot mcp больше не принимает флаги
    --allow-send, --allow-delete, --allow-moderate, --confirm-send и --allow-dangerous.
    Почему: у max и tg один сервер для агентов — одно поведение и один код, который проверяют.
    Что учесть: старые флаги bot mcp и раньше ничего не включали, но теперь сервер с ними не запускается (код 2,
    «unknown option») — уберите их из настроек приложения; max <бот> bot mcp config печатает новую запись. Агенту,
    который звал chats check или chats rules, нужно новое имя. max mcp config больше не переносит в запись
    --yes: по MCP запись уровня ask и так идёт без вопроса. Голосовое по MCP теперь сначала скачивается, потом
    распознаётся моделью на этом компьютере, как в tg. chats moderate берёт место последней проверки только из
    файла правил: место, которое очень старые версии хранили в сессии, больше не переносится.
  • setup --json предлагает следующие команды в общем списке next конверта, а не в item.next. Вместо объекта
    item.next с полями instructions, chats, history и skill — два шага верхнего уровня: skill show и
    chats list --limit 5, оба только читают.
    Почему: у всех команд следующие шаги лежат в одном месте, и агент читает их одинаково.
    Что учесть: скрипт, который читал item.next, должен читать next. Загрузка истории и установка навыка остаются
    только в выводе для человека.
  • chats media отвечает сообщениями той же формы, что история чата. Голосовое там теперь voice, а не audio,
    как в messages list. Id файла и видео MAX лежат в provider_ref вложения (provider_ref.file_id,
    provider_ref.video_id), а не на верхнем уровне вложения.
    Почему: раньше chats media отдавал вложения в собственной форме MAX, не так, как все остальные чтения.
    Что учесть: скрипт, который искал в ответе audio или читал file_id и video_id, должен искать voice и
    читать их из provider_ref. Фильтр --type audio по-прежнему выбирает голосовые.
  • max watch рисует сообщения тем же кодом, что messages list. Опрос показан вопросом, ответами и числом
    голосов. JSON и --jsonl не меняются.
    Что учесть: строки для человека могут выглядеть немного иначе, чем в 0.55.0. Скрипту нужен --jsonl.

Исправлено

  • Отчёт doctor report create заменяет метками также id сообщения, на которое отвечали, и id попыток записи.
    Метки позволяют сопоставить записи внутри одного отчёта и меняются при создании следующего.

Безопасность

  • Каждая запись проверяется в одном месте — общей защитой, из командной строки, через max serve и по MCP.
    Отправка, правка, удаление, реакции, отметка «прочитано», пересылка, модерация, изменения чатов, контактов и
    аккаунта проходят одни и те же проверки: уровень прав, MAX_READ_ONLY, список получателей и журнал отправок, а
    записи, которые видят другие люди (сообщения, пересылки, правки, удаления, новые группы и добавление людей), —
    ещё и лимит в час. deny и readonly запрещают запись. ask в терминале спрашивает или ждёт --yes
    (удаление — --allow-dangerous), а с --json без флага команда отказывает. По MCP отвечать некому, и запись
    уровня ask выполняется, как и раньше: решают права профиля, в том числе заданные серверу через --permission.
    Почему: раньше для MCP проверки шли отдельным путём внутри max; теперь путь один, и он общий с tg.
    Что учесть: для команд в терминале ничего не меняется. Если агент не должен удалять или отправлять без вас,
    задайте этому действию deny или readonly, а не ask: такие инструменты агенту даже не предлагаются.
    MAX_READ_ONLY=1 запрещает любую запись, в том числе по MCP.