MythEclipse and Claude Opus 4.8
13a75a5101
fix(voice): restore voice features and apply critical optimizations
...
Voice Feature Restoration:
- Implemented full Redis pub/sub pipeline for real-time voice data
- Added VOICE_PCM and VOICE_ACTIVE_USER Redis channels
- Implemented EventBroadcaster.voicePcmData() and voiceActiveUser() methods
- Extended backend redis-bridge to subscribe to voice channels
- Updated backend WebSocket server for binary PCM broadcast
- Replaced globalThis PcmBroadcaster pattern with proper EventBroadcaster DI
- Fixed root cause: PcmBroadcaster functions were never initialized
Bug Fixes:
- Fixed prism-media version conflict (2.0.0-alpha.0 → 1.3.5)
- Fixed type inconsistency in commandHandler.ts (AudioPlayerStatus → string)
Critical Optimizations:
- P1.1: Fixed unbounded memory growth in aiAnalyzer (added LRU caching, max 10K entries)
- P1.2: Converted sync file I/O to async in audio hot paths (recorder, sessionRecording)
- P1.3: Replaced process.exit(1) with proper error handling (bootstrap, aiAnalysisWorker)
Code Quality:
- Removed unused logger field in EventBroadcaster
- Replaced console.* with structured logger.* calls (player, decoder)
- Fixed typos and removed commented debug code
- Added DatabaseError class for better error handling
Files Modified: 18 (discord-gateway: 14, backend: 3, root: 1)
Architecture: Discord → EventBroadcaster → Redis → Backend WebSocket → Frontend
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-08 19:14:34 +07:00
MythEclipse
2643a3c278
refactor(discord-gateway): optimize redis usage and audio stream handling
...
- refactor(command-handler): replace per-call Redis connection creation with a persistent publisher connection to reduce overhead
- refactor(recorder): switch from manual audio stream subscription to direct event listeners on the existing stream
- feat(recorder): implement exponential backoff for voice connection retries
- chore(config): update default DECODER_COOLDOWN_MS to 30000ms
2026-06-08 18:09:17 +07:00
MythEclipse
25c86dcc30
fix(ai-moderation): raise retry backoffs and cooldowns, make 429 retryable, reduce prompt false positives
2026-06-05 21:47:02 +07:00
MythEclipse
ce8a42f5fd
feat(ai-moderation): eliminate LLM-based badword detection in favor of pure rule-based matching
2026-06-04 17:33:08 +07:00
MythEclipse
5d9713b162
chore(config): update TELE_UPLOAD_URL domain across all services
2026-06-04 17:12:02 +07:00
MythEclipse
f163ead3cf
feat(discord-gateway): add local badword pre-filter, accurate token estimation, Piscina maxThreads config, and PromptMode support
2026-06-02 22:50:23 +07:00
MythEclipse
1e1fbb4583
fix(discord-gateway): require LLM API key only when AI analysis is enabled
2026-06-02 21:46:15 +07:00
MythEclipse
498ab73d62
chore: auto-commit task -
2026-06-02 17:08:42 +07:00
MythEclipse
406a6cbf79
refactor: migrate sticker cache to PostgreSQL, remove versioning
...
- Replace file-based sticker cache (.dat + index.json) with PostgreSQL sticker_cache table
- Remove model_version column and all versioning logic (git branch detection, GitHub API, CACHE_MODEL_VERSION)
- Strip VISION_MODEL_VERSION, logCacheEvent calls, and version filtering from SQL queries
- Remove STICKER_CACHE_DIR and STICKER_CACHE_MAX_SIZE_MB config variables
- Delete dead migration add_model_version_to_cache.sql
textCacheStore.ts reduced 482→204 lines (-57%)
stickerCache.ts reduced 210→144 lines (-31%)
Total: 11 files changed, 233 insertions, 591 deletions
2026-06-02 14:05:51 +07:00
MythEclipse and Claude Opus 4.8
64643bb066
perf: hapus semua cooldown/backoff delay — retry tanpa bottleneck
...
Semua retry sekarang instant (retries=0, minTimeout=0, maxTimeout=0):
- retry.ts (kedua) — default minTimeout/maxTimeout 0, factor 1
- config.ts (kedua) — DECODER_COOLDOWN_MS=0, AI_ANALYSIS_ERROR_COOLDOWN_MS=0
- llmModerationClient.ts (kedua) — retries 0 tanpa delay
- aiAnalyzer.ts (kedua) — retries 0, AI_ANALYSIS_ERROR_COOLDOWN jadi 0
- indonesianTextNormalizer.ts (kedua) — semua rate limit cooldown 0
- recorder.ts (kedua), teleUpload (3 files), uploader (2 files) — retry instant
- attachmentUploader (kedua) — retries 0
- syncRoutes.ts — BACKLOG_SYNC_COOLDOWN 0
20 files changed. Semua cooldown bottleneck dihapus.
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-02 11:29:52 +07:00
MythEclipse and Claude Opus 4.8
c48a0c5e3b
refactor: split monolith into 3 microservices (frontend, backend, discord-gateway)
...
- Extract services into services/{frontend,backend,discord-gateway}
- Create packages/shared/ for shared logger, errors, utils, types
- Setup Modular MVC pattern in backend (controller→service→repository)
- Setup event-driven architecture in discord-gateway with Redis pub/sub
- Move Docker files to infra/docker/ with per-service Dockerfiles
- Update docker-compose.yml to use Traefik-only routing (no port exposes)
- Update GitHub Actions deploy workflow for multi-service matrix build
- Fix all import paths and resolve type errors across all services
- All 3 services pass tsc --noEmit clean
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-01 21:44:29 +07:00