[КРИТИЧНО] МЕРА слепа: за всю историю не отправлено ни одного уведомления — в GlitchTip нет ни правил, ни получателей #2673
Closed
opened 2026-08-05 19:11:40 +00:00 by bot-backend
·
7 comments
No Branch/Tag specified
main
fix/3469-showcase-schedule
fix/3443-caddy-selfdowntime
fix/3463-db-statement-timeout
fix/3448-caddy-only-detection
fix/metrics-deploy-reloads-prometheus
feat/landing-showcase-band
fix/3452-corridor-advisory-zone
fix/alert-value-is-not-the-ratio
fix/3449-geocoder-cancel-orphan
fix/3451-tvf-deals-rooms
fix/msk-collector-net-retry
feat/msk-yandex-import
fix/3051-fetch-deals-rooms-dropped
feat/msk-collector-cian
fix/3256-asking-to-sold-buckets
fix/3083-estimate-throughput
fix/3274-part2b-gate
fix/3274-part2a-caddy-retry
fix/perimeter-smoke-retry-on-no-response
fix/3274-zero-downtime-frontend
fix/3274-part1-deploy-swap
fix/3412-cian-instance-relaunch
fix/3415-bucket-done-only-if-phases-ok
chore/backend-pool-wiring-tails
fix/3398-pool-ops-off-event-loop
fix/3402-followups-ban-kinds-curl
feat/3404-proxy-run-attribution
fix/cian-captcha-is-platform-refusal
refactor/3390-single-runs-module
fix/3398-estimator-valuations-proxy-pool
fix/3386-estimator-imv-proxy-pool
fix/3394-cian-sweep-houses-proxy-pool
fix/3393-interrupted-runs-outside-streaks
fix/drain-marks-inflight-app-tasks
fix/3384-no-proxy-at-batch-start
fix/3197-yandex-newbuilding-proxy-pool
fix/3376-price-history-decimal-slips
fix/backend-proxy-pool-flags
fix/3197-cian-history-backfill-proxy-pool
fix/3288-sidecar-ban-status-code
fix/3375-yandex-fullload-on-bucket-contract
fix/3380-deploy-metrics-alloy-recreate
fix/3354-alloy-query-secret-scrub
fix/3360-admin-prefix-anon-404
fix/3368-yandex-leaf-complete-flag
fix/3369-domclick-cancel-checkpoint
fix/3225-domklik-diff-percent
fix/smoke-history-path
fix/3288-breaker-block-kind
fix/3355-drain-mark-fullloads
fix/3191-yandex-detail-completeness
fix/3359-containment-cian-yandex
fix/3323-payment-init-fail-409
fix/3172-freshness-by-data
fix/3288-avito-ban-per-source
fix/3253-domclick-house-fields
fix/3312-defer-interval-minutes
fix/3324-rbac-401-oracle
fix/3274-deploy-window-error-page
fix/3343-auth-latency-flaky
fix/3315-exhaustive-containment-skip
fix/3338-backfill-save-false
fix/3339-thin-market-badge
fix/3154-glitchtip-secret-log-leak
fix/3333-drain-mark-all-sweeps
fix/3323-imv-thin-market-gate
fix/3324-mera-perimeter
fix/3323-coverage-copy-honesty
fix/3332-domclick-counter-identity
fix/3324-ptica-deploy-gate
fix/3316-role-single-source
fix/3319-citysweep-checkpoint
fix/3322-rosseti-stable-key
fix/3320-v2-honest-zeros
fix/3321-draft-fields-survive
fix/mera-mobile-nav-and-sticky
fix/audit-form-ux
fix/audit-coverage-500
fix/audit-dkp-price
fix/audit-accuracy-window
fix/audit-faq-contradiction
fix/perimeter-smoke-after-payments
feat/b2c-landing-honest-copy
feat/b2c-landing-live-numbers
feat/b2c-v3-becomes-root
feat/b2c-v3-port-v1-blocks
feat/b2c-report-redesign
feat/b2c-landing-v3-full
feat/3192b-yandex-phones
feat/3168-backfill-cursor-resume
fix/3118-domclick-no-proxy
fix/3170-yandex-combo-checkpoint
feat/3074-newbuilding-sweep-resume
fix/3163-infra-topic-default
fix/3156-tgbot-error-type
feat/3163-infra-topic-split
fix/3161-alertmanager-route-prefix
fix/3155-prometheus-no-alertmanager
feat/2997-drop-listings-geom-idx
fix/3122-boot-reap-observable
feat/3122-boot-reap
feat/3051-houses-region-code
feat/3074-cian-anchor-checkpoint
feat/3051-region-registry
fix/2656-anchor-ratio-freshness
fix/3114-scrub-credentials-in-logs
fix/3078-grafana-single-auth
fix/3081-honest-progress
fix/3063-pro-seller-derive
fix/3074-checkpoint-survives-claim
fix/3082-estimate-concurrency
fix/3044-enriched-total-seen
fix/telegram-pin-selectel-override
chore/compose-host-parameterised-resources
fix/revisit-floor-lateral-lookup
fix/avito-detail-fields
fix/3034-avito-fingerprint
fix/avito-offers-per-page
feat/3033-avito-secondary-filter
fix/2203-restore-drill-readiness
feat/2203-backup-staleness-and-forgejo
fix/2990-clean-start-initdb
fix/2924-yandex-jk-resolve-tried-at
fix/2992-upsert-distinct-gate
fix/2998-rosreestr-q2-partitions
feat/2936-null-penalty-flag
fix/2996-mislocated-houses-watchdog
fix/1781-secondary-only-param
fix/2934-risks-coverage
fix/2464-three-small
fix/2464-two-docstrings
fix/2464-zouit-label
fix/2464-building-pct-guard
fix/2464-download-binary-retry
fix/2986-permits-key
fix/2464-tep-docstring
fix/2464-act-date-backfill
fix/2464-area-bin-null
fix/2464-act-date-citation
fix/2464-detect-kind
fix/2464-status-negation
fix/2464-objective-zombie-sweep
fix/2464-inert-retry-config
fix/2464-default-profile-unique
fix/2464-zombie-any-running
fix/2464-catalog-skipped-counter
fix/2464-heat-loader-tx
fix/2464-objective-run-stuck
fix/2464-catalog-waf-breaker
fix/2464-lock-key-order
fix/2464-backfill-waf-abort
fix/2464-docs-vs-code
fix/2464-land-reservation-dedup
fix/2464-manual-list-validation
fix/2464-capacity-savepoints
fix/2464-leads-window-naming
fix/2464-zouit-count-label
fix/2464-catalog-batch-commits
fix/2464-html-zoning-fallback
fix/2950-lock-wait-observable
fix/2956-freshness-counts-failed-harvest
fix/2950-host-lock
fix/2953-nominatim-throttle
fix/2950-deploy-docker-lock
fix/2464-ird-lookups-savepoint
fix/2464-parcels-savepoint-pair
fix/2674-deal-floor-display
docs/2854-stale-justifications
chore/2857-drop-placeholder-columns
fix/2855-probe-protected-path
fix/2674-has-panorama
fix/house-imv-anchor-era
fix/2674-quality-cadastre-column
fix/sber-freshness-guard
fix/dkp-corridor-as-of
fix/scheduler-resume-checkpoint
fix/quarter-target-from-neighbour
fix/2687-domclick-ban-kind-platform
fix/2814-address-backfill
fix/2677-house-anchor-renovation
feat/tradein-paid-retention
chore/ci-config-cleanup
feat/mera-b2c-privacy
feat/tradein-payments-schema
chore/2674-dead-code-sweep
fix/2674-matching-tiers-honesty
fix/2674-avito-full-load-coverage
fix/2674-admin-metrics-honesty
fix/2674-writers-honor-schema
fix/2674-alerts-actually-fire
fix/2679-scraper-deploy-parity
fix/2674-house-imv-params
fix/2666-discount-plausibility-gate
feat/2435-cian-house-enrichment
fix/2657-domclick-block-not-done
feat/2571-login-throttle
fix/2660-display-freshness-segment
fix/2658-loud-skip-status
fix/2603-geocode-city-hint-tails
feat/2600-per-source-proxy-health
feat/tradein-v2-exposure-in-result-card
fix/tradein-avito-browser-proxy-pool
chore/tradein-cut-wasteful-scraping
fix/tradein-v2-deals-fallback-visible
fix/tradein-city-stamp-geo-guard
fix/tradein-cian-oblast-secondary
fix/tradein-implausible-build-year
fix/tradein-snapshot-query-perf
fix/tradein-asking-sold-city-scope
chore/tradein-purge-dead-mobileproxy
feat/tradein-asocks-rotation
fix/tradein-region-code-foreign-cities
fix/tradein-proxy-pool-self-healing
fix/tradein-backfill-listing-city-from-url
fix/tradein-geocode-queue-active-only
fix/tradein-geocode-city-hint
chore/tradein-remove-yandex-scripts
fix/tradein-listing-city-from-sweep
chore/tradein-remove-yandex-geocoder
chore/tradein-remove-n1
fix/tradein-geocoder-fail-closed
fix/tradein-ui-city-label-clip
feat/tradein-ui-city-hint
fix/tradein-coords-backfill-city-gate
fix/tradein-geocoder-city-default
fix/tradein-anchor-geo-scope
fix/tradein-avito-detail-oblast
feat/tradein-price-bands-refresh
feat/tradein-caddy-cutover
fix/tradein-team-nav-and-401
feat/tradein-team-dashboard
fix/tradein-team-list-order
feat/tradein-team-api
feat/tradein-login-ui
feat/tradein-auth-core
feat/tradein-auth-password-foundation
feat/tradein-auth-users-schema
fix/tradein-rbac-test-user2-expired
fix/tradein-auth-revoke-user2
fix/2013-avito-cohort-null
fix/rbac-test-user2-expired
fix/expire-brusnika-trial-access
feat/tradein-domclick-house-sku-schema
chore/design-sync-tradein
fix/tradein-deploy-scraper-paths-filter
fix/tradein-no-numberless-house-insert
fix/tradein-dedup-fias-pass-no-geoguard
feat/tradein-fias-estimate-frontend
fix/tradein-dedup-by-fias
feat/tradein-fias-tier-matching
fix/tradein-v2-uiux-p1
fix/objective-lots-dedup-1964
fix/audit-followups-1953
feat/concept-house-picker-1965-stage3b
feat/concept-house-catalog-1965-stage3a
feat/concept-live-massing-1965-stage2b
feat/concept-recompute-1965-stage2a
feat/concept-section-1965-stage1
fix/best-layouts-per-object-snapshot-1956
fix/deficit-segmentation-1959
feat/tradein-hedonic-ground-floor
fix/report-map-points-1961
fix/report-microcopy-1963
fix/report-nspd-zoning-1962
fix/report-frontend-display-1953
perf/tradein-estimate-audit
perf/best-layouts-objects-first
fix/171-migration-path
perf/171-objective-crm-report-month-idx
fix/1926-app-log-stdout
fix/estimator-tiebreaker-nanalogs
fix/1917-fetch-json-network-retry
fix/1926-scrape-runs-total-seen
fix/1781-house-fk-source-identity
feat/39-osrm-per-category
feat/1746-utility-infra-map
fix/test-849-savepoint-count
fix/parking-economics-by-class
fix/zouit-engineering-area-gate
fix/zoning-resolution-decouple
feat/dcf-velocity-schedule
feat/zone-regulation-backfill
chore/mock-financial-estimate
fix/finmodel-split-disclosure-threshold
feat/finmodel-financing
feat/finmodel-sitefinder-bridge
feat/finmodel-dcf
feat/finmodel-price-calibration
feat/finmodel-cost-cascade
audit/1871-p2-estimator-dedup-split
audit/1871-p2-avito-coord
audit/1871-p3-uiux
audit/1871-p2-invest-moi
audit/1871-p2-velocity-market
audit/1871-p1-3-isreal-stubs
audit/1871-p1-2-ghost-anchor-guard
audit/1871-p1-scenarios-collapse
revert/site-finder-v2
fix/v2-remove-resource-legend
fix/v2-map-legend-position
feat/site-finder-v2-map-light-polish
rollback/site-finder-home-light
feat/site-finder-v2-cockpit
rollback/sf-old-analysis-design
feat/ptica-tabs-6-6-reports-params
fix/ptica-vri-row
feat/ptica-map-glyphs-sitefinder-dark
fix/ptica-3d-preview-product-verdict
fix/ptica-button-fontsize
fix/ptica-parity-data-mapping
chore/ptica-iso-preview-spin
fix/ptica-inter-map-product
fix/ptica-visual-parity
fix/ptica-left-rail
feat/ptica-cockpit-complete-bottom
feat/ptica-default-and-rich-map
feat/ptica-real-ksit-frontend
feat/tradein-ekb-geoportal-buildings
fix/sf-feedback-batch
feat/avito-newbuilding-sweep
feat/browser-concurrent-pool
fix/backfill-kadastr-column
fix/avito-proactive-ip-rotate
feat/activate-domclick-sweep
feat/avito-newbuilding-capture
fix/house-id-fk-realtime-link
fix/migration-162-table-if-exists
feat/riasurt-sverdl-layers-108
fix/sber-dataset-paths-902
fix/conflict-resolution-freshness-1539
feat/objective-lots-history-writer-307-obj6
feat/velocity-mv-61
fix/objective-mapping-is-reviewed-gate-307-obj2
fix/cian-detail-rich-fields
fix/avito-novostroyki-segment
feat/yandex-novostroyki-newflat
fix/ci-dedup-runner-storm-1709
fix/emiss-pk-granularity-1687
feat/listings-segment-param-1188
fix/inn-regex-word-boundary-1682
fix/excel-deficit-horizon-1590
fix/admin-scrape-validation
fix/admin-leads-interval-cast-1694
fix/dkp-corridor-doc-p10p90-1695
fix/weather-wind-d-allnone
test/residential-zone-rawprops-1681
fix/domrf-badge-regex-narrow-1686
feat/yandex-camoufox-transport
fix/score-sat-factor-1509
fix/base-pace-room-bucket-1593
fix/gate-verdict-no-blocker-1617
fix/confidence-deal-count-window-1637
fix/match-economics-1511-1512
fix/listings-partial-indexes-1398
fix/smart-suggestions-threshold-1503
fix/dkp-corridor-percentile-1520
fix/enrich-economics-window-1513
fix/leads-stats-window-1383
fix/poi-score-scale-1486
fix/geo-weight-floor-1633
fix/inn-regex-context-1640
fix/domrf-status-classify-1609
fix/emiss-period-dedup-1606
fix/cian-paginate-tail-1393
fix/normalize-zero-fill-guard-1638
fix/supply-view-devgroup-key-1650
fix/residential-zone-detect-1353
fix/score-label-threshold-1357
fix/trend-ratio-vprior-zero-1508
fix/district-median-dedup-1352
fix/supply-layers-overlap-1355
fix/pdf-expires-at-1530
fix/quartirography-area-bucket-1406
fix/cad-zones-multipolygon-1344
fix/sold-pct-market-verdict-1407
fix/week-review-finish
fix/week-review-backend-v2
feat/plan-vectorization-spike-299
fix/1668-analyze-confidence
fix/1667-metro-block
fix/1666-layout-velocity-beat
chore/remove-n1-scraper
fix/cian-kitchen-area
feat/yandex-detail-backfill
feat/avito-detail-backfill
fix/best-layouts-bucket-normalization
fix/gknspecial-incremental-commit-per-prefix
fix/okn-objects-full-registry-load
fix/parcel-ird-overlap-except-expand
fix/report-assembler-confounded-keys
fix/job-settings-json-persist-v2
fix/nspd-geo-soft-time-limit-passthrough
fix/nspd-soft-time-limit-v2
fix/pilot-request-modal-validation
fix/recommend-mix-saturation-latest-snapshot
fix/scrape-cadastre-fail-counter-v2
fix/izyatie-ocr-cad-normalize
fix/job-settings-panel-json-state-persist
fix/noise-loader-savepoint-per-row
fix/objective-sync-config-bare-except
fix/parcel-snapshot-mdash-double-escape
fix/poi-loader-leap-year-date-replace
fix/scrape-cadastre-permanent-fail-counter
fix/usermenu-analyst-role-label
feat/location-948b-r
feat/location-entity-948b
feat/insight-entity-948a
feat/analyst-role-audit-962
feat/cbr-inflation-macro-946
feat/cian-zhk-resolve-972
perf/forecast-parallel-horizons-1129
feat/newbuilding-enrich-backfill-972
feat/emiss-macro-indicators-946
feat/rosstat-emiss-macro-946
ci/frontend-vitest-job
chore/frontend-vitest-wkt-tests
feat/forecast-meta-footer
feat/forecast-future-supply-competitors
feat/forecast-docx-pptx-buttons
feat/forecast-scoring-panel
feat/forecast-product-tz-block
feat/market-map-layers-999
feat/forecast-chart-section6
feat/forecast-export-pptx-959
feat/forecast-export-docx-959
feat/forecast-export-ui-959
feat/forecast-export-telegram-959
feat/forecast-export-md-959
feat/analyze-response-contract-961
feat/competitor-velocity-spatial-fallback-968
fix/frontend-healthcheck-hostname
feat/analyze-market-coords-999
fix/site-finder-entry-crash-1001
feat/horizon-selector-996
feat/forecast-section-998
feat/forecast-endpoint-horizon-enqueue
feat/forecast-celery-task-persist
feat/forecast-orchestrator-service
feat/demand-supply-months-of-inventory
feat/wire-district-resolver
feat/district-vocab-reconciliation
fix/affordability-market-spread
fix/backtest-sig-gate
feat/wire-978-almon-rate-regime
feat/backtest-oos-almon-seasonal
ci/forgejo-pytest-gate
fix/tradein-praktika-logo-form-scroll
feat/yandex-exhaustive-price-room
feat/794-sber-time-adjust
chore/bot-harness-tuning
docs/agent-usage-throttle-qa-terminal
fix/avito-sweep-single-run-guard
chore/analyst-inbound-queue-tradein-db
feat/801-preview-full-wt
chore/bot-safety-followups
feat/tradein-avito-imv-fix
feat/tradein-repair-coef-calibration
feat/tradein-avito-houses-fix
feat/tradein-address-precision
feat/tradein-backfill-prioritize-listings
feat/tradein-geocode-deals-nominatim
feat/tradein-geocode-deals-from-houses
feat/tradein-same-building-match
feat/claude-envvars-and-stale-cron
No results found.
Labels
Clear labels
Находки полного мульти-агентного ревью (Claude Fable 5, 2026-06-09)
Новое ТЗ от Ген Геныча (июнь 2026): Site Finder v2 — ИИ-прогноз продуктовой стратегии девелопера. Актуальный приоритет.
Admin UI / internal tools / pipeline tracker
Аналитика данных / matching
Authentication / authorization / multi-tenancy
Автоматизация / cron / scheduler
Something isn't working
Коммерческая воронка / пилоты / pipeline / реестр ПО
Operational housekeeping
Forgejo Actions / build pipeline
152-ФЗ / реестр ПО / legal / TOS
Data sources, parsers, ETL
Уникальные данные — sales tracker, CRM aggregation
README / runbooks / onboarding
This issue or pull request already exists
Developer experience / build speed
New feature or request
Feedback from Max (Senior partner)
Generative Design — concept generation engine
Pending team sync / decision
Human review/decision required
Monitoring / metrics / logs / Sentry / Uptime
Kill-switch — all autonomous bots pause
Latency / throughput / DB query tuning
Critical / production-blocker
High priority
Normal priority
Низкий приоритет (follow-up, tech-debt)
Backend Python — FastAPI, Celery, scrapers
DB migrations, indexes, SQL
docker-compose, Caddy, workflows
Frontend — Next.js, React, TypeScript
Tests, smoke, Playwright
Скрапперы (Avito/Cian/Yandex/Rosreestr)
Security audit / secrets / vulnerabilities
Site Finder scoring quality & data layer
Stage 1: Generative MVP (нед 2-7)
Stage 2: Site Finder MVP (нед 8-12)
Blocked — needs human intervention
Closed, completed
Raw/fuzzy task filed by human — auto-analyst подхватывает: code-archeology + декомпозиция в actionable scope/* + status/ready (или split на под-issues)
Reviewer/QA вернул worker на доработку — worker сам чинит свой PR (fixup), НЕ требует human (в отличие от status/blocked)
PR merged, awaiting smoke test
Ready for pickup by worker bot
PR open, awaiting code review
Work in progress (worker claimed)
Технический долг
Trade-In MVP проект
User experience / responsive / conversion
Week review 1 — находки multi-agent аудита проекта (2026-06-14)
This will not be worked on
Исходно-разрешительная документация — слой ограничений участка для analyze-таблицы
Trade-In Estimator — проект оценки вторичного жилья
Fable 5 ревью
Находки полного мульти-агентного ревью (Claude Fable 5, 2026-06-09)
GG-форсайт
Новое ТЗ от Ген Геныча (июнь 2026): Site Finder v2 — ИИ-прогноз продуктовой стратегии девелопера. Актуальный приоритет.
admin
Admin UI / internal tools / pipeline tracker
analytics
Аналитика данных / matching
auth
Authentication / authorization / multi-tenancy
automation
Автоматизация / cron / scheduler
bug
Something isn't working
business
Коммерческая воронка / пилоты / pipeline / реестр ПО
chore
Operational housekeeping
ci
Forgejo Actions / build pipeline
compliance
152-ФЗ / реестр ПО / legal / TOS
data
Data sources, parsers, ETL
data-moat
Уникальные данные — sales tracker, CRM aggregation
docs
README / runbooks / onboarding
duplicate
This issue or pull request already exists
dx
Developer experience / build speed
enhancement
New feature or request
feedback/max
Feedback from Max (Senior partner)
generative
Generative Design — concept generation engine
needs-discussion
Pending team sync / decision
needs-human
Human review/decision required
observability
Monitoring / metrics / logs / Sentry / Uptime
pause-bots
Kill-switch — all autonomous bots pause
performance
Latency / throughput / DB query tuning
priority/p0
Critical / production-blocker
priority/p1
High priority
priority/p2
Normal priority
priority/p3
Низкий приоритет (follow-up, tech-debt)
scope/backend
Backend Python — FastAPI, Celery, scrapers
scope/db
DB migrations, indexes, SQL
scope/devops
docker-compose, Caddy, workflows
scope/frontend
Frontend — Next.js, React, TypeScript
scope/qa
Tests, smoke, Playwright
scrapers
Скрапперы (Avito/Cian/Yandex/Rosreestr)
security
Security audit / secrets / vulnerabilities
site-finder
Site Finder scoring quality & data layer
stage/1
Stage 1: Generative MVP (нед 2-7)
stage/2
Stage 2: Site Finder MVP (нед 8-12)
status/blocked
Blocked — needs human intervention
status/done
Closed, completed
status/needs-analysis
Raw/fuzzy task filed by human — auto-analyst подхватывает: code-archeology + декомпозиция в actionable scope/* + status/ready (или split на под-issues)
status/needs-fix
Reviewer/QA вернул worker на доработку — worker сам чинит свой PR (fixup), НЕ требует human (в отличие от status/blocked)
status/qa
PR merged, awaiting smoke test
status/ready
Ready for pickup by worker bot
status/review
PR open, awaiting code review
status/wip
Work in progress (worker claimed)
tech-debt
Технический долг
tradein
Trade-In MVP проект
ux
User experience / responsive / conversion
week ревью 1
Week review 1 — находки multi-agent аудита проекта (2026-06-14)
wontfix
This will not be worked on
ИРД
Исходно-разрешительная документация — слой ограничений участка для analyze-таблицы
вторичка
Trade-In Estimator — проект оценки вторичного жилья
No labels
Fable 5 ревью
GG-форсайт
admin
analytics
auth
automation
bug
business
chore
ci
compliance
data
data-moat
docs
duplicate
dx
enhancement
feedback/max
generative
needs-discussion
needs-human
observability
pause-bots
performance
priority/p0
priority/p1
priority/p2
priority/p3
scope/backend
scope/db
scope/devops
scope/frontend
scope/qa
scrapers
security
site-finder
stage/1
stage/2
status/blocked
status/done
status/needs-analysis
status/needs-fix
status/qa
status/ready
status/review
status/wip
tech-debt
tradein
ux
week ревью 1
wontfix
ИРД
вторичка
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".
No due date set.
Dependencies
No dependencies set.
Reference: lekss361/gendesign#2673
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Найдено системным поиском кода, который написан и ни разу не сработал (47 находок, сводка в #2674). Это — корневая, потому что объясняет, почему выжили остальные сорок шесть.
Ни одного уведомления. Никогда
Все алерты МЕРЫ упираются в GlitchTip. В проекте нет ни одного правила и ни одного получателя: таблица уведомлений пуста при том, что события копятся с 30 мая. То есть за всю историю продукта наружу не ушло ни одного сообщения о сбое.
Всё, что мы весь вечер чинили — «алерт стоял в недостижимой ветке», «уровень warning не долетает», — чинилось внутри системы, которая в любом случае никому не пишет.
Три способа не заметить аварию, каждый работает
Алерт срабатывает ровно один раз за аварию. Условие требует точной серии: три последних прогона неуспешны и четвёртый успешен. Как только серия длиннее, наступает тишина. Проверено на 14 сериях в проде: 31 подряд провальный прогон
avito_full_loadза месяц дал одно событие.Зависшие прогоны не считаются. Статус
zombieвырезан из обоих стрик-алертов — 30 подряд зависших прогоновlisting_source_snapshotза месяц дали ноль событий.Смерти процесса нет в принципе. У МЕРЫ нет ни одного монитора живости. Если контейнер скрапера встанет, не появится ни строки в базе, ни события — это состояние невыразимо имеющимися средствами. Мониторы заводили под ПТИЦУ, трейд-ин в них не добавляли ни разу.
Чем это обошлось — вот эти четыре пункта не гипотетические
СберИндекс протух 1 июня. Монитор устаревания честно сработал 9 раз. Все девять — уровнем
warning, а событиями становятся только записи уровняerror. Ноль событий. Данные внешнего бенчмарка цен стоят два месяца.Оценка Циана — седьмой источник эстиматора — умерла 29 июня. Куки протухли, с тех пор ни одной новой строки 37 дней. Ни алерта, ни следа в статусах: оценки просто лишились источника, и никто не узнал.
house_imv_backfillне умеет падать. 31 прогон подряд: сохранено ноль, ошибок около 35 из 50 попыток — и все помечены «успешно». 34 дня ежедневных прогонов без единой сохранённой оценки.domclick_detail_backfill: за всю жизнь обогащено 0 объявлений из 494 попыток, все 30 прогонов отчитались «успешно». Алерт нулевого результата для него недостижим по построению.Что делать, по порядку
zombieв стрик-алерты — зависший прогон это авария, а не нейтральное состояние.Почему это важнее, чем кажется
Сегодня четыре разных дефекта нашлись случайно — при разборе не связанных с ними задач. Каждый жил месяцами. Общее у них не техническое: система не умеет сказать, что ей плохо, поэтому единственный способ узнать о поломке — наткнуться на неё.
P0 #2574 («скраперы отрабатывают вхолостую, данные не обновляются 5–18 дней») — это не отдельная авария. Это то, как выглядит месяц работы системы без обратной связи.
Связано: #2674, #2670, #2625, #2574, #2658.
done#2698errors=0иdone, все домовые поля Циана нулевые #2700Проверено в самой базе GlitchTip: события приходят, некому доставить
Ключевая развилка была неясна — «уведомлений нет, потому что нечего слать» или «есть что слать, но некуда». Ответ однозначный.
2 861 группа ошибок по trade-in накопилась и ни одна не привела ни к одному уведомлению. За последние сутки — 77 живых групп, 909 событий. Данные шли всё это время; отсутствовал только адресат.
Что именно лежало в этой непрочитанной почте
Верх списка по trade-in:
TimeoutErrorReadTimeoutTimeoutError503отtradein-browser:3000/fetch-json500отtradein-browser:3000/…dadata: HTTP 403 — auth/secret rejectedavito page=1 sidecar error budget exhausted (status=503)dadata: HTTP 403 — услуга CLEAN выключена на аккаунтеtg client: getUpdates — HTTP 502 после 4 попытокДве строки здесь особенно неприятны.
Первая — 500/503 от нашего браузерного сайдкара. Это ровно тот отказ, из-за которого домовая оценка Авито мертва 34 дня (#2698), и ровно тот, который заставил прочитать статус «забанен» буквально и замедлить сбор вдвое по ложному основанию (#2686). Система знала и называла причину — с точным URL — с самого начала.
Вторая — DaData. Стандартизация адресов сломана с 30 мая, и в двух последовательных формах:
Смена формулировки 12 июля означает, что кто-то тогда обновил токен — и остановился на полпути: токен стал валидным, а услуга на аккаунте так и осталась выключенной. Ошибка сама называет, что делать, дословно, по-русски, и повторяется 25-й день.
Вывод, который меняет формулировку задачи
Это не «мониторинг не настроен». Это исправно работающая диагностика, пишущая в ящик, который никто не открывал ни разу. Продукт всё это время точно знал, что у него сломано, и умел сказать это словами.
Отсюда следует и приоритет: любой сторож, который мы чиним в эпике #2674 (#2695, #2703, #2625, #2681), после починки будет срабатывать в пустоту, пока не задан получатель. Сначала адресат, потом сторожа — иначе мы улучшаем качество писем, которые не отправляются.
Что нужно
trade-inиbackend. Это действие владельца, вынесено в сводку #2704.TimeoutErrorне утопил остальное. Иначе первый же настроенный адресат отпишется, и мы вернёмся в исходную точку другим путём.Сверка чисел 2026-08-07 11:5x MSK: ничего не изменилось, цифры в задаче можно освежить
Задача владельцу — не закрываю. Проверил, не устарели ли числа. Замер прямо в базе GlitchTip:
Все три по-прежнему нули. За сутки со времени вашего замера не отправлено ни одного
уведомления — как и за все предыдущие 69 дней.
Группы ошибок подросли:
За последние сутки: backend — 81 живая группа / 886 событий, trade-in — 21 группа / 331 событие.
Верх списка по trade-in не изменился по составу; из живого стоит отметить одну строку:
Было 123, стало 141 — ошибка, которая дословно называет, что сделать, повторяется 26-й день.
Оговорка про правило («10 571
TimeoutErrorне должен утопить остальное») в силе: эта группапо-прежнему крупнейшая, хотя её последнее событие — 03.08.
Отдельно по приоритету, который вы вывели: за сутки в эпике починены ещё два сторожа
(#2670 — лестница напоминаний вместо разового; #2703 — «не измерено» больше не читается как ноль).
Оба, как и предыдущие шесть, будут срабатывать в пустоту, пока получателя нет.
Разбор 16.08.2026: задача НЕ закрыта, хотя часть работы сделана
Проверял на закрытие — не подтвердилось. Фиксирую, что именно сделано и что осталось, чтобы следующий читатель не принял одно за другое.
Сделано (смержено 15–16.08):
glitchtip-worker: письма шлёт celery, а у него этих переменных не было вовсе, поэтому настройка одного web-сервиса не дала бы ни одного письма;glitchtip-workerдобавлен в общую сеть (проверено живьём:worker → tradein-backendдоступен);PingнаGETс ожидаемым статусом — раньше проверка засчитывала успех за сам факт соединения, поэтому 401 и 405 читались как «сервис жив»; добавлен монитор публичной страницы «Меры».Не сделано — и без этого предмет задачи жив. Замер на проде сегодня:
То есть правил оповещения не заведено ни одного, а почтовый транспорт по-прежнему печатает письмо в консоль. «Мера» сейчас так же не может отправить ни одного уведомления, как и в день заведения задачи — смерженные PR построили проводку, но не включили её.
Что осталось, по шагам:
smtp+ssl://для порта 465 — интуитивно похожаяsmtps://включает STARTTLS, с которым Beget рвёт соединение.uptime, он направляет через тех же получателей и падения мониторов.Пока не сделан хотя бы один из трёх шагов, задача открыта по существу, а не по формальности.
Перепроверено 19.08 на живом GlitchTip: состояние не изменилось
При этом событий накопилось:
То есть за девяносто пять суток внутрь записано семь с половиной тысяч issue и наружу не ушло ни одного сообщения. Задача открыта, и её формулировка по-прежнему точна.
Это шире, чем МЕРА
Заголовок говорит «МЕРА слепа», но в топе за последние семь суток — сигналы обоих продуктов:
Строки про freshness — это ПТИЦА. Сегодня я отдельно проверял её монитор свежести: он работает исправно, срабатывает ровно в 09:00 МСК, честно считает возраст (
kn [failed, 51.58d]) и пишет в GlitchTip каждый день. И каждый день это никому не уходит.То есть сторож не сломан — сломан канал за ним. Ровно тот случай, когда «защита промолчала» неотличимо от «защиты нет», и отличить их можно только заглянув в базу уведомлений.
Что могу и чего не могу
Правило и получателя завожу не я: адрес доставки (почта, вебхук, телеграм-канал) — решение владельца, а создание учётной записи или настройка внешнего сервиса за него выходит за рамки того, что мне уместно делать.
Что могу и уже сделал — измерить масштаб и назвать конкретные потери: из тринадцати событий «источники не собирают дольше 3× такта» за неделю не увидел никто.
Отдельно: две трети шума в топе — сканеры
basic_auth 401 — GET /wp-admin/install.php— это боты, стучащиеся в чужой CMS-путь. Пятнадцать событий за неделю из общего топа. Когда получатель появится, такие события стоит отсечь на входе, иначе первое же уведомление придёт про сканер, а не про сбор данных, и канал обесценится за неделю.Цена этой конфигурации на 20.08.2026
Issue до сих пор верен — проверил заново:
Ниже — что именно за эту тишину не было услышано.
Сторож работает и сигналит ежедневно
События в GlitchTip за последние двое суток:
То есть механизм не сломан. Сообщения формируются и складываются в GlitchTip. Их просто некому отдать.
Что показывает сторож прямо сейчас
compute_freshnessизнутриgendesign-backend-1, 20.08:overall = failed.Пять источников из семи протухли или упали, два из них помечены критичными. Самый старый молчит 62 дня.
Из них разобраны отдельно: НСПД — #2956 (с 27.07, WAF 403 на IP), каталог DOM.РФ — #2443 (с 19.05, страница «Доступ заблокирован» с капчей).
kn/kn_flats(DOM.РФ KN-API, с 28.06) иcadastre(с 19.06) отдельного разбора пока не имеют — по датам они попадают в то же окно, что и остальные отказы DOM.РФ, но утверждать общую причину без проверки не буду.Что здесь важно
Каждый из этих отказов по отдельности мог бы быть замечен за сутки: сторож их видит и называет по именам. Ни один не был замечен за два месяца — потому что последнее звено цепочки отсутствует.
Правило и адресата не создаю сам: это настройка внешнего сервиса и решение владельца. Но теперь у решения есть цена в цифрах, а не только формулировка «уведомления не настроены».
Канал уведомлений работает сквозным путём — проверено доставкой, а не конфигом
Владелец дописал
TELEGRAM_ALERTS_CHAT_ID/TELEGRAM_ALERTS_TOPIC_IDв рантайм-конфиг,tradein-backendпересоздан.Что проверено, в порядке возрастания длины пути
localhostвнутриtradein-backend, пустое телоlocalhostвнутриtradein-backend, issue-подобный payloadglitchtip-workerпо НАСТОЯЩЕМУ URL получателяТретья проба — важная. Модульный докстринг
glitchtip.pyописывает связность по имени контейнера в общей докер-сети, а после переезда GlitchTip остался на Beget, аtradein-backendуехал на Poincare — по имени он оттуда не резолвится. Получатели, однако, прописаны публичным URL (https://gendsgn.ru/trade-in/api/v1/trade-in/ops/glitchtip-webhook?secret=…), то есть путь идёт через Caddy по сети и переезд переживает. Проба выполнена изнутри того самого контейнера, который шлёт алерты, и вернула 200.Итого в логе
tradein-backend: 3 доставки, статус 200, ни одной ошибки Telegram (502 при отказе Telegram — отдельная ветка, не сработала ни разу).Состояние правил
Тестовые сообщения из проб удалять из темы не стал — это ваша тема, решайте сами.
Побочная находка, которую я же и создал — вынесена в отдельный issue
Секрет едет query-параметром (иначе никак: GlitchTip не добавляет заголовков — см. докстринг модуля), и uvicorn пишет полный URL в access-log, а лог уезжает в Loki. Проверил запросом к Loki: строки с
secret=<значение>лежат там незамаскированными — скруббер из #3115 ловит только://user:pass@, query-параметр под его выражение не подходит.До сегодня этих строк в логах не было (вебхук отвечал 503 и до логирования URL дело не доходило), так что засветка новая и пока состоит из 3 строк — моих проб. Но она будет копиться на каждом настоящем алерте. Детали и варианты починки — в новом issue.
Закрываю: механизм проверен доставкой на всю длину пути.
Закрываю: канал проверен от вебхука до Telegram
Что было. Эндпоинт
/api/v1/trade-in/ops/glitchtip-webhookотвечал 503 (_alerts_configured()→ false): в рантайм-конфиге backend'а на Poincare не былоTELEGRAM_ALERTS_CHAT_ID/TELEGRAM_ALERTS_TOPIC_ID. Все реальные отправки GlitchTip 27.08 — 15:06, 15:37, 16:15, 16:48 UTC — получили 503 и не дошли никуда.Что сделано. Переменные добавлены в рантайм-конфиг, backend пересоздан (16:50 UTC).
Чем доказано.
glitchtip-workerпо реальному публичному URL — это существенно: после переезда GlitchTip живёт на Beget, а backend на Poincare, и разрешение по имени контейнера больше не работает. Проверять «из соседнего контейнера» после миграции значило бы проверять не тот путь.Чего доказательства НЕ покрывают. Органического события GlitchTip после фикса не случилось (наблюдал 55 минут — тишина). Ждать его — значит ждать инцидента на проде; сквозная проба по боевому URL закрывает тот же путь.
Остаточные дыры вынесены отдельно, здесь не чинятся:
is_sent=Trueставится безусловно, так что «доставлено» по этой колонке считать нельзя; наблюдаемость нужна на нашей стороне;consolemail://(заглушка), uptime-мониторы шлют в никуда;