chore(forgejo): track compose file with retention/cleanup settings #3543
Open
lekss361
wants to merge 1 commit from
chore/forgejo-retention-settings into main
pull from: chore/forgejo-retention-settings
merge into: lekss361:main
lekss361:main
lekss361:feat/domclick-msk-sweeps
lekss361:fix/disk-alerts-absolute-thresholds
lekss361:fix/3469-showcase-schedule
lekss361:fix/3443-caddy-selfdowntime
lekss361:fix/3463-db-statement-timeout
lekss361:fix/3448-caddy-only-detection
lekss361:fix/metrics-deploy-reloads-prometheus
lekss361:feat/landing-showcase-band
lekss361:fix/3452-corridor-advisory-zone
lekss361:fix/alert-value-is-not-the-ratio
lekss361:fix/3449-geocoder-cancel-orphan
lekss361:fix/3451-tvf-deals-rooms
lekss361:fix/msk-collector-net-retry
lekss361:feat/msk-yandex-import
lekss361:fix/3051-fetch-deals-rooms-dropped
lekss361:feat/msk-collector-cian
lekss361:fix/3256-asking-to-sold-buckets
lekss361:fix/3083-estimate-throughput
lekss361:fix/3274-part2b-gate
lekss361:fix/3274-part2a-caddy-retry
lekss361:fix/perimeter-smoke-retry-on-no-response
lekss361:fix/3274-zero-downtime-frontend
lekss361:fix/3274-part1-deploy-swap
lekss361:fix/3412-cian-instance-relaunch
lekss361:fix/3415-bucket-done-only-if-phases-ok
lekss361:chore/backend-pool-wiring-tails
lekss361:fix/3398-pool-ops-off-event-loop
lekss361:fix/3402-followups-ban-kinds-curl
lekss361:feat/3404-proxy-run-attribution
lekss361:fix/cian-captcha-is-platform-refusal
lekss361:refactor/3390-single-runs-module
lekss361:fix/3398-estimator-valuations-proxy-pool
lekss361:fix/3386-estimator-imv-proxy-pool
lekss361:fix/3394-cian-sweep-houses-proxy-pool
lekss361:fix/3393-interrupted-runs-outside-streaks
lekss361:fix/drain-marks-inflight-app-tasks
lekss361:fix/3384-no-proxy-at-batch-start
lekss361:fix/3197-yandex-newbuilding-proxy-pool
lekss361:fix/3376-price-history-decimal-slips
lekss361:fix/backend-proxy-pool-flags
lekss361:fix/3197-cian-history-backfill-proxy-pool
lekss361:fix/3288-sidecar-ban-status-code
lekss361:fix/3375-yandex-fullload-on-bucket-contract
lekss361:fix/3380-deploy-metrics-alloy-recreate
lekss361:fix/3354-alloy-query-secret-scrub
lekss361:fix/3360-admin-prefix-anon-404
lekss361:fix/3368-yandex-leaf-complete-flag
lekss361:fix/3369-domclick-cancel-checkpoint
lekss361:fix/3225-domklik-diff-percent
lekss361:fix/smoke-history-path
lekss361:fix/3288-breaker-block-kind
lekss361:fix/3355-drain-mark-fullloads
lekss361:fix/3191-yandex-detail-completeness
lekss361:fix/3359-containment-cian-yandex
lekss361:fix/3323-payment-init-fail-409
lekss361:fix/3172-freshness-by-data
lekss361:fix/3288-avito-ban-per-source
lekss361:fix/3253-domclick-house-fields
lekss361:fix/3312-defer-interval-minutes
lekss361:fix/3324-rbac-401-oracle
lekss361:fix/3274-deploy-window-error-page
lekss361:fix/3343-auth-latency-flaky
lekss361:fix/3315-exhaustive-containment-skip
lekss361:fix/3338-backfill-save-false
lekss361:fix/3339-thin-market-badge
lekss361:fix/3154-glitchtip-secret-log-leak
lekss361:fix/3333-drain-mark-all-sweeps
lekss361:fix/3323-imv-thin-market-gate
lekss361:fix/3324-mera-perimeter
lekss361:fix/3323-coverage-copy-honesty
lekss361:fix/3332-domclick-counter-identity
lekss361:fix/3324-ptica-deploy-gate
lekss361:fix/3316-role-single-source
lekss361:fix/3319-citysweep-checkpoint
lekss361:fix/3322-rosseti-stable-key
lekss361:fix/3320-v2-honest-zeros
lekss361:fix/3321-draft-fields-survive
lekss361:fix/mera-mobile-nav-and-sticky
lekss361:fix/audit-form-ux
lekss361:fix/audit-coverage-500
lekss361:fix/audit-dkp-price
lekss361:fix/audit-accuracy-window
lekss361:fix/audit-faq-contradiction
lekss361:fix/perimeter-smoke-after-payments
lekss361:feat/b2c-landing-honest-copy
lekss361:feat/b2c-landing-live-numbers
lekss361:feat/b2c-v3-becomes-root
lekss361:feat/b2c-v3-port-v1-blocks
lekss361:feat/b2c-report-redesign
lekss361:feat/b2c-landing-v3-full
lekss361:feat/3192b-yandex-phones
lekss361:feat/3168-backfill-cursor-resume
lekss361:fix/3118-domclick-no-proxy
lekss361:fix/3170-yandex-combo-checkpoint
lekss361:feat/3074-newbuilding-sweep-resume
lekss361:fix/3163-infra-topic-default
lekss361:fix/3156-tgbot-error-type
lekss361:feat/3163-infra-topic-split
lekss361:fix/3161-alertmanager-route-prefix
lekss361:fix/3155-prometheus-no-alertmanager
lekss361:feat/2997-drop-listings-geom-idx
lekss361:fix/3122-boot-reap-observable
lekss361:feat/3122-boot-reap
lekss361:feat/3051-houses-region-code
lekss361:feat/3074-cian-anchor-checkpoint
lekss361:feat/3051-region-registry
lekss361:fix/2656-anchor-ratio-freshness
lekss361:fix/3114-scrub-credentials-in-logs
lekss361:fix/3078-grafana-single-auth
lekss361:fix/3081-honest-progress
lekss361:fix/3063-pro-seller-derive
lekss361:fix/3074-checkpoint-survives-claim
lekss361:fix/3082-estimate-concurrency
lekss361:fix/3044-enriched-total-seen
lekss361:fix/telegram-pin-selectel-override
lekss361:chore/compose-host-parameterised-resources
lekss361:fix/revisit-floor-lateral-lookup
lekss361:fix/avito-detail-fields
lekss361:fix/3034-avito-fingerprint
lekss361:fix/avito-offers-per-page
lekss361:feat/3033-avito-secondary-filter
lekss361:fix/2203-restore-drill-readiness
lekss361:feat/2203-backup-staleness-and-forgejo
lekss361:fix/2990-clean-start-initdb
lekss361:fix/2924-yandex-jk-resolve-tried-at
lekss361:fix/2992-upsert-distinct-gate
lekss361:fix/2998-rosreestr-q2-partitions
lekss361:feat/2936-null-penalty-flag
lekss361:fix/2996-mislocated-houses-watchdog
lekss361:fix/1781-secondary-only-param
lekss361:fix/2934-risks-coverage
lekss361:fix/2464-three-small
lekss361:fix/2464-two-docstrings
lekss361:fix/2464-zouit-label
lekss361:fix/2464-building-pct-guard
lekss361:fix/2464-download-binary-retry
lekss361:fix/2986-permits-key
lekss361:fix/2464-tep-docstring
lekss361:fix/2464-act-date-backfill
lekss361:fix/2464-area-bin-null
lekss361:fix/2464-act-date-citation
lekss361:fix/2464-detect-kind
lekss361:fix/2464-status-negation
lekss361:fix/2464-objective-zombie-sweep
lekss361:fix/2464-inert-retry-config
lekss361:fix/2464-default-profile-unique
lekss361:fix/2464-zombie-any-running
lekss361:fix/2464-catalog-skipped-counter
lekss361:fix/2464-heat-loader-tx
lekss361:fix/2464-objective-run-stuck
lekss361:fix/2464-catalog-waf-breaker
lekss361:fix/2464-lock-key-order
lekss361:fix/2464-backfill-waf-abort
lekss361:fix/2464-docs-vs-code
lekss361:fix/2464-land-reservation-dedup
lekss361:fix/2464-manual-list-validation
lekss361:fix/2464-capacity-savepoints
lekss361:fix/2464-leads-window-naming
lekss361:fix/2464-zouit-count-label
lekss361:fix/2464-catalog-batch-commits
lekss361:fix/2464-html-zoning-fallback
lekss361:fix/2950-lock-wait-observable
lekss361:fix/2956-freshness-counts-failed-harvest
lekss361:fix/2950-host-lock
lekss361:fix/2953-nominatim-throttle
lekss361:fix/2950-deploy-docker-lock
lekss361:fix/2464-ird-lookups-savepoint
lekss361:fix/2464-parcels-savepoint-pair
lekss361:fix/2674-deal-floor-display
lekss361:docs/2854-stale-justifications
lekss361:chore/2857-drop-placeholder-columns
lekss361:fix/2855-probe-protected-path
lekss361:fix/2674-has-panorama
lekss361:fix/house-imv-anchor-era
lekss361:fix/2674-quality-cadastre-column
lekss361:fix/sber-freshness-guard
lekss361:fix/dkp-corridor-as-of
lekss361:fix/scheduler-resume-checkpoint
lekss361:fix/quarter-target-from-neighbour
lekss361:fix/2687-domclick-ban-kind-platform
lekss361:fix/2814-address-backfill
lekss361:fix/2677-house-anchor-renovation
lekss361:feat/tradein-paid-retention
lekss361:chore/ci-config-cleanup
lekss361:feat/mera-b2c-privacy
lekss361:feat/tradein-payments-schema
lekss361:chore/2674-dead-code-sweep
lekss361:fix/2674-matching-tiers-honesty
lekss361:fix/2674-avito-full-load-coverage
lekss361:fix/2674-admin-metrics-honesty
lekss361:fix/2674-writers-honor-schema
lekss361:fix/2674-alerts-actually-fire
lekss361:fix/2679-scraper-deploy-parity
lekss361:fix/2674-house-imv-params
lekss361:fix/2666-discount-plausibility-gate
lekss361:feat/2435-cian-house-enrichment
lekss361:fix/2657-domclick-block-not-done
lekss361:feat/2571-login-throttle
lekss361:fix/2660-display-freshness-segment
lekss361:fix/2658-loud-skip-status
lekss361:fix/2603-geocode-city-hint-tails
lekss361:feat/2600-per-source-proxy-health
lekss361:feat/tradein-v2-exposure-in-result-card
lekss361:fix/tradein-avito-browser-proxy-pool
lekss361:chore/tradein-cut-wasteful-scraping
lekss361:fix/tradein-v2-deals-fallback-visible
lekss361:fix/tradein-city-stamp-geo-guard
lekss361:fix/tradein-cian-oblast-secondary
lekss361:fix/tradein-implausible-build-year
lekss361:fix/tradein-snapshot-query-perf
lekss361:fix/tradein-asking-sold-city-scope
lekss361:chore/tradein-purge-dead-mobileproxy
lekss361:feat/tradein-asocks-rotation
lekss361:fix/tradein-region-code-foreign-cities
lekss361:fix/tradein-proxy-pool-self-healing
lekss361:fix/tradein-backfill-listing-city-from-url
lekss361:fix/tradein-geocode-queue-active-only
lekss361:fix/tradein-geocode-city-hint
lekss361:chore/tradein-remove-yandex-scripts
lekss361:fix/tradein-listing-city-from-sweep
lekss361:chore/tradein-remove-yandex-geocoder
lekss361:chore/tradein-remove-n1
lekss361:fix/tradein-geocoder-fail-closed
lekss361:fix/tradein-ui-city-label-clip
lekss361:feat/tradein-ui-city-hint
lekss361:fix/tradein-coords-backfill-city-gate
lekss361:fix/tradein-geocoder-city-default
lekss361:fix/tradein-anchor-geo-scope
lekss361:fix/tradein-avito-detail-oblast
lekss361:feat/tradein-price-bands-refresh
lekss361:feat/tradein-caddy-cutover
lekss361:fix/tradein-team-nav-and-401
lekss361:feat/tradein-team-dashboard
lekss361:fix/tradein-team-list-order
lekss361:feat/tradein-team-api
lekss361:feat/tradein-login-ui
lekss361:feat/tradein-auth-core
lekss361:feat/tradein-auth-password-foundation
lekss361:feat/tradein-auth-users-schema
lekss361:fix/tradein-rbac-test-user2-expired
lekss361:fix/tradein-auth-revoke-user2
lekss361:fix/2013-avito-cohort-null
lekss361:fix/rbac-test-user2-expired
lekss361:fix/expire-brusnika-trial-access
lekss361:feat/tradein-domclick-house-sku-schema
lekss361:chore/design-sync-tradein
lekss361:fix/tradein-deploy-scraper-paths-filter
lekss361:fix/tradein-no-numberless-house-insert
lekss361:fix/tradein-dedup-fias-pass-no-geoguard
lekss361:feat/tradein-fias-estimate-frontend
lekss361:fix/tradein-dedup-by-fias
lekss361:feat/tradein-fias-tier-matching
lekss361:fix/tradein-v2-uiux-p1
lekss361:fix/objective-lots-dedup-1964
lekss361:fix/audit-followups-1953
lekss361:feat/concept-house-picker-1965-stage3b
lekss361:feat/concept-house-catalog-1965-stage3a
lekss361:feat/concept-live-massing-1965-stage2b
lekss361:feat/concept-recompute-1965-stage2a
lekss361:feat/concept-section-1965-stage1
lekss361:fix/best-layouts-per-object-snapshot-1956
lekss361:fix/deficit-segmentation-1959
lekss361:feat/tradein-hedonic-ground-floor
lekss361:fix/report-map-points-1961
lekss361:fix/report-microcopy-1963
lekss361:fix/report-nspd-zoning-1962
lekss361:fix/report-frontend-display-1953
lekss361:perf/tradein-estimate-audit
lekss361:perf/best-layouts-objects-first
lekss361:fix/171-migration-path
lekss361:perf/171-objective-crm-report-month-idx
lekss361:fix/1926-app-log-stdout
lekss361:fix/estimator-tiebreaker-nanalogs
lekss361:fix/1917-fetch-json-network-retry
lekss361:fix/1926-scrape-runs-total-seen
lekss361:fix/1781-house-fk-source-identity
lekss361:feat/39-osrm-per-category
lekss361:feat/1746-utility-infra-map
lekss361:fix/test-849-savepoint-count
lekss361:fix/parking-economics-by-class
lekss361:fix/zouit-engineering-area-gate
lekss361:fix/zoning-resolution-decouple
lekss361:feat/dcf-velocity-schedule
lekss361:feat/zone-regulation-backfill
lekss361:chore/mock-financial-estimate
lekss361:fix/finmodel-split-disclosure-threshold
lekss361:feat/finmodel-financing
lekss361:feat/finmodel-sitefinder-bridge
lekss361:feat/finmodel-dcf
lekss361:feat/finmodel-price-calibration
lekss361:feat/finmodel-cost-cascade
lekss361:audit/1871-p2-estimator-dedup-split
lekss361:audit/1871-p2-avito-coord
lekss361:audit/1871-p3-uiux
lekss361:audit/1871-p2-invest-moi
lekss361:audit/1871-p2-velocity-market
lekss361:audit/1871-p1-3-isreal-stubs
lekss361:audit/1871-p1-2-ghost-anchor-guard
lekss361:audit/1871-p1-scenarios-collapse
lekss361:revert/site-finder-v2
lekss361:fix/v2-remove-resource-legend
lekss361:fix/v2-map-legend-position
lekss361:feat/site-finder-v2-map-light-polish
lekss361:rollback/site-finder-home-light
lekss361:feat/site-finder-v2-cockpit
lekss361:rollback/sf-old-analysis-design
lekss361:feat/ptica-tabs-6-6-reports-params
lekss361:fix/ptica-vri-row
lekss361:feat/ptica-map-glyphs-sitefinder-dark
lekss361:fix/ptica-3d-preview-product-verdict
lekss361:fix/ptica-button-fontsize
lekss361:fix/ptica-parity-data-mapping
lekss361:chore/ptica-iso-preview-spin
lekss361:fix/ptica-inter-map-product
lekss361:fix/ptica-visual-parity
lekss361:fix/ptica-left-rail
lekss361:feat/ptica-cockpit-complete-bottom
lekss361:feat/ptica-default-and-rich-map
lekss361:feat/ptica-real-ksit-frontend
lekss361:feat/tradein-ekb-geoportal-buildings
lekss361:fix/sf-feedback-batch
lekss361:feat/avito-newbuilding-sweep
lekss361:feat/browser-concurrent-pool
lekss361:fix/backfill-kadastr-column
lekss361:fix/avito-proactive-ip-rotate
lekss361:feat/activate-domclick-sweep
lekss361:feat/avito-newbuilding-capture
lekss361:fix/house-id-fk-realtime-link
lekss361:fix/migration-162-table-if-exists
lekss361:feat/riasurt-sverdl-layers-108
lekss361:fix/sber-dataset-paths-902
lekss361:fix/conflict-resolution-freshness-1539
lekss361:feat/objective-lots-history-writer-307-obj6
lekss361:feat/velocity-mv-61
lekss361:fix/objective-mapping-is-reviewed-gate-307-obj2
lekss361:fix/cian-detail-rich-fields
lekss361:fix/avito-novostroyki-segment
lekss361:feat/yandex-novostroyki-newflat
lekss361:fix/ci-dedup-runner-storm-1709
lekss361:fix/emiss-pk-granularity-1687
lekss361:feat/listings-segment-param-1188
lekss361:fix/inn-regex-word-boundary-1682
lekss361:fix/excel-deficit-horizon-1590
lekss361:fix/admin-scrape-validation
lekss361:fix/admin-leads-interval-cast-1694
lekss361:fix/dkp-corridor-doc-p10p90-1695
lekss361:fix/weather-wind-d-allnone
lekss361:test/residential-zone-rawprops-1681
lekss361:fix/domrf-badge-regex-narrow-1686
lekss361:feat/yandex-camoufox-transport
lekss361:fix/score-sat-factor-1509
lekss361:fix/base-pace-room-bucket-1593
lekss361:fix/gate-verdict-no-blocker-1617
lekss361:fix/confidence-deal-count-window-1637
lekss361:fix/match-economics-1511-1512
lekss361:fix/listings-partial-indexes-1398
lekss361:fix/smart-suggestions-threshold-1503
lekss361:fix/dkp-corridor-percentile-1520
lekss361:fix/enrich-economics-window-1513
lekss361:fix/leads-stats-window-1383
lekss361:fix/poi-score-scale-1486
lekss361:fix/geo-weight-floor-1633
lekss361:fix/inn-regex-context-1640
lekss361:fix/domrf-status-classify-1609
lekss361:fix/emiss-period-dedup-1606
lekss361:fix/cian-paginate-tail-1393
lekss361:fix/normalize-zero-fill-guard-1638
lekss361:fix/supply-view-devgroup-key-1650
lekss361:fix/residential-zone-detect-1353
lekss361:fix/score-label-threshold-1357
lekss361:fix/trend-ratio-vprior-zero-1508
lekss361:fix/district-median-dedup-1352
lekss361:fix/supply-layers-overlap-1355
lekss361:fix/pdf-expires-at-1530
lekss361:fix/quartirography-area-bucket-1406
lekss361:fix/cad-zones-multipolygon-1344
lekss361:fix/sold-pct-market-verdict-1407
lekss361:fix/week-review-finish
lekss361:fix/week-review-backend-v2
lekss361:feat/plan-vectorization-spike-299
lekss361:fix/1668-analyze-confidence
lekss361:fix/1667-metro-block
lekss361:fix/1666-layout-velocity-beat
lekss361:chore/remove-n1-scraper
lekss361:fix/cian-kitchen-area
lekss361:feat/yandex-detail-backfill
lekss361:feat/avito-detail-backfill
lekss361:fix/best-layouts-bucket-normalization
lekss361:fix/gknspecial-incremental-commit-per-prefix
lekss361:fix/okn-objects-full-registry-load
lekss361:fix/parcel-ird-overlap-except-expand
lekss361:fix/report-assembler-confounded-keys
lekss361:fix/job-settings-json-persist-v2
lekss361:fix/nspd-geo-soft-time-limit-passthrough
lekss361:fix/nspd-soft-time-limit-v2
lekss361:fix/pilot-request-modal-validation
lekss361:fix/recommend-mix-saturation-latest-snapshot
lekss361:fix/scrape-cadastre-fail-counter-v2
lekss361:fix/izyatie-ocr-cad-normalize
lekss361:fix/job-settings-panel-json-state-persist
lekss361:fix/noise-loader-savepoint-per-row
lekss361:fix/objective-sync-config-bare-except
lekss361:fix/parcel-snapshot-mdash-double-escape
lekss361:fix/poi-loader-leap-year-date-replace
lekss361:fix/scrape-cadastre-permanent-fail-counter
lekss361:fix/usermenu-analyst-role-label
lekss361:feat/location-948b-r
lekss361:feat/location-entity-948b
lekss361:feat/insight-entity-948a
lekss361:feat/analyst-role-audit-962
lekss361:feat/cbr-inflation-macro-946
lekss361:feat/cian-zhk-resolve-972
lekss361:perf/forecast-parallel-horizons-1129
lekss361:feat/newbuilding-enrich-backfill-972
lekss361:feat/emiss-macro-indicators-946
lekss361:feat/rosstat-emiss-macro-946
lekss361:ci/frontend-vitest-job
lekss361:chore/frontend-vitest-wkt-tests
lekss361:feat/forecast-meta-footer
lekss361:feat/forecast-future-supply-competitors
lekss361:feat/forecast-docx-pptx-buttons
lekss361:feat/forecast-scoring-panel
lekss361:feat/forecast-product-tz-block
lekss361:feat/market-map-layers-999
lekss361:feat/forecast-chart-section6
lekss361:feat/forecast-export-pptx-959
lekss361:feat/forecast-export-docx-959
lekss361:feat/forecast-export-ui-959
lekss361:feat/forecast-export-telegram-959
lekss361:feat/forecast-export-md-959
lekss361:feat/analyze-response-contract-961
lekss361:feat/competitor-velocity-spatial-fallback-968
lekss361:fix/frontend-healthcheck-hostname
lekss361:feat/analyze-market-coords-999
lekss361:fix/site-finder-entry-crash-1001
lekss361:feat/horizon-selector-996
lekss361:feat/forecast-section-998
lekss361:feat/forecast-endpoint-horizon-enqueue
lekss361:feat/forecast-celery-task-persist
lekss361:feat/forecast-orchestrator-service
lekss361:feat/demand-supply-months-of-inventory
lekss361:feat/wire-district-resolver
lekss361:feat/district-vocab-reconciliation
lekss361:fix/affordability-market-spread
lekss361:fix/backtest-sig-gate
lekss361:feat/wire-978-almon-rate-regime
lekss361:feat/backtest-oos-almon-seasonal
lekss361:ci/forgejo-pytest-gate
lekss361:fix/tradein-praktika-logo-form-scroll
lekss361:feat/yandex-exhaustive-price-room
lekss361:feat/794-sber-time-adjust
lekss361:chore/bot-harness-tuning
lekss361:docs/agent-usage-throttle-qa-terminal
lekss361:fix/avito-sweep-single-run-guard
lekss361:chore/analyst-inbound-queue-tradein-db
lekss361:feat/801-preview-full-wt
lekss361:chore/bot-safety-followups
lekss361:feat/tradein-avito-imv-fix
lekss361:feat/tradein-repair-coef-calibration
lekss361:feat/tradein-avito-houses-fix
lekss361:feat/tradein-address-precision
lekss361:feat/tradein-backfill-prioritize-listings
lekss361:feat/tradein-geocode-deals-nominatim
lekss361:feat/tradein-geocode-deals-from-houses
lekss361:feat/tradein-same-building-match
lekss361:feat/claude-envvars-and-stale-cron
No reviewers
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
1 participant
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#3543
Reference in a new issue
No description provided.
Delete branch "chore/forgejo-retention-settings"
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?
Summary
app.inion prod had no[cron.archive_cleanup]section and no retention keys under[actions]-- everything ran on Forgejo defaults (archive cache swept once/24h, no cap on Actions log/artifact age). That's how the repo-archive cache grew to ~48GB/145GB disk before the daily sweep caught up (Caddy now blocks that URL path in #3534 -- this PR is the second line of defense if that rule is ever lifted).Forgejo is not part of the automated deploy pipeline, and its compose file only ever existed on the host (
/home/gendesign/forgejo/docker-compose.yml-- confirmed it's a plain directory, not a git checkout). So there was nowhere for this config to live, survive a redeploy, or be reviewed. This PR adds a tracked copy atops/forgejo/docker-compose.yml, matching the existing pattern ofops/backup.sh/ops/restore.shfor host-level infra not covered bydocker-compose.prod.yml.What's managed, and how
Config is driven entirely by
FORGEJO__*env vars in the compose file (confirmed -- the live compose already used this fordatabase/server/service/actions), not by hand-editingapp.ini. Env vars are declarative/versioned/redeploy-safe, vs. editing the bind-mountedapp.inidirectly which survives container recreation via the volume but isn't reviewable or reproducible.New keys added:
Dotted section name (
[cron.archive_cleanup]) needs the_0x2E_escape for.-- per the container's ownenvironment-to-ini --help, and confirmed empirically with a dry-run (environment-to-ini --config /dev/null --out /tmp/...inside the container, scratch path only, no prod file touched) that produced exactly[cron.archive_cleanup]with the expected keys.How key names were verified
Not from memory -- a wrong key is silently dropped and creates a false sense of safety. Verified by extracting Go struct
ini:"..."tags directly from the running binary (codeberg.org/forgejo/forgejo:10, Forgejo 10.0.3+gitea-1.22.0):ArtifactRetentionDays int64 ini:"ARTIFACT_RETENTION_DAYS",LogRetentionDays int64 ini:"LOG_RETENTION_DAYS"-- explicit tags, found literally in the binary under the[actions]struct (same struct as the existingENABLED/DEFAULT_ACTIONS_URLkeys).cron.OlderThanConfig/cron.BaseConfig(used byregisterArchiveCleanup) have no explicit ini tags -- Gitea/Forgejo's globalAllCapsUnderscorename mapper applies, the well-established convention for every[cron.*]section (Enabled->ENABLED,RunAtStart->RUN_AT_START,Schedule->SCHEDULE,OlderThan->OLDER_THAN).Retention values vs. current workflows
Checked
.forgejo/workflows/and.github/workflows/(ci.yml,deploy.yml,deploy-obsidian.yml) for artifact usage -- none upload or download artifacts today, so 14-day artifact retention can't break a cross-job dependency. 30-day log retention keeps a full month of CI run logs for failure triage. If a workflow ever addsactions/upload-artifactwith a longer inter-job gap, bumpARTIFACT_RETENTION_DAYSaccordingly.Not applied to prod
This PR only adds the tracked file. To take effect on the VM:
up -d --force-recreateis required, notrestart-- Forgejo regeneratesapp.inifromFORGEJO__*env vars viaenvironment-to-iniat container start, andrestartdoesn't re-read a changedenvironment:block.After restart, sanity-check with (read-only):
Test plan
python -c "import yaml; yaml.safe_load(...)"-- YAML parsesenvironment-to-iniinside the container confirmed the_0x2E_escape produces the correct[cron.archive_cleanup]section (scratch path, not prod config)app.inipicks up new sections, watch/data/gitea/repo-archivesize andactions_logdir over the next 24h🤖 Generated with Claude Code
https://claude.ai/code/session_01JY6iWDnGDthdvsMWgK1BMG
View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.Merge
Merge the changes and update on Forgejo.Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.