Skip to content

Регрессия 0.3.11: changes check отвергает ISO 8601 timestamp с суффиксом Z #235

Description

@axisrow

Проблема

direct changes check и direct changes check-campaigns сейчас принимают дату без Z, например:

direct changes check-campaigns --timestamp 2026-04-14T00:00:00

Это не совпадает с документацией Яндекс Директа.

Официальная документация:

В документации параметр Timestamp указан в формате:

YYYY-MM-DDThh:mm:ssZ

Пример из документации:

2015-05-24T23:59:59Z

Значит 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.

План исправления

  1. В direct-cli изменить проверку даты для команд changes.
  2. Разрешить только формат:
YYYY-MM-DDTHH:MM:SSZ
  1. Сделать так, чтобы:
parse_datetime("2026-04-14T00:00:00Z")

возвращал:

2026-04-14T00:00:00Z
  1. Сделать так, чтобы:
parse_datetime("2026-04-14T00:00:00")

падал с понятной ошибкой.

  1. Обновить подсказки команд:
direct changes check --help
direct changes check-campaigns --help

Они должны показывать формат YYYY-MM-DDTHH:MM:SSZ.

  1. Обновить README и AGENTS.md, чтобы примеры changes были только с Z.

  2. Обновить тесты:

  • 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions