gendesign/scripts
bot-backend 2cc096a047 fix(caddy): ретрай подключения к фронту МЕРЫ — остаток окна подмены (#3274)
Коммит выше свёл окно подмены фронта с 30–90 с до его собственных ~0,5 с.
Эти полсекунды по-прежнему видны посетителю: Caddy набирает апстрим сразу и
при отказе соединения отдаёт ошибку без повтора (замер на стенде: 1 × 502).

(tradein_frontend_retry) — lb_try_duration 2s + lb_try_interval 100ms,
импортируется во все 9 блоков `reverse_proxy tradein-frontend:3000`
(gendsgn.ru/trade-in/* и публичные пути meraocenka.ru).

В #3274 lb_try_duration отвергнут — и правильно: держать посетителя минуту
в ожидании ретрая хуже честной ошибки, инструмент рассчитан на разрыв в
сотни миллисекунд. Возражение снято ПОРЯДКОМ, а не спором: окно сначала
сведено к сотням миллисекунд правкой деплоя, и только после этого ретрай
применим. Стенд (реальный образ фронта + Caddy 2, подмена под пробой
5 раз/с): без ретрая 1 × 502, с ретраем 241/241 × 200, один запрос подождал
0,55 с. Потолок измерен там же: при длительной аварии каждый запрос ждёт
2,07 с и получает ту же 503-заглушку, что и раньше.

Бэкенду ретрай НАМЕРЕННО не дан: его старт — единицы секунд, 2 с не хватит,
а больше — уже та самая плата ожиданием, против которой возражал issue.

Гейт scripts/check-frontend-swap-window.py держит обе половины: `frontend`
не должен вернуться в общий SERVICES, каждый апстрим фронта обязан нести
импорт. Обе половины обратимы молча — деплой остаётся зелёным, а отказ
видно только непрерывной пробой во время деплоя. Фальсифицирован: снятие
любой половины красит гейт (проверено на реальных файлах, не только
--selftest).

Refs #3274
2026-09-12 00:45:18 +05:00
..
auth fix(ops): repair broken main-DB backup + harden auth scripts/docs (#71 #427 #429 #428) 2026-06-13 20:13:04 +05:00
claude-hooks chore(hooks): точечный allowlist на три ключа метрик вместо снятия гарда 2026-08-26 13:09:37 +03:00
bootstrap_glitchtip.sh fix(infra): bootstrap_glitchtip — \gexec instead of DO block (psql var trap) (#219) 2026-05-16 15:54:29 +00:00
bootstrap_schema_migrations.sh feat(infra): auto-apply data/sql/*.sql migrations in deploy pipeline (#150) (#151) 2026-05-15 08:06:54 +03:00
build_osrm.sh feat(analyze): per-category OSRM routing (foot vs driving) (#39 A3) 2026-06-27 04:30:25 +05:00
check-caddy-snippet-mounts.py ci(caddy): гард — import обязан быть покрыт volume-маунтом 2026-08-26 12:07:29 +03:00
check-compose-ambiguous-hosts.py прод: лендинг ходил в чужой бэкенд — имя сервиса двоится между продуктами 2026-08-30 16:07:41 +05:00
check-deploy-drift.sh feat(ops): сторож расхождения «прод ↔ main» — молчаливый недоехавший деплой становится видимым (#3029) 2026-08-27 12:35:43 +03:00
check-frontend-swap-window.py fix(caddy): ретрай подключения к фронту МЕРЫ — остаток окна подмены (#3274) 2026-09-12 00:45:18 +05:00
check-latest-image-revision.sh fix(ci): деплой падает громко, если :latest отстаёт от головы по компоненту (#2950) (#3023) 2026-08-21 12:19:07 +00:00
check-migration-lock-timeout.py fix(migrations): закрепить lock_timeout для блокирующего DDL и ловить невалидные индексы (#2791) 2026-08-07 11:21:28 +00:00
check-workflow-ports.py ci: гейт против публикации занятых на VPS портов в workflow (#2757) (#2759) 2026-08-06 21:40:05 +00:00
cleanup-merged-worktrees.sh fix(devops): cleanup-merged-worktrees.sh — 3 бага, найденные вживую на 69 забытых worktree (#2418) 2026-07-04 13:00:14 +00:00
cleanup-stale-claims.sh chore(claude): retire autonomous bot-pipeline 2026-08-28 22:27:00 +03:00
cleanup-worktrees-aggressive.py fix(week-review): автофиксы код-ревью — 169 issue (label «week ревью 1») 2026-06-15 20:21:11 +05:00
cleanup_ghosts.py fix(week-review): автофиксы код-ревью — 169 issue (label «week ревью 1») 2026-06-15 20:21:11 +05:00
migrate_kg_to_obsidian.py fix(week-review): автофиксы код-ревью — 169 issue (label «week ревью 1») 2026-06-15 20:21:11 +05:00
probe-deploy-window.sh fix(deploy): подменять фронт МЕРЫ отдельной командой — окно 30–90 с уходит 2026-09-12 00:44:46 +05:00
setup-couchdb.sh feat(deploy): split obsidian stack from main + path-filtered GHA 2026-05-11 09:51:31 +03:00
setup-metrics-exporter-dsn.sh fix(observability): агент не падает из-за переменной чужой роли (#3078) 2026-08-26 12:45:31 +03:00
setup-metrics-grafana-role.sh fix(observability): привилегированную роль спрашиваем у контейнера, а не угадываем (#3078) 2026-08-26 12:08:37 +03:00
setup-metrics-secrets.sh feat(observability): стек метрик и логов — Prometheus, Loki, Grafana, агенты на обоих хостах 2026-08-26 10:45:54 +03:00
smoke-mera-perimeter.sh feat(mera-b2c): микроразметка schema.org и картинки превью для публичного сайта 2026-09-10 19:06:35 +03:00