specs(automation): плейбук входа в соцсети и перезапуск пода, которого не было - #4839
Merged
Merged
Conversation
…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>
Contributor
|
📓 NotebookLM Notebook linked to this PR
This notebook contains session context, decisions, and artifacts for this work. |
Contributor
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.t27LOGINS_NOTEвелел агенту «follow the sign-in playbook» — этих слов больше нигде в коде не было. Цена: пять попыток войти на один сайт, по ~110 с, ни одна не стала входом; один выученный ярлык кнопки на пять сетей.Что закреплено: порядок (дверь → прочитать страницу как она есть → нажать по ярлыку → человек сам вводит пароль и код → доказать кукой), дверь — всегда страница входа, а не главная, и два правила, которые не гнутся: секрет набирает человек, доказательство — только кука (страница может выглядеть приветливо для сессии, которую сайт уже отозвал).
Двух домов вместо одного — сознательно: порядок это константа и живёт в спеке, а чему научил конкретный сайт остаётся в
browser_recipes, куда это пишут сами нажатия. Ярлыки — ровно то, что сайты меняют. Имена кук и домены не скопированы сюда: их единственный дом —logins.ts.Проверка
Прогон не вакуумный: подмена одного
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