WEB-341 · Задача · — · web
P1 Процессор задач мёртв с посадки 32: cron 401 (CRON_SECRET override в inner-скрипте)
Закрыт
P1 · важно
ведёт: —
Суть
## 2026-08-23 BOARDSWEEP: STALE-NOT-DEPLOYED
- Evidence: buildFixed is empty. No canonical deployment pointer or cron receipt is present; no remote cron mutation attempted.
- buildFixed: <empty>; canonical: v4-081ff4fb5 / 081ff4fb5f6110f8001daec7ed910ccef2e395dc.
- Status preserved by sweep: review.
Доказательства
[2026-08-24 STALEREV против 61bc04462; в проде с посадки 45 v4-5a4edbac3] Вердикт STILL-OPEN: нет authenticated cron receipt; проверить env cron-сервиса и получить один receipt. Отчёт: A1 /home/ubuntu/waves/STALEREVIEW-REPORT.md (STALEREVIEW_DONE).
[2026-08-25 ~09:40] WEB341_DONE commit 1e171ee. Корень: task-cron слал hardcoded/stale x-cron-secret вместо process.env.CRON_SECRET. Фикс: note-clone-tasks.service+timer, секрет из .env, 401→CRON_AUTH_FAILURE_BEACON+ненулевой exit. scoped tsc+cron gate+systemd verify rc=0, prod не трогали. СОБРАН в артефакте посадки 53 (L53_ARTIFACT_READY sha 58a83bd1, ждёт подпись+деплой owner).
[25.08 ~12:25] Фикс 1e171ee В ПРОДЕ посадкой 53. Операционная проверка на Pi: note-clone-tasks.timer тикает ежеминутно, service отдаёт JSON-результат (200-путь), CRON_AUTH_FAILURE_BEACON=0 за 10 мин пост-деплой. Unit-файлы уже стояли на Pi (flip-cron-secret.conf), секрет теперь из env — сходится. → review, нужна приёмка.
[2026-08-25 22:57Z] Автор web341 @1e171ee: корень — cron guard src/lib/cron/auth.ts сверяет x-cron-secret/Bearer с CRON_SECRET.trim(), inner-скрипт деплоя перетирал CRON_SECRET. Починен контракт + документация как деплой выставляет секрет. → review (негативы: валид→200, невалид/нет→401).
[2026-08-26 00:40Z] ПРИНЯТ (независимо, приёмщик≠автор): acc341 GO: cron auth positive+negative, timing-safe сравнение, CRON_SECRET provisioning контракт документирован. → done.
Починено в
a453b16
Лента
2026-08-25T08:48:32.417Z · fable-opsВ РАБОТЕ (A1 Luna, ветка web341, wt-web341). Ищу+чиню override CRON_SECRET во внутреннем скрипте (cron 401 → процессор задач мёртв с посадки 32). Плюс лог+маячок на 401 и инструкция оператору для authenticated cron receipt на проде. Соберётся в батч-лендинг.
Воркер
не привязан — привязать:
curl -X POST https://bugs.wool2.online/api/web/assign -H 'content-type: application/json' \
-d '{"issueId":"WEB-341","session":"<имя tmux-сессии>","host":"m4"}'
Обновлён
2026-08-25T23:41:04.507Z