feat(modernization): promote deferred routes to in-scope and unify page header styles

Promote /tables, /excel-query, /query-tool, /mid-section-defect from
deferred to full shell-governed in-scope routes with canonical redirects,
content contracts, governance artifacts, and updated CI gates.

Unify all page header gradients to #667eea → #764ba2 and h1 font-size
to 24px for visual consistency across all dashboard pages. Remove
Native Route-View dev annotations from job-query, excel-query, and
query-tool headers.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
egg
2026-02-12 13:20:06 +08:00
parent 0ed69ce326
commit c38b5f646a
67 changed files with 1073 additions and 252 deletions

View File

@@ -5,14 +5,16 @@ workers = int(os.getenv("GUNICORN_WORKERS", "2")) # 2 workers for redundancy
threads = int(os.getenv("GUNICORN_THREADS", "4"))
worker_class = "gthread"
# Timeout settings - critical for dashboard stability
timeout = 65 # Worker timeout: must be > call_timeout (55s)
graceful_timeout = 30 # Graceful shutdown timeout (enough for thread cleanup)
# Timeout settings - critical for dashboard stability.
# Keep this above slow-query timeout paths (e.g. query-tool 120s) and DB pool timeout.
timeout = int(os.getenv("GUNICORN_TIMEOUT", "130"))
graceful_timeout = int(os.getenv("GUNICORN_GRACEFUL_TIMEOUT", "60"))
keepalive = 5 # Keep-alive connections timeout
# Worker lifecycle management - prevent state accumulation
max_requests = 1000 # Restart worker after N requests
max_requests_jitter = 100 # Random jitter to prevent simultaneous restarts
# Worker lifecycle management - prevent state accumulation.
# Make these configurable so high-load test environments can raise the ceiling.
max_requests = int(os.getenv("GUNICORN_MAX_REQUESTS", "5000"))
max_requests_jitter = int(os.getenv("GUNICORN_MAX_REQUESTS_JITTER", "500"))
# ============================================================