Проблема
direct changes check и direct changes check-campaigns сейчас принимают дату без Z, например:
direct changes check-campaigns --timestamp 2026-04-14T00:00:00
Это не совпадает с документацией Яндекс Директа.
Официальная документация:
В документации параметр Timestamp указан в формате:
Пример из документации:
Значит CLI должен принимать именно такой формат:
direct changes check-campaigns --timestamp 2026-04-14T00:00:00Z
А формат без Z должен отклоняться.
Как это получилось
#228 был закрыт через PR #229.
- PR
#229 создал axisrow.
- Основной коммит в PR
#229 был с Co-Authored-By: Claude Opus 4.7.
- PR
#229 смержил axisrow.
- В PR
#229 было закреплено поведение, при котором CLI принимает дату без Z и сам добавляет Z перед запросом.
#235 потом был закрыт вручную как not planned.
- Отдельного fix PR для
#235 не было.
Это решение оказалось неверным: для Changes.check и Changes.checkCampaigns нужно делать как в документации Яндекса 1 в 1.
Связь с MCP-плагином
Это связано с axisrow/yandex-direct-mcp-plugin#115.
После исправления CLI плагин должен передавать дату с Z, а не удалять Z перед вызовом direct.
План исправления
- В
direct-cli изменить проверку даты для команд changes.
- Разрешить только формат:
- Сделать так, чтобы:
parse_datetime("2026-04-14T00:00:00Z")
возвращал:
- Сделать так, чтобы:
parse_datetime("2026-04-14T00:00:00")
падал с понятной ошибкой.
- Обновить подсказки команд:
direct changes check --help
direct changes check-campaigns --help
Они должны показывать формат YYYY-MM-DDTHH:MM:SSZ.
-
Обновить README и AGENTS.md, чтобы примеры changes были только с Z.
-
Обновить тесты:
changes check принимает 2026-04-14T00:00:00Z;
changes check-campaigns принимает 2026-04-14T00:00:00Z;
2026-04-14T00:00:00 отклоняется;
- явно неправильная дата отклоняется;
- в запрос к API уходит
Timestamp: "2026-04-14T00:00:00Z".
Что не делаем в этом issue
- Не добавляем поддержку
+03:00.
- Не меняем другие команды с датами.
- Не исправляем MCP-плагин в этом PR.
Цель этого issue: привести Changes.check и Changes.checkCampaigns в direct-cli к формату Яндекса 1 в 1.
Проблема
direct changes checkиdirect changes check-campaignsсейчас принимают дату безZ, например:Это не совпадает с документацией Яндекс Директа.
Официальная документация:
Changes.check: https://yandex.ru/dev/direct/doc/ru/changes/checkChanges.checkCampaigns: https://yandex.ru/dev/direct/doc/ref-v5/changes/checkCampaigns.htmlВ документации параметр
Timestampуказан в формате:Пример из документации:
Значит CLI должен принимать именно такой формат:
А формат без
Zдолжен отклоняться.Как это получилось
#228был закрыт через PR#229.#229создалaxisrow.#229был сCo-Authored-By: Claude Opus 4.7.#229смержилaxisrow.#229было закреплено поведение, при котором CLI принимает дату безZи сам добавляетZперед запросом.#235потом был закрыт вручную какnot planned.#235не было.Это решение оказалось неверным: для
Changes.checkиChanges.checkCampaignsнужно делать как в документации Яндекса 1 в 1.Связь с MCP-плагином
Это связано с
axisrow/yandex-direct-mcp-plugin#115.После исправления CLI плагин должен передавать дату с
Z, а не удалятьZперед вызовомdirect.План исправления
direct-cliизменить проверку даты для командchanges.возвращал:
падал с понятной ошибкой.
Они должны показывать формат
YYYY-MM-DDTHH:MM:SSZ.Обновить README и
AGENTS.md, чтобы примерыchangesбыли только сZ.Обновить тесты:
changes checkпринимает2026-04-14T00:00:00Z;changes check-campaignsпринимает2026-04-14T00:00:00Z;2026-04-14T00:00:00отклоняется;Timestamp: "2026-04-14T00:00:00Z".Что не делаем в этом issue
+03:00.Цель этого issue: привести
Changes.checkиChanges.checkCampaignsвdirect-cliк формату Яндекса 1 в 1.