Commit graph

35 commits

Author SHA1 Message Date
Vadym Samoilenko
2eee1a7c02 fix: projects page shows all-time data, not just last 30 days
When /api/dashboard/projects is called without date params (as the
Projects page does), remove the date filter so all 36 projects appear
regardless of last activity date. Explicit date params still filter
as before (dashboard summary tab).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-24 11:57:07 +01:00
Vadym Samoilenko
474e35c0ea feat: dashboard preset filters (Today/7d/30d), live feed loads today sessions on mount 2026-03-26 15:33:52 +00:00
Vadym Samoilenko
dd92268e80 fix: setup script quoting (HOOK_CMD paths), quoted heredoc, proper JSON connection test 2026-03-26 15:29:17 +00:00
Vadym Samoilenko
015c5efbbd fix: try underscore variant when dash-slug path not found on disk 2026-03-26 15:23:03 +00:00
Vadym Samoilenko
dd902ebb61 fix: repo path resolution via slug+ROOT_PATH, add trailing slash to repo URL 2026-03-26 15:21:43 +00:00
Vadym Samoilenko
4e950a2a67 feat: auto-detect repo URL from git remote, fix project slug (full path not last segment) 2026-03-26 15:19:40 +00:00
Vadym Samoilenko
46db7476a3 fix: timeline chart linear scale, date filter on daily chart, null-safe chart init 2026-03-26 15:16:12 +00:00
Vadym Samoilenko
0ee3c3fbd9 fix: filter collector to only scan projects under CC_ROOT_PATH 2026-03-26 15:09:49 +00:00
Vadym Samoilenko
4d69a4ac64 feat: project metadata fields (client, job#, repo) with inline editing + time calc audit 2026-03-26 15:08:14 +00:00
Vadym Samoilenko
9ebe5a92fa fix: filter invalid timestamps in timeline chart to prevent Chart.js crash 2026-03-26 14:50:28 +00:00
Vadym Samoilenko
94ae1af2c2 fix: eager load ApiKey.user with selectinload to avoid lazy load in async context 2026-03-26 14:46:14 +00:00
Vadym Samoilenko
080eec32d1 fix: use execute(delete()) instead of session.delete() to avoid MissingGreenlet 2026-03-26 14:44:19 +00:00
Vadym Samoilenko
7f8048dcee fix: accept HTTP 422 as valid connection (key works, empty body rejected); remove curl preview 2026-03-26 14:43:03 +00:00
Vadym Samoilenko
6b2f811ee5 fix: use heredoc temp file for Python settings update — avoid quote conflicts in bash 2026-03-26 14:37:56 +00:00
Vadym Samoilenko
d7198fdc59 fix: don't rebuild DOM while modal is open — reload table only on close 2026-03-26 14:34:40 +00:00
Vadym Samoilenko
99f1ff6bec fix: escape bash ${VAR} in JS template literal — use array join instead 2026-03-26 14:31:30 +00:00
Vadym Samoilenko
0c7a7b8082 feat: logout button, revoke/delete keys, setup script download
- Sidebar: Add Sign Out button below user info
- Keys API: split revoke (PATCH /{id}/revoke) and delete (DELETE /{id})
- Keys page: Revoke + Delete buttons per key; delete removes from DB
- New key flow: after creation show download setup script step
  - Script embeds API key, asks for projects root folder
  - Downloads cc-collector.py, merges Claude Code hook into settings.json
  - Tests connection and reports result

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-26 14:05:14 +00:00
Vadym Samoilenko
354aec0995 style: brighter text colors — white primary, lighter muted 2026-03-26 13:59:55 +00:00
Vadym Samoilenko
b7b49110da fix: login page width 100% to center within flex #app container 2026-03-26 13:59:14 +00:00
Vadym Samoilenko
c42d4491cb fix: correct static file layout for Apache Alias serving
Apache serves /cc-dashboard/* from /var/www/html/cc-dashboard/ directly.
index.html goes to the root, CSS/JS to static/ subdirectory to match
/cc-dashboard/static/... paths referenced in index.html.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-26 13:57:33 +00:00
Vadym Samoilenko
805566f1e5 redesign: premium dark UI — Montserrat, black + #FFC407
- Full CSS redesign: OLED black (#0a0a0a), #FFC407 accent, Montserrat 400–900
- Bold high-contrast typography (900 weight values, -0.04em tracking)
- No glassmorphism — flat sharp surfaces with subtle borders
- KPI cards: 2px yellow top accent bar on hover + lift shadow
- Login: centered card with yellow top bar + subtle grid bg pattern
- Modals: yellow top accent line
- Active nav: solid yellow bg, black text
- Buttons: yellow CTA with glow, ghost with yellow hover
- Badges: pill with yellow tint
- Favicon: dark card with yellow CC

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-26 13:51:18 +00:00
Vadym Samoilenko
968738a245 chore: add deploy.sh script
git pull → sync static to /var/www/html → docker compose build → restart app
Migrations run automatically on container start via alembic upgrade head.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-26 13:46:45 +00:00
Vadym Samoilenko
b90e335f2b feat: apply glassmorphism design system from Oliver dashboard
- Full CSS rewrite: deep dark bg (#060714), glass cards with backdrop-filter,
  Fira Sans/Code fonts, indigo/violet accent palette replacing yellow
- Add animated orb background to index.html
- Update favicon to indigo gradient
- Wrap admin/settings forms in <form> tags with autocomplete attributes

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-26 13:43:36 +00:00
Vadym Samoilenko
436a089e63 fix: wrap login in form tag, remove QUIC for SSE endpoint
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-26 13:22:48 +00:00
Vadym Samoilenko
b2777958b3 remove tmp debug logging 2026-03-26 13:19:17 +00:00
Vadym Samoilenko
9d292f80da tmp: debug login to diagnose 401 2026-03-26 13:18:17 +00:00
Vadym Samoilenko
db4a431910 fix: set CC_BASE before api.js loads to fix login 404
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-26 13:14:00 +00:00
Vadym Samoilenko
ca40d251d6 fix: replace passlib with bcrypt directly (passlib incompatible with bcrypt>=4)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-26 13:10:24 +00:00
Vadym Samoilenko
8edf31edff fix: simplify migration — let create_table handle user_role enum
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-26 13:06:22 +00:00
Vadym Samoilenko
538977152e fix: prevent double user_role enum creation in migration
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-26 13:04:04 +00:00
Vadym Samoilenko
69270a2990 add .dockerignore to exclude __pycache__ from image
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-26 13:02:16 +00:00
Vadym Samoilenko
4e41ba02c0 fix: idempotent user_role type creation in migration
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-26 13:00:07 +00:00
Vadym Samoilenko
63e7195e1a fix: alembic config path in Dockerfile CMD
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-26 12:59:10 +00:00
Vadym Samoilenko
7b30880d44 Initial commit — CC Dashboard v1.0
Multi-tenant Claude Code monitoring dashboard.
FastAPI + PostgreSQL + Docker + SSE real-time updates.
Montserrat font, black/#FFC407 color scheme.
Apache reverse proxy config at /cc-dashboard/.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-26 12:54:47 +00:00
Vadym Samoilenko
074cf56376 Initial commit 2026-03-26 12:41:06 +00:00