Skip to content

direct masters — follow-up: Этапы B/C/D update, живая проверка add/archive/update, ревью #647 #648

Description

@axisrow

direct masters — follow-up: незавершённые этапы и живая верификация

Context

Умбрелла-issue для хвостов, оставшихся после серии #628 (list/get), #630 (suspend/resume),
#633 (archive, было delete — переименован после живой разведки, удаления в UI МК нет),
#631 (update, только Этап A), #632 (add). Все пять смержены в main (PR #629, #641, #645,
#646, #647), но у трёх есть незакрытые хвосты, которые issue-автоклоуз (Closes #NNN в
squash-merge) скрыл, поскольку каждый PR закрывал свой issue целиком, хотя объём был
покрыт частично.

Пункты

1. masters update — Этапы B/C/D (было issue #631, закрыт автомёржем PR #646 не по объёму)

#631 описывал 4 этапа; реализован и смержен только Этап A (недельный бюджет, цель
продвижения, «Директ помогает»). Не реализованы:

Подход и риски по каждому этапу — см. исходный текст #631 (в истории issue, ссылка ниже).
Каждая под-секция — отдельный PR с независимым парсером/сеттером, чтобы редизайн одной
секции не ломал остальные.

2. Живая верификация всех трёх мутирующих команд

masters update, masters add, masters archive реализованы и покрыты только офлайн-
тестами на fake Page/Locator — ни одна ни разу не проверялась живым вызовом на реальном
аккаунте (нет sandbox для браузерных мутаций, живые проверки делались только read-only
через claude-in-chrome, реальные изменения откатывались до сохранения).

  • masters update — живая проверка каждого поля Этапа A (бюджет/цель/toggle) через
    реальный direct masters update <id> --weekly-budget ... с последующей сверкой через
    masters get.
  • masters add — живой запуск (--dry-run недоступен для browser-команд) на одноразовой
    тестовой кампании, с последующей архивацией через уже готовый masters archive.
  • masters archive — живая архивация той же одноразовой тестовой кампании.

Риск: PR #646 уже поймал один HIGH-severity баг именно на этапе живой проверки (promotion-
goal verification сравнивал двухстрочный inner_text с однострочным label — юнит-тесты
этого не ловили). Аналогичные скрытые баги вероятны в add/archive, которые живую
проверку не проходили вовсе.

Частично закрыто задним числом:

3. Формальное ревью PR #647 (masters add)

#645 и #646 прошли по два раунда ревью (cycle-review с Codex для #645, ручной
code-reviewer х2 для #646). #647 не проходил формального ревью — было только сверено
вручную, что паттерны (get_by_role(exact=True), _verify_created) портированы из уже
проверенного #646. Стоит прогнать /cycle-review на смерженном коде для очистки долга.

Верификация

По каждому пункту — см. подпункты выше. Общий инвариант: живая проверка обязательна перед
закрытием пунктов 1 и 2, т.к. это DANGEROUS-команды без песочницы.

Продолжение #628, #630, #633, #631, #632 (все смержены).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions