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: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
1 commit
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
635ad2df35 |
chore(forgejo): track compose file with retention/cleanup settings
All checks were successful
CI Trade-In / changes (pull_request) Successful in 10s
CI Trade-In / backend-tests (pull_request) Has been skipped
CI Trade-In / browser-tests (pull_request) Has been skipped
CI / changes (pull_request) Successful in 12s
CI Trade-In / frontend-checks (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Successful in 2m38s
CI / backend-tests (pull_request) Successful in 6m32s
app.ini on prod has 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). An external crawler hitting per-commit archive URLs grew repo-archive cache to ~48GB/145GB before the daily sweep caught up; Caddy now blocks that path (#3534), but this is the second line of defense if that rule is ever lifted. Forgejo isn't part of the automated deploy pipeline and its compose file only existed on the host (not a git checkout), so there was nowhere for this config to survive a redeploy or even be reviewed. Adds a tracked copy at ops/forgejo/docker-compose.yml, alongside the existing ops/backup.sh and ops/restore.sh host scripts, with: - [cron.archive_cleanup]: ENABLED/RUN_AT_START=true, SCHEDULE=@every 1h, OLDER_THAN=1h — hourly sweep instead of daily, 1h grace window. - [actions] LOG_RETENTION_DAYS=30, ARTIFACT_RETENTION_DAYS=14 — checked against .forgejo/workflows and .github/workflows first: no workflow uploads/downloads artifacts today, so nothing to break. Key names verified against the running image (Forgejo 10.0.3) by extracting Go struct ini-tags from the binary and dry-running environment-to-ini in a container scratch dir — not from memory, since a wrong key is silently dropped. Not applied to prod. Needs manual scp + `up -d --force-recreate forgejo` per the file's header comment — see PR description. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JY6iWDnGDthdvsMWgK1BMG |