Commit Graph
26 Commits
Author SHA1 Message Date
enzo cbd8b347db feat: visual overhaul — Sidebar/Header/Dashboard aligned to prototype 2026-07-22 20:32:08 +08:00
enzoandClaude a97b885081 fix: comma-separate D-level profiles, map restart to blue in timeline
- D-level profile names now joined with commas instead of concatenated spans
- Gateway trend restart indicator changed from yellow to blue (red/orange/blue scheme)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-22 20:22:50 +08:00
enzoandClaude db11548414 fix: visual fixes — dark theme default, sidebar, dashboard cards, timeline dots, header counts
- Set data-theme=dark as default in index.html, useTheme defaults to 'dark' (issues 1, 10)
- Rename "Cron" to "Cron 管理" in sidebar (issue 2)
- Set card grid gap to 14px per design spec (issue 3)
- Show D-grade profile names below health bar chart (issue 4)
- Remove R/F/H/OK text from timeline, use colored dots with hover tooltip (issue 5)
- Wire live online/running/offline counts via usePolling in header, add offline badge (issue 9)
- Fix search placeholder to "搜索 Profile / 任务 / Cron / 事件..." (issue 9)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-22 19:54:44 +08:00
enzo e5bb7ec49a fix: explicit navigate after login + flat routes + venv gitignore 2026-07-22 19:23:09 +08:00
enzo cb296ba09e chore: remove accidentally committed venv, fix gitignore 2026-07-22 19:22:03 +08:00
enzo 1de5fcf698 fix: flatten React Router structure — no nested Routes, each page is a top-level route 2026-07-22 19:21:29 +08:00
enzo 07ff8c2a12 fix: nested route navigation — use relative paths, redirect to / not /dashboard 2026-07-22 19:17:30 +08:00
enzo 681e4b3a7d fix: double navigation on login causing 404 2026-07-22 19:12:06 +08:00
enzo c7563ede47 fix: login button variant=primary 2026-07-22 18:11:18 +08:00
enzo ff813824fa fix: UserRole enum case mismatch with PostgreSQL (OWNER→owner) 2026-07-22 18:06:17 +08:00
enzoandClaude eaf13e5f51 feat: Event archive management — Event model, migration, API, frontend page (Phase 8)
- Event ORM model with status/level enums, domain categories, review tracking
- Alembic migration e7f3a9b1c5d0 for events table
- Event crawler service with placeholder data (12 sample events)
- GET /api/v1/events with status/domain/search filtering and overdue_days
- EventArchivePage with filter toolbar (status, domain, search) and adaptive card grid
- Status badges, level badges, domain tags, overdue markers on event cards
- Loading/error/empty states, hover-to-honey card interaction

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-22 17:34:19 +08:00
enzoandClaude 5c0352c768 feat: Kanban board with five-column view, drag-and-drop, detail drawer, anomaly detection (Phase 7)
Backend: new kanban API with mock data, five-column task aggregation, task detail, drag-to-move
with block reason validation, and server-side anomaly detection (blocked_timeout, unclaimed,
retry_failure).

Frontend: full kanban page with summary bar + filters, five-column board with BLOCKED orange
border, task cards with color-coded left bar and anomaly highlighting, HTML5 native drag-and-drop
(desktop only), block reason modal, done confirmation, 480px detail drawer with meta/description/
dependencies/activity timeline, floating batch operations bar, and optimistic updates with rollback.

Drawer component: title prop changed from string to ReactNode to support rich title content.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-22 17:31:03 +08:00
enzo 3d905b606a feat: Key batch management (Key Manager service, API, frontend) (Phase 6)
Backend service for reading/writing profile .env files with masking,
auto-backup, batch overwrite, batch scan, diff view, and CSV export.
Owner/operator-only API endpoints. Frontend KeysPage with batch-overwrite
modal, batch-scan results, diff view with highlight, and CSV download.
Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-22 17:24:53 +08:00
enzoandClaude 670d222665 feat: Cron management API and frontend page (Phase 5)
Backend: CRON API with list/logs/run/pause/resume endpoints, Hermes CLI
integration, system cron jobs, audit logging for operations.
Frontend: CronPage with filter bar (status/profile), table with 30s polling,
log modal with level-colored messages, action buttons (run/pause/resume),
run confirmation dialog, 4-state coverage. Sidebar shows cron failure badge.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-22 17:19:11 +08:00
enzoandClaude 8bfefd199c feat: Profile health score system (scoring engine, API, frontend)
Health scoring engine with 4 dimensions: Gateway stability (40%), config
completeness (25%), skill consistency (20%), and Cron success rate (15%).
Grades A(80-100) B(60-79) C(40-59) D(0-39) with detailed deduction items
and fix suggestions per dimension.

API endpoints:
  - GET /health/scores — list all profiles with grade filter + sort
  - GET /health/scores/{profile} — detail with deductions + suggestions
  - POST /health/compare — multi-profile config/skill comparison
  - POST /health/calculate — manual recalculation (owner only)

Frontend HealthPage: grade distribution cards, score table with expandable
detail rows, batch compare view with diff highlighting, grade/select/sort
filters, and owner-only recalculation.

Data sources use placeholders (TODO: hermes CLI / file reads) but the full
scoring logic is implemented end-to-end.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-22 17:14:30 +08:00
enzoandClaude 6d4a5c955b feat: Gateway health monitoring (Hermes CLI, API, frontend)
- Hermes CLI wrapper using subprocess.run for gateway status
- Gateway API: status list (with filter), events (placeholder), start/stop/restart with audit logging
- Frontend GatewayPage: timeline, filter bar, status table with 10s polling, operation modals
- usePolling hook for periodic data refresh

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-22 17:05:41 +08:00
enzoandClaude 76045538bb feat: Dashboard with summary cards, health distribution, gateway trend, global search
Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-22 17:01:18 +08:00
enzo 10404be62d feat: frontend auth flow (login, user management, audit logs, route guards) 2026-07-22 16:55:11 +08:00
enzoandClaude e13be8eb1c feat: JWT auth, user management, audit logging system
Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-22 16:52:09 +08:00
enzoandClaude 7441546804 feat: layout components (Sidebar, Header, MobileNav, TabBar, AppLayout) with routing
Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-22 16:33:42 +08:00
enzoandClaude bd3d0147f5 feat: shared UI component library (11 components)
Add Button, Card, Table, Badge, Modal, Drawer, Toast, Skeleton,
Toggle, Timeline, SearchBox — all using CSS variables from tokens.css
with className prop extension and exported Props interfaces.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-22 16:31:14 +08:00
enzoandClaude fbee37635b feat: CSS variable dual-theme system (dark default + light)
Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-22 16:28:23 +08:00
enzoandClaude 4762376d0a feat: Vite + React 19 + Tailwind + TypeScript scaffold
Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-22 16:28:11 +08:00
enzoandClaude 5a69cea3ae feat: Alembic setup, User and AuditLog models with migration
Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-22 16:25:53 +08:00
enzoandClaude 83112ed36d feat: FastAPI skeleton with config, database, health endpoint
Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-22 16:23:59 +08:00
enzoandClaude 2e1aa251d2 chore: initial commit — project scaffold (FastAPI + React + PostgreSQL)
Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-22 16:20:01 +08:00