- aggregator.py: store union of (start_at, end_at) intervals, not sum of active_hours — active_hours is Claude's estimate, not wall-clock time - dashboard/monthly: compute from session intervals + overhead per day instead of DailyStat.total_hours (which lacked overhead and used active_hours) - dashboard/dow: same fix — query sessions directly, apply union + overhead - Both monthly and dow now match the KPI summary card exactly Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
29 lines
596 B
Text
29 lines
596 B
Text
# Database
|
|
DB_PASSWORD=your_db_password
|
|
|
|
# JWT
|
|
SECRET_KEY=run-openssl-rand-hex-32-to-generate
|
|
|
|
# App
|
|
DEBUG=false
|
|
BASE_PATH=/cc-dashboard
|
|
APP_TITLE=CC Dashboard
|
|
LOG_FORMAT=json
|
|
|
|
# Azure DevOps
|
|
ADO_ORGANIZATION=your-org
|
|
ADO_PROJECT=your-project
|
|
ADO_PAT=your-personal-access-token
|
|
ADO_SYNC_INTERVAL_MINUTES=15
|
|
|
|
# Mailgun
|
|
MAILGUN_API_KEY=your-mailgun-api-key
|
|
MAILGUN_DOMAIN=mg.yourdomain.com
|
|
MAILGUN_FROM=CC Dashboard <noreply@mg.yourdomain.com>
|
|
|
|
# AI Reports (Anthropic Claude)
|
|
ANTHROPIC_API_KEY=sk-ant-...
|
|
REPORT_EMAIL=you@example.com
|
|
DAILY_REPORT_HOUR=20
|
|
WEEKLY_REPORT_DAY=6
|
|
WEEKLY_REPORT_HOUR=21
|