asepharyana
d59b59a7a7
feat: migrate frontend to Astro + expand AI moderation + backend admin/runtime config
...
Frontend:
- migrate from Vite to Astro (astro.config.mjs, pages/, layouts/)
- add admin panel, settings page, command palette, error boundary
- refactor App.tsx, MascotChatbot, Sidebar, Header, DashboardLayout
- update API client, WebSocket, auth, dashboard features
Backend:
- add admin module and config routes
- refactor middlewares, Redis connection, WebSocket server/bridge
- add runtime config loader
Discord Gateway:
- refactor AI moderation: circuit breaker, concurrency limiter, fallback processor
- add media analysis client, Seaxng search, user profile learner
- add new drizzle migration
Shared:
- extend database schema, add new config fields
2026-07-02 00:02:41 +07:00
MythEclipse
ed4a506ca7
refactor: split llmModerationClient.ts + add tests + metrics
...
## Split llmModerationClient.ts (2103 → 3 files)
- **moderationBuilders.ts** (67 lines) — shared: escapeXml, getAnalysisContent, buildReferenceXml
- **mediaAnalysisClient.ts** (656 lines) — vision analysis with multi-layer LRU/DB/phash caching, image/video download, ffmpeg frame extraction, prepareMediaMessage
- **moderationOrchestrator.ts** (998 lines) — callModerationLLM, runTextOnlyBatch, runMediaBatch, runModerationAnalysis, runSimpleTextFallback
- **llmModerationClient.ts** (30 lines) — re-export bridge (backward compat)
No import changes needed — aiAnalysisWorker.ts still imports from llmModerationClient.js.
## Unit tests (backend)
- vitest.config.ts + e2e.test.ts with 9 tests against production:
- health, metrics, dashboard/stats, recordings, config, auth, guilds, negative (404/400)
## Monitoring metrics
- moderationMetrics.ts in backend health module:
- LLM call count/duration/tokens
- Cache hit/miss per layer
- Media analysis count/download duration
- Batch size distribution, errors, SearXNG, auto-delete
2026-06-22 20:38:34 +07:00