a1ac07bf88
feat: M0-03 feature flag whitelist + more config integration
Deploy API Server / build-and-deploy (push) Successful in 37s
2026-05-22 23:00:47 +08:00
dee0b250b6
fix: HERMES_API_URL reference
Deploy API Server / build-and-deploy (push) Failing after 20s
2026-05-22 22:40:13 +08:00
663d419d91
fix: handle null config values
Deploy API Server / build-and-deploy (push) Failing after 1s
2026-05-22 22:40:02 +08:00
4077150295
feat: integrate dynamic config into AI chat — temperature/max_tokens/URL from DB
Deploy API Server / build-and-deploy (push) Has been cancelled
2026-05-22 22:39:52 +08:00
585cde9431
fix: Logger name typo
Deploy API Server / build-and-deploy (push) Failing after 21s
2026-05-22 22:36:49 +08:00
b7cd0b2588
fix: AppAppAppConfigService typo
Deploy API Server / build-and-deploy (push) Has been cancelled
2026-05-22 22:36:40 +08:00
8d52214dd5
feat: M0-03 Config & Feature Flag — DB-backed config + Redis cache + Admin AAPI
Deploy API Server / build-and-deploy (push) Has been cancelled
2026-05-22 22:36:32 +08:00
4c4d14724a
feat: M0-02 Admin event management AAPI — queues overview + failed + retry
Deploy API Server / build-and-deploy (push) Successful in 37s
2026-05-22 22:27:07 +08:00
25d25b44f0
fix: don't kill stream after approval — only abort on stop
Deploy API Server / build-and-deploy (push) Successful in 37s
2026-05-22 19:18:27 +08:00
e6ecb2c48f
fix: remove break after approval.request — let stream continue
Deploy API Server / build-and-deploy (push) Successful in 37s
2026-05-22 19:15:54 +08:00
2753063b6f
feat: pass through approval.request events + approval endpoint
Deploy API Server / build-and-deploy (push) Successful in 38s
2026-05-22 17:31:55 +08:00
fc2725b5df
feat: forward tool.started/completed events in SSE stream
Deploy API Server / build-and-deploy (push) Successful in 35s
2026-05-22 17:20:28 +08:00
ff56b79659
fix: knowledgeItems → items
Deploy API Server / build-and-deploy (push) Successful in 39s
2026-05-22 15:54:25 +08:00
0e85231712
feat: admin knowledge base list with Prisma
Deploy API Server / build-and-deploy (push) Failing after 17s
2026-05-22 15:54:06 +08:00
997b3c0cdb
feat: admin cost management — CRUD + monthly summary + expiry
Deploy API Server / build-and-deploy (push) Successful in 39s
2026-05-22 15:40:24 +08:00
c6aa4cf88a
feat: admin billing API — DeepSeek + SiliconFlow balances
Deploy API Server / build-and-deploy (push) Successful in 38s
2026-05-22 15:31:51 +08:00
ee6ef23fb2
revert: remove billing module — already exists elsewhere
Deploy API Server / build-and-deploy (push) Failing after 17s
2026-05-22 15:28:02 +08:00
c170f6048b
feat: admin billing API — query DeepSeek + SiliconFlow balances
Deploy API Server / build-and-deploy (push) Successful in 39s
2026-05-22 15:23:25 +08:00
97af7f4cce
fix: skip /data disk when identical to / on remote
Deploy API Server / build-and-deploy (push) Successful in 35s
2026-05-22 14:12:42 +08:00
7c712bc931
fix: add python/main.py process aliases
Deploy API Server / build-and-deploy (push) Successful in 39s
2026-05-22 14:09:15 +08:00
3079b2a18e
fix: clean rewrite remote metrics with individual SSH calls
Deploy API Server / build-and-deploy (push) Successful in 36s
2026-05-22 14:04:14 +08:00
27dfc1c028
fix: add newlines to remote SSH awk commands
Deploy API Server / build-and-deploy (push) Successful in 37s
2026-05-22 14:00:31 +08:00
fc968830c5
fix: correct ps auxww column parsing + robust remote SSH script
Deploy API Server / build-and-deploy (push) Successful in 36s
2026-05-22 13:57:26 +08:00
92173cb8c4
fix: single SSH script for remote metrics + Chinese uptime + process desc
Deploy API Server / build-and-deploy (push) Successful in 38s
2026-05-22 13:51:19 +08:00
1776bed47e
feat: friendly process names + data disk + public IPs + domains
Deploy API Server / build-and-deploy (push) Successful in 36s
2026-05-22 13:42:42 +08:00
13a7718a3c
fix: simplify remote SSH commands for reliability
Deploy API Server / build-and-deploy (push) Successful in 37s
2026-05-22 13:34:08 +08:00
ad6112f4ab
fix: use wangdl.pem for 4-core SSH
Deploy API Server / build-and-deploy (push) Successful in 38s
2026-05-22 13:31:45 +08:00
f30a446bd5
feat: server metrics API — local os + remote SSH
Deploy API Server / build-and-deploy (push) Successful in 38s
2026-05-22 13:30:44 +08:00
c31725433d
feat: runs + SSE streaming proxy from Hermes /v1/runs
Deploy API Server / build-and-deploy (push) Successful in 39s
2026-05-22 11:29:22 +08:00
aa0575b71b
fix: normalize IP by stripping ::ffff: prefix
Deploy API Server / build-and-deploy (push) Successful in 36s
2026-05-22 11:23:06 +08:00
f2d3f3f13f
feat: add AdminMessage persistence + conversation title auto-set + messages API
Deploy API Server / build-and-deploy (push) Failing after 21s
2026-05-22 11:03:24 +08:00
73e52d2201
fix: add validation decorators to conversation DTO
Deploy API Server / build-and-deploy (push) Successful in 38s
2026-05-22 10:49:27 +08:00
f20bdc0d7a
feat: add conversation management — sessionId + X-Hermes-Session-Id + CRUD
Deploy API Server / build-and-deploy (push) Successful in 37s
2026-05-22 10:43:18 +08:00
3b42a8618a
refactor: remove hardcoded system prompt — let Hermes handle natively
Deploy API Server / build-and-deploy (push) Successful in 40s
2026-05-22 10:28:41 +08:00
c2e8f92abe
refactor: remove DeepSeek fallback — Hermes only; fail fast on error
Deploy API Server / build-and-deploy (push) Successful in 39s
2026-05-22 10:10:11 +08:00
WangDL
34774e5325
fix: type cast messages for DeepSeekProvider compatibility
Deploy API Server / build-and-deploy (push) Successful in 12s
2026-05-22 00:28:12 +08:00
WangDL
a550ce2e67
feat: route admin chat through Hermes Agent API (DeepSeek fallback)
Deploy API Server / build-and-deploy (push) Successful in 11s
2026-05-22 00:20:34 +08:00
WangDL
2b0bc92ebb
feat: add hermes dashboard config endpoint to admin-ai-chat
Deploy API Server / build-and-deploy (push) Successful in 12s
2026-05-22 00:02:14 +08:00
WangDL
f2d1c16299
fix: correct AdminRole import path in admin-ai-chat controller
Deploy API Server / build-and-deploy (push) Successful in 9s
2026-05-21 23:58:56 +08:00
WangDL
017d78a8d6
fix: add admin-ai-chat module + fix AdminUsersModule PasswordService dependency
Deploy API Server / build-and-deploy (push) Successful in 11s
2026-05-21 23:57:59 +08:00
b8a1fb0921
feat: add admin backend modules — dashboard, audit-log, admin-users
...
Deploy API Server / build-and-deploy (push) Successful in 10s
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-21 17:22:48 +08:00
5a7c21dd60
feat: implement complete admin authentication system
...
Deploy API Server / build-and-deploy (push) Successful in 9s
- Add AdminRole enum (SUPER_ADMIN/ADMIN/OPERATIONS/DEVELOPER/READONLY) with hierarchy
- Add PasswordService (bcryptjs, 12 rounds), AdminTokenService (type=admin JWT)
- Add AdminAuthService: login/lockout/refresh/logout with audit logging
- Add AdminAuthController: /admin-api/auth/{login,refresh,logout,me}
- Add AdminAuthGuard: validates type=admin, user status, session, lockout
- Add AdminRolesGuard + @AdminRoles() decorator for RBAC
- Add AdminAuditService for audit log persistence
- Add AdminLoginRateLimit (10 req/15min per IP)
- Add prisma/seed.ts for SUPER_ADMIN initialization via env vars
- Update JwtAuthGuard to skip /admin-api/* and /internal/* paths
- Update main.ts to exclude admin-api/internal from global 'api' prefix
- Update jwt.config.ts with admin JWT secrets and expiry config
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-21 15:05:31 +08:00
WangDL
7e1f5c0e9b
fix: 内部 RAG API 标记 @Public 绕过 JWT 认证
Deploy API Server / build-and-deploy (push) Successful in 56s
2026-05-19 22:39:05 +08:00
WangDL
a0fafd0452
fix: TypeScript null check for RAG internal controller
Deploy API Server / build-and-deploy (push) Successful in 55s
2026-05-19 22:36:18 +08:00
WangDL
fbdae9078f
feat: Python RAG Worker + NestJS 内部 API(文档解析/切片/embedding/Qdrant/候选生成)
Deploy API Server / build-and-deploy (push) Failing after 22s
2026-05-19 22:35:12 +08:00
WangDL
c149b96b04
fix: 完善 DocumentImport 仓库,支持新字段
Deploy API Server / build-and-deploy (push) Successful in 55s
2026-05-19 22:21:47 +08:00
WangDL
9c161db26b
feat: KnowledgeSource 和 ImportCandidate 模块
Deploy API Server / build-and-deploy (push) Failing after 22s
2026-05-19 22:20:29 +08:00
82fcaa1f2f
fix: replace RateLimitService with global RateLimitGuard
...
Deploy API Server / build-and-deploy (push) Successful in 59s
RateLimitService could not be injected into feature modules due to
NestJS DI module isolation. Replaced with a global Guard that uses
@RateLimit() decorator metadata to apply per-endpoint limits.
- RateLimitGuard: checks Redis counters, throws 429 on exceed
- Decorators: LoginRateLimit, FeedbackRateLimit, AiAnalysisRateLimit,
FileUploadRateLimit
- Applied to: auth (login), feedback, ai-analysis, files endpoints
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-18 10:23:19 +08:00
b1a6160d29
feat: implement P1 async — AI analysis + document import via BullMQ workers
...
Deploy API Server / build-and-deploy (push) Successful in 59s
B12: AI analysis now async — POST /ai-analysis queues job, returns immediately.
Worker supports both active-recall and feynman-evaluation types.
B13: DocumentImportWorker fully implemented — all processing moved from
service to worker. Service only queues and returns.
B14: NotificationWorker already complete (no changes needed).
B15: All 3 workers now fully functional.
New endpoint: GET /ai-analysis/jobs/:id for job status polling.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-18 10:17:06 +08:00
597c7b2310
feat: implement P1 AI workflows (B7-B10)
...
Deploy API Server / build-and-deploy (push) Successful in 59s
B7 Feynman evaluation: POST /ai-analysis/feynman
B8 Knowledge import: replaces DocumentImport setTimeout mock with AI
B9 Review card generation: POST /reviews/generate-cards
B10 Learning trend analysis: GET /activity/trend
4 workflows, 4 prompts, 4 schemas, all registered in AiModule.
AiAnalysisRepository made generic to handle varied result shapes.
DocumentImportService now calls KnowledgeImportWorkflow + saves to DB.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-18 10:07:57 +08:00