Skip to content

specs(automation): плейбук входа в соцсети и перезапуск пода, которого не было - #4839

Merged
gHashTag merged 3 commits into
masterfrom
specs/browser-sign-in-and-pod-restart
Sep 26, 2026
Merged

gHashTag merged 3 commits into
masterfrom
specs/browser-sign-in-and-pod-restart

Conversation

@gHashTag

Copy link
Copy Markdown
Owner

Refs #4838

С 2026-09-24 по 2026-09-26 вход в соцсети через браузер-агента был невозможен. Симптом один, дефекта два — поэтому две спеки.

specs/automation/browser-pod-restart.t27

Живость по HTTP — не живость. Chromium в поде отвечал на /json/version и PUT /json/new, а Runtime.evaluate отваливался по таймауту на 21 с, скриншот возвращал «Internal error». Прочитать страницу или снять её было нельзя — значит, вход нельзя было довести до конца ни один раз. Обход это видел и вызывал единственное лекарство; лекарство врало: у драйвера, который работает в проде, stop() — задокументированный no-op, так что «перезапуск» возвращал тот же сломанный браузер и докладывал успех. Пода не перезапускался с 2026-09-23T11:21:26Z.

Что закреплено: браузер здоров, когда только что открытая страница что-то выполняет и отвечает; о перезапуске докладывают только после этого; невозможный перезапуск честно возвращает false, а человеку говорят, что нажать. Живой перезапуск подтверждён логом самого пода. Профиль всё это время был цел — он на томе, и спека это фиксирует, потому что в коде было написано обратное, и именно поэтому единственного лекарства избегали.

specs/automation/browser-sign-in.t27

LOGINS_NOTE велел агенту «follow the sign-in playbook» — этих слов больше нигде в коде не было. Цена: пять попыток войти на один сайт, по ~110 с, ни одна не стала входом; один выученный ярлык кнопки на пять сетей.

Что закреплено: порядок (дверь → прочитать страницу как она есть → нажать по ярлыку → человек сам вводит пароль и код → доказать кукой), дверь — всегда страница входа, а не главная, и два правила, которые не гнутся: секрет набирает человек, доказательство — только кука (страница может выглядеть приветливо для сессии, которую сайт уже отозвал).

Двух домов вместо одного — сознательно: порядок это константа и живёт в спеке, а чему научил конкретный сайт остаётся в browser_recipes, куда это пишут сами нажатия. Ярлыки — ровно то, что сайты меняют. Имена кук и домены не скопированы сюда: их единственный дом — logins.ts.

Проверка

t27c test-report --verbose specs/automation/browser-sign-in.t27   → 5/5 pass
t27c test-report --verbose specs/automation/browser-pod-restart.t27 → 5/5 pass

Прогон не вакуумный: подмена одного assert(STEPS == 5) на == 4 даёт 4/5 и FAIL с именем теста.

Что НЕ заявлено

Ни одна спека не утверждает, что через плейбук уже доведён живой вход, и что под перезапускается сам: последнему не хватает двух переменных сервиса, одна из которых — токен, который может выдать только владелец. Пока их нет, код честно отвечает false, а человек получает фразу «нажмите Закрыть, затем Открыть — входы сохранятся».

Третий коммит в ветке — chore(census): гейт, который отказывает молчаливому сдвигу цензуса, сам стоял на молчаливом (61 → 63 workflow-файла из 4ef9cc8cd и fba9509d2, никто не переблагословил). Переблагословлено отдельным коммитом, с указанием, какое число уехало и почему.

Код, который эти спеки описывают: 999-multibots-telegraf, ветка fix/browser-restart-and-sign-in-playbook.

🤖 Generated with Claude Code

gHashTag and others added 3 commits September 26, 2026 20:55
…ying so

The gate that refuses a silent census drift was itself standing on a silent
one. Two workflow files arrived in .github/workflows -- 4ef9cc8 and
fba9509 -- and neither commit re-blessed the pins, so every commit since has
been met by a failure about somebody else's number.

What moved and why: "workflow files read" 61 -> 63 in quiet.txt and shell.txt,
because two workflows were added; "named a path but not quiet" 143 -> 147 in
the same pass, from steps inside those two files. No gate shape changed.

Refs #4838

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…appened

Three days, 2026-09-24 to 2026-09-26, in which the owner could not be signed
into any social network through the agent. Two defects, one symptom, so two
specs -- each pinning what must not drift, each separating what was measured
from what is merely claimed.

browser-pod-restart.t27: HTTP liveness is not liveness. Chromium answered
/json/version while Runtime.evaluate timed out at 21 s, so a page could be
neither read nor photographed, and the "restart" the round called was a
documented no-op that handed the same broken browser back and reported success.
A browser is healthy when a page it just opened RUNS something and answers; a
restart is reported only after that. The live restart is quoted from the pod's
own log; doing it unattended is not claimed -- two variables are missing.

browser-sign-in.t27: the order (door, read, press, the person types, prove by
cookie), the doors being sign-in pages and never home pages, and the two rules
that do not bend -- the person types every secret, and a cookie is the only
proof. What a site turned out to want stays learned where the presses write it,
not declared here, because labels are what sites change. That the playbook
carries a sign-in to completion against a live network is not claimed.

Both compile; all 10 test blocks pass under t27c test-report.

Refs #4838

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…hat pin it

Refs #4838

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

📓 NotebookLM Notebook linked to this PR

This notebook contains session context, decisions, and artifacts for this work.

@github-actions

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-09-26 13:57:00 UTC

Summary

Status Count
Total Open PRs 36
PRs with Failing Checks 32
PRs with All Checks Green 4
READY 3
FAILING 32
PENDING 0
NO CHECKS YET 0

These columns do not partition: 3 + 32 + 0 + 0 = 35, and there are 36 open PRs. A PR is being counted twice or not at all.

Seal Status

  • ⚠️ STALE -- sha256(compiler.rs)=403499176a5d != manifest seal=87e5cbd3ad94.
    The committed NMSE numbers were certified against an older compiler.rs.
    Run scripts/reseal-check.sh locally for the two-step reseal command (advisory; not a merge gate).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant