Skip to content

0.29.0

Choose a tag to compare

@github-actions github-actions released this 06 Oct 18:50
· 571 commits to main since this release
Immutable release. Only release title and notes can be modified.

Что нового

  • max chats tracking list|show|add|remove управляет списком групп для наблюдения за составом.
    Можно посмотреть сохранённые снимки числа участников, добавить группу без немедленного чтения
    или убрать её, сохранив историю. Для записи состава используйте max chats members fetch.
    В MAX serve пока не читает участников ежедневно: повторяйте сбор вручную или по своему расписанию.

  • Профиль человека. max contacts profile <человек> показывает, что MAX сообщает о человеке: имя, ссылку,
    описание, когда создан аккаунт (registered, по данным MAX), есть ли своё фото, — и для каждого общего чата,
    сколько его сообщений в локальной копии, первое и последнее. Телефон, если MAX его прислал, — последние четыре
    цифры, целиком с --show-phone. Один запрос к MAX сверх contacts show. MCP: max_contacts_profile.

  • Автоответы по правилам — только тестовым аккаунтам. max serve отвечает на входящие сообщения по
    правилам из <профиль>.replies.json, но лишь тем, кто назван в testers; отправка — только при
    permissions.replies.send allow. Команды max replies test, pause, resume, status. Страница —
    docs/replies.md.

  • max contacts context <человек> --chat <чат> (можно повторять) даёт его последние сообщения в каждом чате — только
    время и текст, чтобы агент пересказал; -v добавляет номера и ссылки, --limit — на чат, --refresh сначала читает
    последнюю страницу чата у MAX.

  • Использует cli-messaging 0.152.0.

  • max contacts check <человек> — похож ли человек на бота. Оценка по профилю и по сохранённым сообщениям
    (ничего не писал, первое сообщение — ссылка, один текст в нескольких чатах), у каждой причины — источник.
    Публичные списки спамеров ведут только Telegram, поэтому для MAX они не запрашиваются. max chats members audit --deep <n> так же проверяет первых n участников, по одному в секунду.

  • max chats members fetch сохраняет снимки участников, а history показывает изменения.
    Чтение истории доступно offline, с фильтром --since-time. Снимок ограничивается --budget;
    выходы фиксируются только после полного чтения. Ежедневное отслеживание ждёт поддержки
    фоновой службы MAX. Работа с участниками.

  • max stats charts строит графики статистики чата. Команда возвращает нейтральное описание в JSON,
    а по --output сохраняет SVG с тёмной темой: сообщения, активные авторы, вступления и выходы по дням или неделям.
    Пропущенные даты остаются разрывами, неполные данные отмечаются явно. Существующий файл не перезаписывается.
    MCP max_stats_charts возвращает описание из локального хранилища; PNG появится отдельно.
    Новая библиотека добавляет около 61,6 MiB распакованных файлов до дедупликации; она загружается в процесс
    только при запросе изображения. Как пользоваться.

  • Реакции на посты канала сохраняются и при max store fetch. MAX присылает число реакций вместе с историей
    канала, и теперь max его не теряет: max chats stats может ранжировать посты канала по реакциям без отдельного
    запроса.

  • max chats stats <чат> — цифры группы или канала за период. Сообщения, сколько людей писало, ответы,
    реакции, лучшие посты, вопросы и как быстро на них отвечали, кто вошёл и вышел. Считается по локальному хранилищу;
    входы и выходы спрашиваются у MAX. Если в хранилище не вся история чата, числа — нижняя граница, и команда
    подсказывает, какой store fetch её дополнит.

  • Поиск читает текст файлов. attachments extract сохраняет текст TXT, DOCX и PDF с текстовым слоем;
    content: находит его. Для DOCX/PDF нужны необязательные mammoth/unpdf; фото и сканы читает агент
    и сохраняет результат через attachments text set. По умолчанию читаются только скачанные файлы;
    --download --output-dir явно скачивает их сначала.

  • Поиск можно сначала обновить и показать цепочку ответов. --sync-first ограничивает скачивание
    пятью чатами, 500 сообщениями и 30 секундами; неполное обновление не прячет локальную выдачу.
    --thread добавляет ограниченный граф ответов с источниками связей; без графа используется контекст по времени.

  • Поиск бесед принимает строгий фильтр и явный охват аккаунтов. --filter ограничивает беседы до
    ранжирования; весь фильтр должен совпасть хотя бы у одного сообщения. --source расширяет охват
    явно. Агент может связать сообщения целиком через MCP: инструкция link-conversations, пачки,
    сохранение связей и перестройка графа.

  • Модели векторов и анализа настраиваются отдельно по профилям. Локальные векторы и ваш агент
    остаются по умолчанию. Внешний сервис получает текст только при явном выборе; build --analyze --chat
    спрашивает согласие и запоминает его для аккаунта, чата и сервиса до отзыва.

  • Свои метки: max tags add, remove и list. Метку можно повесить на чат (--chat), человека
    (--contact) или одно сообщение (--message), а tag:<метка> в поиске находит помеченное. Метки
    хранятся только в архиве на этой машине и в MAX не уходят. Метка — от 1 до 32 латинских букв, цифр и
    дефисов. Агенту доступны те же действия через MCP. См. Поиск сообщений.

  • Сохранённые запросы: max searches и --saved. max searches create <имя> [запрос] сохраняет
    запрос с его опциями, max messages search --saved <имя> и max messages stats --saved <имя>
    запускают его. Слова, добавленные к --saved, сужают запрос, а опции в командной строке заменяют
    сохранённые. searches list, show, history, delete и clear показывают и чистят сохранённое
    и историю. Поэтому запрос у messages search теперь необязателен, если есть --saved.

  • max contacts context <человек> — что архив знает об одном человеке. Общие чаты, последние
    сообщения в обе стороны, его недавние сообщения и где его упоминали. Команда читает только архив и
    ничего не отмечает прочитанным. max contacts link записывает, что аккаунт в MAX и аккаунт в
    Telegram — один человек, тогда context показывает обоих; max contacts unlink отменяет это.
    Что учесть: context возвращает тексты сообщений, поэтому permissions.messages: deny его тоже
    запрещает.

  • max store repair чинит структуру архива, ничего не удаляя. Таблицу другой формы он оставляет
    копией рядом с новой и называет её в ответе; --dry-run показывает, что будет сделано, и ничего не
    меняет. max store copies delete <имя> удаляет одну такую копию. См. Архив.

  • Поиск учитывает основы слов, если включить. max config set searchStemmers.cyrillic russian и
    searchStemmers.latin spanish (или english) — настройка одна на весь архив, все профили и оба
    мессенджера. После неё нужен max store reindex.

  • max flood clear забывает запомненные ожидания и снимает удержание отправок. Их видно в
    max server status, в новом поле flood. Что учесть: MAX пока не называет, сколько ждать, поэтому
    для личного аккаунта MAX там будет пусто; от частых входов по-прежнему защищает пауза входа, которую
    показывает max doctor. В MCP этой команды нет намеренно: агент не должен снимать ограничение.

  • У поиска три руководства. Поиск сообщений — поиск на каждый день по словам,
    людям, датам, файлам, ссылкам и меткам; поиск по темам — беседы, векторы и
    что уходит внешней модели; язык запросов — справка.

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

  • Поиск по смыслу у локальной e5-small отбрасывает слабые совпадения до объединения со словами.
    Косинусная близость должна быть выше 0,80; совпадения по словам остаются. Выдача может быть короче,
    а результат, найденный обоими способами, может стать только совпадением по словам.

  • Архив получает таблицы текста вложений и согласий на анализ. Это локальная миграция при первом
    открытии; старые сообщения сохраняются. Перед обновлением большого архива сделайте резервную копию.

  • Архив теперь хранит каждый удачный запрос messages search и messages stats — и из командной
    строки, и из MCP.
    Хранятся сам запрос и опции, но не найденные сообщения; последние 1000 запусков.
    Почему: из этой истории работают searches history и --saved.
    Что учесть: если запросы не должны оставаться на диске, запускайте с --no-record или поставьте
    max config set record false; max searches clear стирает историю, сохранённые запросы остаются.

  • При первом запуске архив переходит на новую схему. Появляются таблицы меток, сохранённых
    запросов и основ слов, max store migrate достраивает индекс основ для старых сообщений. Что учесть:
    на большом архиве store migrate и store reindex идут дольше прежнего. Архив общий с tg, и
    прежние версии max и tg продолжают его открывать.

  • max inbox, inbox --new, review и chats list --unread (а также --search и --kind)
    смотрят все чаты, которые MAX прислал при входе, а не только 200 самых свежих.
    Раньше чат с
    непрочитанным ниже по списку пропускался молча. По-прежнему обрабатывается не больше 20 чатов за
    запуск, остальные названы в заметке skipped N chats. Что учесть: partial: true теперь значит
    только одно — MAX прислал при входе не все чаты.

  • max chats list говорит hasMore: true на последней непустой странице, если MAX прислал не все
    чаты.
    Раньше список выглядел полным. Что учесть: скрипт, который листает до hasMore: false,
    остановится на пустой странице.

  • max messages list и max store fetch больше не принимают короткую страницу за начало чата. MAX
    не сообщает, есть ли сообщения старше, а страница может прийти короче --limit и в середине
    переписки. Теперь после короткой страницы max запрашивает одно более старое сообщение: если оно
    есть, hasMore: true, если нет — это начало чата. Что учесть: это один лишний запрос к MAX на каждую
    короткую страницу, и hasMore чаще бывает true.

  • max config set и config unset принимают searchStemmers.cyrillic и searchStemmers.latin, а
    config show --json показывает их в новом поле storeSettings.
    Эти настройки хранятся в архиве,
    а не в файле настроек, поэтому --defaults, --personal и --bot с ними отказывают, а под
    MAX_PROFILE_LOCK их менять нельзя.

Исправлено

  • Ошибка в файле правил автоответов больше не выводит фрагменты этого файла в журнал службы.

  • max mcp --http: Claude и ChatGPT теперь могут завершить вход. Страница входа заставляла браузер отправлять
    форму как будто ниоткуда, и max отвечал «Origin not allowed». Теперь вход работает (cli-messaging 0.152.0).

  • Ссылка на сообщение из другого аккаунта больше не открывает одноимённое сообщение текущего.
    messages show/context отказывает; MCP принимает offline: true для обычного локального контекста.

  • Строгий поиск по регулярному выражению text:/…/ находит слова так же, как поиск по словам.
    Раньше text:/Квартир.*/ или text:/счёт/ не находили слова, которые есть в архиве, из-за регистра
    и буквы «ё». body: по-прежнему различает регистр.

  • Ошибки строгого поиска говорят, что делать. ~ подсказывает --language legacy и слово*;
    слишком короткий префикс вроде к* называет предел в 10 000 слов и просит префикс длиннее;
    index_not_ready говорит, сколько индекса готово, и точную команду max store migrate.

  • MCP не пишет историю поиска, если запись выключена. Раньше record: false выключал историю
    только в командной строке.