83a7b56945
fix: prevent parent menu items from navigating, only toggle submenu
Deploy Admin Frontend / build-and-deploy (push) Successful in 9s
2026-06-19 12:53:27 +08:00
14bc16ea01
fix: handle undefined in mode label render
Deploy Admin Frontend / build-and-deploy (push) Successful in 9s
2026-06-19 12:51:24 +08:00
a30bfcf087
fix: add mode labels for learning sessions
Deploy Admin Frontend / build-and-deploy (push) Failing after 10s
2026-06-19 12:50:14 +08:00
129a9b9abc
fix: show user/kb names in LearningData page
Deploy Admin Frontend / build-and-deploy (push) Successful in 8s
2026-06-19 12:48:01 +08:00
8da90c721b
fix: remove duplicate render on RecordPage materialId
Deploy Admin Frontend / build-and-deploy (push) Successful in 9s
2026-06-19 12:46:13 +08:00
ba4e35d413
feat: show user/kb/material names in admin learning tables
...
Deploy Admin Frontend / build-and-deploy (push) Failing after 7s
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-19 12:44:54 +08:00
e2d94742e2
feat: show userName/kbName/materialName in admin learning tables
...
Deploy Admin Frontend / build-and-deploy (push) Failing after 10s
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-19 12:44:31 +08:00
60b6100466
feat: add Chinese labels for admin learning data pages
...
Deploy Admin Frontend / build-and-deploy (push) Successful in 10s
- New constants/labels.ts with all enum → Chinese mappings
- DataPages.tsx: all render() functions use labels
- Dashboard.tsx: eventType shows Chinese
- LearningData.tsx: session status shows Chinese
- Filter dropdowns also show Chinese options
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-19 12:36:54 +08:00
5de0b0ecaf
refactor: merge admin/learning into admin-api/learning, restore API isolation
...
Deploy Admin Frontend / build-and-deploy (push) Successful in 11s
- Move AdminLearningService + DTOs to learning-session module
- Merge 21 new endpoints into existing admin-api/learning controller
- Add analysis and ai-usage methods to unified service
- Delete admin-learning module (no longer needed)
- Revert JwtAuthGuard /api/admin bypass (was breaking isolation)
- Fix: /api/* now exclusively serves user/iOS traffic again
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-18 19:26:04 +08:00
3b825a1cf2
fix: add missing learning sub-page routes in App.tsx
...
Deploy Admin Frontend / build-and-deploy (push) Successful in 10s
9 sub-pages (events, sessions, progress, daily, records, timeline,
anomalies, user-diagnose, material-diagnose) were defined in
routes/index.tsx but not registered as React Router <Route> elements,
causing 404 for all /learning/* pages except dashboard and replay.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-18 18:00:49 +08:00
e69930f7f4
feat: Admin 管理后台学习功能 - 路由、菜单、类型定义
...
Deploy Admin Frontend / build-and-deploy (push) Successful in 12s
- App.tsx: 主应用更新
- menu.tsx: 菜单配置新增学习模块
- routes/index.tsx: 路由注册
- types/learning.ts: 学习相关类型定义
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-18 11:23:01 +08:00
6ad24aabe4
fix: add back /learning-data menu item
...
Deploy Admin Frontend / build-and-deploy (push) Successful in 11s
Missing from original menu after regroup. Now 33/33 paths verified.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-15 22:17:41 +08:00
b05e5d86c7
fix: restore all original menu items, regroup into 6 categories
...
Deploy Admin Frontend / build-and-deploy (push) Successful in 11s
All original entries preserved. New grouping:
- 总览
- 用户与权限 (管理员/普通用户/会员与额度)
- 知识库 (知识库+知识源+运维+发布+导入+文件+复习)
- 学习数据 (Dashboard/事件/会话/进度/每日/记录/时间线/异常/诊断)
- 系统运维 (Hermes/限流/安全/密钥/监控/AI/服务器/对话/事件/向量/配置/备份/缓存/通知/内容安全)
- 合规与报表 (合规/审计/报表/API用量/项目)
- 系统配置
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-15 22:09:02 +08:00
699f9012e0
refactor: organize admin menu into categories
...
Deploy Admin Frontend / build-and-deploy (push) Successful in 8s
Before: 17 flat first-level items, 14 under single "系统运维"
After: 5 groups — 总览/用户管理/知识库/学习数据/系统
- AdminMenuItem.path → optional for group headers
- Breadcrumb map updated to match new structure
- Removed unused entries (hermes/servers/billing/git/etc.)
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-15 22:06:11 +08:00
d697877056
chore: remove TaskAssistant from admin
...
Deploy Admin Frontend / build-and-deploy (push) Successful in 9s
Remove /assistant route, menu item, breadcrumb from App.tsx,
routes/index.tsx, menu.tsx, AdminLayout.tsx.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-15 22:01:21 +08:00
c2f9c376d0
fix: resolve all TypeScript build errors in admin
...
Deploy Admin Frontend / build-and-deploy (push) Successful in 11s
- DataPages.tsx: add any type annotation to all onRow callbacks
(ReadingEvent/Session/Anomaly/Record/Progress)
- ReplayPage.tsx: remove unused dayjs import
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-15 21:50:47 +08:00
42c3a604ab
fix: implement session-to-events cross-page navigation
...
Deploy Admin Frontend / build-and-deploy (push) Failing after 6s
- Session detail: add "查看关联事件" button linking to /learning/events
- ReadingEventPage: read clientSessionId from URL search params on mount
- ReadingEventPage: add Client Session ID filter input
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-15 21:47:25 +08:00
37d5a51514
feat: add clientSessionId filter to SessionPage (ADMIN-INFO-013)
...
Deploy Admin Frontend / build-and-deploy (push) Failing after 7s
- SessionPage already had full implementation by user
- Added clientSessionId filter input for active/interrupted session search
- Detail drawer already covers 16 fields including session diagnostics
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-15 21:44:22 +08:00
de415ff3c1
fix: add materialId filter + column to RecordPage
...
Deploy Admin Frontend / build-and-deploy (push) Failing after 6s
Review finding: missing materialId filter input and list column.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-15 21:38:16 +08:00
0fd0709b8b
feat: UserTimelinePage with Timeline component (ADMIN-INFO-009)
...
Deploy Admin Frontend / build-and-deploy (push) Failing after 8s
- UserTimelinePage: userId input → API query → Ant Design Timeline
- Supports array timeline + fallback JSON view for unknown formats
- Loading / empty / error states
- Route: /learning/timeline
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-15 21:34:49 +08:00
a2cb0681d9
feat: RecordPage with filter + detail drawer (ADMIN-INFO-008)
...
Deploy Admin Frontend / build-and-deploy (push) Failing after 8s
- Add userId filter input to LearningRecord list
- Add click-to-view detail Drawer with full record info
- Fix occurredAt formatting to use dayjs
- Add scroll for narrow displays
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-15 21:26:44 +08:00
ea73400857
fix: resolve TypeScript build errors in admin learning pages
...
Deploy Admin Frontend / build-and-deploy (push) Successful in 9s
- Remove 5 unused antd imports (Card, Descriptions, message, Spin, Alert)
- Add PaginatedResponse<T> interface for typed API responses
- Add explicit return types to all learningAdminAPI functions
- Remove unused isLoading from UserDiagnosePage / MaterialDiagnosePage
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-10 22:42:59 +08:00
5bfac05bec
fix: remove dead detail query in ReadingEventPage
...
Deploy Admin Frontend / build-and-deploy (push) Failing after 8s
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-09 22:01:04 +08:00
e4ab4bb02b
fix: admin audit — use actual API pattern + fix lazy imports
...
Deploy Admin Frontend / build-and-deploy (push) Failing after 5s
- Replace non-existent apiGet/apiPost with inline fetch
- Fix lazy(() => import()).then() → lazy(() => import().then())
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-09 22:00:11 +08:00
a9a7d651bb
feat: ADMIN-INFO admin learning dashboard frontend (21/21)
...
Deploy Admin Frontend / build-and-deploy (push) Failing after 8s
- Dashboard page with statistics cards
- Data pages: ReadingEvents, Sessions, Progress, DailyActivities, Records
- Diagnostic: Anomalies, User/Material Diagnose
- API service: learningAdmin.ts
- Routes: /learning/*
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-09 21:55:52 +08:00
8144bdc42f
fix: 从密钥/账单下拉框移除已到期的 MiniMax
...
Deploy Admin Frontend / build-and-deploy (push) Successful in 9s
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-06 12:23:36 +08:00
7dbfb2751d
feat: 项目中心简化为直接嵌入 Gitea iframe
...
Deploy Admin Frontend / build-and-deploy (push) Successful in 10s
- 移除仓库列表/Issues/里程碑/Release/Runner 等所有 API 数据面板
- 移除页面标题行和面包屑导航
- 侧边栏点击「项目中心」直接全屏展示 Gitea
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-06 12:11:10 +08:00
6bcda17894
fix(admin): 普通用户页面显示 C 端真实用户列表
...
Deploy Admin Frontend / build-and-deploy (push) Successful in 10s
- /users/members 路由改为使用 MemberManagement 组件
- 新增"用户列表"Tab:调用 /admin-api/users 展示所有 C 端用户
- 显示邮箱、昵称、角色、状态、最后登录、注册时间
- 保留原有会员管理和注销审核 Tab
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-27 21:17:26 +08:00
60a9438176
fix: review status filter — change 全部 value from undefined to empty string
...
Deploy Admin Frontend / build-and-deploy (push) Successful in 10s
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-24 21:03:33 +08:00
d1661c0072
feat: add queue description column to events page
...
Deploy Admin Frontend / build-and-deploy (push) Successful in 8s
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-24 21:00:32 +08:00
5edc467d19
fix: add Chinese labels for import status, type, and step fields
...
Deploy Admin Frontend / build-and-deploy (push) Successful in 9s
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-24 20:58:09 +08:00
3b936d6cb0
fix: set global Empty description to 暂无数据 in ConfigProvider
...
Deploy Admin Frontend / build-and-deploy (push) Successful in 9s
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-24 20:56:34 +08:00
b80b5e0c13
fix: TS errors — missing useState import, unused imports, Promise type issues
...
Deploy Admin Frontend / build-and-deploy (push) Successful in 8s
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-24 20:06:33 +08:00
9ed1a64929
fix: project center — repo selector dropdown, fix Gitea tab, clean UI
...
Deploy Admin Frontend / build-and-deploy (push) Failing after 8s
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-24 20:03:29 +08:00
e85ffc1bcf
perf: add staleTime to ReviewAdmin query to prevent unnecessary refetches
...
Deploy Admin Frontend / build-and-deploy (push) Failing after 7s
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-24 19:56:06 +08:00
7e5ec80456
fix: M4 audit — add DELETE decisions, PATCH user-agreements, regular user list endpoint
...
Deploy Admin Frontend / build-and-deploy (push) Failing after 8s
- ReleaseController: add DELETE decisions/:id
- ComplianceController: add PATCH user-agreements/:id
- AdminUsersMgmtController: add GET /admin-api/users (regular user listing with search)
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-24 18:44:11 +08:00
050fb554f0
feat: M4-09 — compliance admin page (policies, agreements, filings, data requests, security)
...
Deploy Admin Frontend / build-and-deploy (push) Failing after 7s
- ComplianceAdmin page with 6 tabs: privacy policies, user agreements, filings, data deletion, data export, security events
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-24 18:19:51 +08:00
adfeeaa657
feat: M4-08 — release admin page (changelogs, ADR, checklist)
...
Deploy Admin Frontend / build-and-deploy (push) Successful in 9s
- ReleaseAdmin page with 3 tabs: version logs, architecture decisions, release checklist
- CRUD modals for changelogs and decisions
- Checklist with check/uncheck toggle
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-24 18:15:42 +08:00
8b6c957a30
feat: M4-07 — Hermes agent tasks + artifacts tabs with approval buttons
...
Deploy Admin Frontend / build-and-deploy (push) Successful in 9s
- Replace iframe-only HermesSettings with 3-tab page
- Agent tasks table with approve/reject buttons
- Agent artifacts table with type labels
- Keep Hermes panel iframe tab
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-24 18:11:04 +08:00
cb83928d7a
fix: remove unused BranchesOutlined import and unused render param
...
Deploy Admin Frontend / build-and-deploy (push) Successful in 8s
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-24 18:07:39 +08:00
471669c6cf
feat: M4-06 — project center page with repos/issues/milestones/releases/runners
...
Deploy Admin Frontend / build-and-deploy (push) Failing after 6s
- Replace GiteaEmbed iframe with full ProjectCenter page
- Tabs: repos, issues, milestones, releases, runners, Gitea embed
- Rename menu 代码仓库 → 项目中心
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-24 18:06:38 +08:00
8795b4d045
fix: use correct token key for CSV download auth
...
Deploy Admin Frontend / build-and-deploy (push) Successful in 10s
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-24 18:02:57 +08:00
4b14178574
feat: M4-05 — reporting admin page with CSV download buttons
...
Deploy Admin Frontend / build-and-deploy (push) Successful in 8s
- ReportingAdmin page: download user/learning/review CSV with day range selector
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-24 18:01:38 +08:00
b36924d9b3
feat: M4-04 — backup & cleanup admin page
...
Deploy Admin Frontend / build-and-deploy (push) Successful in 11s
- Add BackupAdmin page with backup/cleanup tabs
- Trigger buttons for mysql/qdrant/files backup and soft-delete/api-metrics/task-logs cleanup
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-24 17:57:50 +08:00
8145279626
feat: M4-03 — health check status section in Servers page
...
Deploy Admin Frontend / build-and-deploy (push) Successful in 10s
- Add getServerHealth API function with types
- Add health check status tags below server cards
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-24 17:51:44 +08:00
35a3f40ef8
feat: M4-02 — LearningData admin page with sessions, analysis, AI usage tabs
...
Deploy Admin Frontend / build-and-deploy (push) Successful in 10s
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-24 17:45:53 +08:00
2118adfb66
fix: add missing userTrend/aiCallTrend fields to dashboard stats response
...
Deploy Admin Frontend / build-and-deploy (push) Successful in 7s
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-24 17:41:32 +08:00
b26bcba774
fix: update mock data to match new DashboardStats type fields
...
Deploy Admin Frontend / build-and-deploy (push) Successful in 7s
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-24 17:39:41 +08:00
eb2764518d
feat: M4-01 — add cost, import, task, expiration metric cards to dashboard
...
Deploy Admin Frontend / build-and-deploy (push) Failing after 7s
- Update DashboardStats type with new fields
- Add 4 new metric cards: today's AI cost, import tasks, failed tasks, upcoming expirations
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-24 17:36:26 +08:00
d3665e9a02
fix: pass generic type to api.get<T>() calls in admin pages
...
Deploy Admin Frontend / build-and-deploy (push) Successful in 9s
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-24 17:29:17 +08:00