============================================================ STOCKLAB — FINAL CONSOLIDATED RELEASE GATE v3 ============================================================ UTC=2026-09-10T18:22:20Z HOST=Azeroth USER=root BASE=/data/files/stocklab/backend RC=/data/files/bmw/stocklab-release-candidate-sl003-final-20260910-111453 OUT=/data/files/bmw/stocklab-audit-remediation-FINAL-20260910-212220 ============================================================ 1. PREFLIGHT + PRODUCTION SAFETY ============================================================ BASE_EXISTS=PASS RC_EXISTS=PASS --- Production containers --- stocklab-redis Up 36 hours (healthy) stocklab-db Up 36 hours (healthy) stocklab-frontend Up 27 hours (healthy) stocklab-backend Up 24 hours (healthy) stocklab-worker Up 24 hours (healthy) stocklab-beat Up 24 hours --- Production restart counters BEFORE --- stocklab-backend=0 stocklab-frontend=0 stocklab-db=0 stocklab-redis=0 stocklab-worker=0 stocklab-beat=0 --- Production listeners BEFORE --- LISTEN 0 2048 127.0.0.1:18000 0.0.0.0:* users:(("uvicorn",pid=1574355,fd=11)) LISTEN 0 511 127.0.0.1:6379 0.0.0.0:* users:(("redis-server",pid=1133711,fd=6)) LISTEN 0 200 127.0.0.1:5432 0.0.0.0:* users:(("postgres",pid=1141225,fd=6)) LISTEN 0 511 127.0.0.1:13000 0.0.0.0:* users:(("next-server (v1",pid=1497838,fd=18)) PRODUCTION_MODIFICATION=FALSE PRODUCTION_RESTART=FALSE PRODUCTION_DATABASE_ACCESS=FALSE ============================================================ 2. LOGICAL FILE INVENTORY ============================================================ BASE_LOGICAL_FILES=147 RC_LOGICAL_FILES=163 BASE_ONLY=0 RC_ONLY=16 CHANGED=9 RC_IGNORED_ARTIFACTS=144 IGNORED_RC_ARTIFACTS: .pytest_cache/.gitignore .pytest_cache/CACHEDIR.TAG .pytest_cache/README.md .pytest_cache/v/cache/nodeids .pytest_cache/v/cache/stepwise alembic/__pycache__/env.cpython-313.pyc alembic/versions/__pycache__/0001_initial_schema.cpython-313.pyc alembic/versions/__pycache__/0002_confidence_data_quality_scores.cpython-313.pyc alembic/versions/__pycache__/0003_revoked_tokens.cpython-313.pyc alembic/versions/__pycache__/0004_alert_events_emerging.cpython-313.pyc app/__pycache__/__init__.cpython-313.pyc app/__pycache__/main.cpython-313.pyc app/adapters/__pycache__/__init__.cpython-313.pyc app/adapters/__pycache__/base.cpython-313.pyc app/adapters/__pycache__/demo.cpython-313.pyc app/adapters/__pycache__/eodhd.cpython-313.pyc app/adapters/__pycache__/fmp.cpython-313.pyc app/adapters/__pycache__/resolver.cpython-313.pyc app/adapters/__pycache__/schemas.cpython-313.pyc app/adapters/__pycache__/validation.cpython-313.pyc app/api/__pycache__/__init__.cpython-313.pyc app/api/v1/__pycache__/__init__.cpython-313.pyc app/api/v1/__pycache__/aggregation.cpython-313.pyc app/api/v1/__pycache__/auth.cpython-313.pyc app/api/v1/__pycache__/companies.cpython-313.pyc app/api/v1/__pycache__/deps.cpython-313.pyc app/api/v1/__pycache__/health.cpython-313.pyc app/api/v1/__pycache__/rankings.cpython-313.pyc app/api/v1/__pycache__/screeners.cpython-313.pyc app/api/v1/__pycache__/search.cpython-313.pyc app/api/v1/__pycache__/serializers.cpython-313.pyc app/api/v1/__pycache__/watchlist.cpython-313.pyc app/core/__pycache__/__init__.cpython-313.pyc app/core/__pycache__/config.cpython-313.pyc app/core/__pycache__/db.cpython-313.pyc app/core/__pycache__/logging.cpython-313.pyc app/core/__pycache__/model_version.cpython-313.pyc app/core/__pycache__/security.cpython-313.pyc app/core/__pycache__/token_revocation.cpython-313.pyc app/engines/__pycache__/__init__.cpython-313.pyc app/engines/__pycache__/alerts.cpython-313.pyc app/engines/__pycache__/currency.cpython-313.pyc app/engines/__pycache__/estimates.cpython-313.pyc app/engines/__pycache__/identity.cpython-313.pyc app/engines/__pycache__/industry_applicability.cpython-313.pyc app/engines/__pycache__/normalize.cpython-313.pyc app/engines/__pycache__/reference_data.cpython-313.pyc app/engines/__pycache__/ttm.cpython-313.pyc app/engines/__pycache__/types.cpython-313.pyc app/engines/backtesting/__pycache__/__init__.cpython-313.pyc app/engines/backtesting/__pycache__/performance.cpython-313.pyc app/engines/backtesting/__pycache__/replay.cpython-313.pyc app/engines/backtesting/__pycache__/robustness.cpython-313.pyc app/engines/discovery/__pycache__/__init__.cpython-313.pyc app/engines/discovery/__pycache__/emerging.cpython-313.pyc app/engines/macro/__pycache__/__init__.cpython-313.pyc app/engines/macro/__pycache__/context.cpython-313.pyc app/engines/metrics/__pycache__/__init__.cpython-313.pyc app/engines/metrics/__pycache__/core.cpython-313.pyc app/engines/metrics/__pycache__/formula_utils.cpython-313.pyc app/engines/metrics/__pycache__/point_in_time.cpython-313.pyc app/engines/multibagger/__pycache__/__init__.cpython-313.pyc app/engines/multibagger/__pycache__/score.cpython-313.pyc app/engines/quality/__pycache__/__init__.cpython-313.pyc app/engines/quality/__pycache__/accounting.cpython-313.pyc app/engines/recommendation/__pycache__/__init__.cpython-313.pyc app/engines/recommendation/__pycache__/bands.cpython-313.pyc app/engines/recommendation/__pycache__/engine.cpython-313.pyc app/engines/recommendation/__pycache__/sell_trigger_builder.cpython-313.pyc app/engines/recommendation/__pycache__/sell_triggers.cpython-313.pyc app/engines/scoring/__pycache__/__init__.cpython-313.pyc app/engines/scoring/__pycache__/confidence.cpython-313.pyc app/engines/scoring/__pycache__/data_quality.cpython-313.pyc app/engines/scoring/__pycache__/overall.cpython-313.pyc app/engines/scoring/__pycache__/peer_groups.cpython-313.pyc app/engines/scoring/__pycache__/percentile.cpython-313.pyc app/engines/scoring/__pycache__/persistence.cpython-313.pyc app/engines/scoring/__pycache__/subscores.cpython-313.pyc app/engines/scoring/__pycache__/wiring.cpython-313.pyc app/engines/screening/__pycache__/executor.cpython-313.pyc app/engines/screening/__pycache__/presets.cpython-313.pyc app/engines/valuation/__pycache__/__init__.cpython-313.pyc app/engines/valuation/__pycache__/blend.cpython-313.pyc app/engines/valuation/__pycache__/dcf.cpython-313.pyc app/engines/valuation/__pycache__/expected_return.cpython-313.pyc app/engines/valuation/__pycache__/margin_of_safety.cpython-313.pyc app/engines/valuation/__pycache__/multiples.cpython-313.pyc app/engines/valuation/__pycache__/wacc.cpython-313.pyc app/models/__pycache__/__init__.cpython-313.pyc app/models/__pycache__/base.cpython-313.pyc app/models/__pycache__/companies.cpython-313.pyc app/models/__pycache__/derived.cpython-313.pyc app/models/__pycache__/financials.cpython-313.pyc app/models/__pycache__/governance.cpython-313.pyc app/models/__pycache__/market.cpython-313.pyc app/models/__pycache__/reference.cpython-313.pyc app/models/__pycache__/user_facing.cpython-313.pyc app/schemas/__pycache__/__init__.cpython-313.pyc app/schemas/__pycache__/auth.cpython-313.pyc app/schemas/__pycache__/common.cpython-313.pyc app/workers/__pycache__/__init__.cpython-313.pyc app/workers/__pycache__/backtest.cpython-313.pyc app/workers/__pycache__/celery_app.cpython-313.pyc app/workers/__pycache__/discovery.cpython-313.pyc app/workers/__pycache__/ingest.cpython-313.pyc app/workers/__pycache__/peer_groups.cpython-313.pyc app/workers/__pycache__/recompute.cpython-313.pyc app/workers/__pycache__/token_cleanup.cpython-313.pyc scripts/__pycache__/demo_pipeline_smoke_test.cpython-313.pyc scripts/__pycache__/seed_demo.cpython-313.pyc tests/__pycache__/__init__.cpython-313.pyc tests/__pycache__/test_accounting_quality.cpython-313.pyc tests/__pycache__/test_alerts.cpython-313.pyc tests/__pycache__/test_api_aggregation.cpython-313.pyc tests/__pycache__/test_api_contract.cpython-313.pyc tests/__pycache__/test_backtesting.cpython-313.pyc tests/__pycache__/test_config.cpython-313.pyc tests/__pycache__/test_cross_metric.cpython-313.pyc tests/__pycache__/test_currency.cpython-313.pyc tests/__pycache__/test_demo_adapter.cpython-313.pyc tests/__pycache__/test_discovery.cpython-313.pyc tests/__pycache__/test_emerging.cpython-313.pyc tests/__pycache__/test_eodhd_adapter.cpython-313.pyc tests/__pycache__/test_estimates.cpython-313.pyc tests/__pycache__/test_fixture_validation.cpython-313.pyc tests/__pycache__/test_fmp_adapter.cpython-313.pyc tests/__pycache__/test_identity.cpython-313.pyc tests/__pycache__/test_macro_context.cpython-313.pyc tests/__pycache__/test_metrics_known_cases.cpython-313.pyc tests/__pycache__/test_model_version.cpython-313.pyc tests/__pycache__/test_multibagger.cpython-313.pyc tests/__pycache__/test_peer_groups.cpython-313.pyc tests/__pycache__/test_pillar_wiring.cpython-313.pyc tests/__pycache__/test_point_in_time.cpython-313.pyc tests/__pycache__/test_provider_resilience.cpython-313.pyc tests/__pycache__/test_recommendation.cpython-313.pyc tests/__pycache__/test_replay.cpython-313.pyc tests/__pycache__/test_scoring.cpython-313.pyc tests/__pycache__/test_seed_reference_data.cpython-313.pyc tests/__pycache__/test_ttm.cpython-313.pyc tests/__pycache__/test_validation.cpython-313.pyc tests/__pycache__/test_valuation.cpython-313.pyc tests/fixtures/__pycache__/__init__.cpython-313.pyc tests/fixtures/__pycache__/company_profiles.cpython-313.pyc RC_ONLY_FILES: app/adapters/resolver.py.before-sl004-20260910-144102 app/adapters/resolver.py.before-sl004-20260910-180740 app/adapters/resolver.py.before-sl004-20260910-181036 app/adapters/validation.py.before-sl004-20260910-180740 app/adapters/validation.py.before-sl004-20260910-181036 app/api/v1/rankings.py.before-sl003-20260910-110624 app/schemas/common.py.before-sl015-20260910-102452 app/workers/celery_app.py.before-celery-fix app/workers/ingest.py.before-sl004-20260910-180740 app/workers/ingest.py.before-sl004-20260910-181036 app/workers/recompute.py.before-sl001 app/workers/recompute.py.before-sl001-20260910-105051 app/workers/recompute.py.before-sl001-20260910-143627 app/workers/recompute.py.before-sl001-ast app/workers/recompute.py.before-sl001-exact tests/test_provider_resilience.py.before-sl004-test-contract-20260910-182809 LOGICAL_INVENTORY=FAIL