MythEclipse
92d73fe12d
chore(services): update components based on recent changes
...
Changes:
.env.example | 5 +++++
services/discord-gateway/src/modules/voice-recording/recorder.ts | 2 +-
2 files changed, 6 insertions(+), 1 deletion(-)
2026-06-14 00:57:08 +07:00
MythEclipse
b0422777ec
chore(services): update components based on recent changes
...
Changes:
services/backend/src/ws/server.ts | 88 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------
1 file changed, 72 insertions(+), 16 deletions(-)
2026-06-14 00:52:04 +07:00
MythEclipse
7789aca620
chore(services): update components based on recent changes
...
Changes:
services/discord-gateway/src/app/shutdown.ts | 8 ++++++++
1 file changed, 8 insertions(+)
2026-06-14 00:45:59 +07:00
MythEclipse
ac661b64f4
chore(services): update components based on recent changes
...
Changes:
services/discord-gateway/src/app/bootstrap.ts | 24 ++++++++++++++++++++++++
services/discord-gateway/src/modules/voice-recording/recorder.ts | 10 ++++++++++
services/discord-gateway/src/modules/voice-recording/recorder/speakingHandler.ts | 9 ++++++++-
3 files changed, 42 insertions(+), 1 deletion(-)
2026-06-14 00:45:31 +07:00
MythEclipse
c886dfb184
chore(services): update components based on recent changes
...
Changes:
services/discord-gateway/src/modules/voice-pcm-ws/index.ts | 1 +
services/discord-gateway/src/modules/voice-pcm-ws/voicePcmWsClient.ts | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 152 insertions(+)
2026-06-14 00:43:50 +07:00
MythEclipse
5d1d53a305
chore(packages): update components based on recent changes
...
Changes:
packages/shared/src/config/index.ts | 8 ++++++++
1 file changed, 8 insertions(+)
2026-06-14 00:43:12 +07:00
MythEclipse
f22201381f
a
2026-06-13 23:58:29 +07:00
MythEclipse
9a896c7993
chore(services): update components based on recent changes
...
Changes:
services/frontend/src/widgets/Sidebar.tsx | 51 +++++++++++++++++++++++++-------------------------
1 file changed, 25 insertions(+), 26 deletions(-)
2026-06-13 19:47:06 +07:00
MythEclipse
23b45690ca
chore(services): update components based on recent changes
...
Changes:
services/backend/src/http/app.ts | 22 ++++++++--------
services/frontend/src/App.tsx | 81 ++++++++++++++++++++++++-----------------------------------
2 files changed, 43 insertions(+), 60 deletions(-)
2026-06-13 19:46:56 +07:00
MythEclipse
82c1658bab
chore(services): update components based on recent changes
...
Changes:
services/frontend/src/features/messages/index.tsx | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
2026-06-13 19:43:32 +07:00
MythEclipse
28baeda5ad
chore(services): update components based on recent changes
...
Changes:
packages/shared/src/config/index.ts | 7 +++
packages/shared/src/moderation-types.ts | 1 +
services/backend/src/modules/recordings/recordings.service.ts | 3 +-
services/discord-gateway/drizzle/migrations/0011_add_voice_transcription.sql | 1 +
services/discord-gateway/src/modules/voice-recording/recorder/segment.ts | 10 ++++
services/discord-gateway/src/modules/voice-recording/recorder/uploader.ts | 15 ++++++
services/discord-gateway/src/modules/voice-recording/voiceTranscriber.ts | 51 ++++++++++++++++++
services/discord-gateway/src/shared/database/schema.ts | 1 +
services/discord-gateway/src/shared/database/voiceRecordingRepo.ts | 17 ++++++
services/frontend/src/features/live/components/RecordingsSubPanel.tsx | 108 +++++++++++++++++++-------------------
2026-06-13 17:08:54 +07:00
MythEclipse
9bde518b71
chore(services): update components based on recent changes
...
Changes:
services/backend/src/ws/redis-bridge.ts | 31 ++++++++++++++++++++-
services/backend/src/ws/server.ts | 36 +++++++++++++++++++++++-
services/frontend/src/App.tsx | 12 ++++----
services/frontend/src/shared/hooks/useAudioPlayback.ts | 91 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
services/frontend/src/shared/hooks/useAudioTransmit.ts | 21 +++++---------
5 files changed, 169 insertions(+), 22 deletions(-)
2026-06-13 17:00:02 +07:00
MythEclipse
1d06de5ce5
chore(services): update components based on recent changes
...
Changes:
services/frontend/src/features/live/components/RecordingsSubPanel.tsx | 45 ++------
services/frontend/src/features/live/components/WaveformPlayer.tsx | 253 +++++++++++++++++++++++++++++++++++++++++++++
services/frontend/src/features/live/components/index.ts | 1 +
3 files changed, 261 insertions(+), 38 deletions(-)
2026-06-13 16:56:17 +07:00
MythEclipse
5c8fa3d254
chore(services): update components based on recent changes
...
Changes:
services/frontend/src/App.tsx | 22 ++++++++++++++++++++++
services/frontend/src/features/live/components/VoiceConnectionCard.tsx | 5 ++++-
2 files changed, 26 insertions(+), 1 deletion(-)
2026-06-13 16:54:52 +07:00
MythEclipse
5459b13b03
chore(services): update components based on recent changes
...
Changes:
services/frontend/src/App.tsx | 37 +++++++++++++++++++++++++++++++------
1 file changed, 31 insertions(+), 6 deletions(-)
2026-06-13 16:54:29 +07:00
MythEclipse
e76a874f11
chore(services): update components based on recent changes
...
Changes:
services/frontend/src/shared/api/client.ts | 8 ++++++++
1 file changed, 8 insertions(+)
2026-06-13 16:53:30 +07:00
MythEclipse
d0d2c316cf
chore(auto): task completed - unknown
2026-06-13 15:11:06 +07:00
MythEclipse
265251233a
chore(auto): task completed - unknown
2026-06-13 15:03:21 +07:00
MythEclipse
9e9ce463cb
chore(auto): task completed - unknown
2026-06-13 14:59:00 +07:00
MythEclipse
fce24278f0
chore(auto): task completed - unknown
2026-06-13 14:49:47 +07:00
MythEclipse and Claude
3965ea79bc
fix(gateway): voice speaking handler, metadata cache, transmitter backpressure
...
- speakingHandler: check subscriptions.has() BEFORE voiceActiveUser broadcast
- segment.ts: add LRU metadata cache (200 entries, avoids Discord API in hotpath)
- transmitter.ts: add backpressure handling with drain queue/flush
(PassThrough.write() return value was ignored — potential OOM under load)
- cleanup backpressure queue on transmitter stop
Co-Authored-By: Claude <noreply@anthropic.com >
2026-06-13 14:38:06 +07:00
MythEclipse and Claude
29d4cb87b6
fix(gateway): voice module critical bugs
...
- shutdown ordering: DB pool closed AFTER voice disconnect (was before)
- muxer: amix (mix) -> concat (sequential) filter for OGG segments
- upload retries: 0->3 with proper backoff 1-10s
- teleUpload retry backoff: minTimeout 0->1000, maxTimeout 0->10000
- mediaSource: 64KB buffer bound on readFirstTwoLines, 1MB on extractMediaInfo
- ffmpegProcess: pipe stderr to structured logger instead of inherit
Co-Authored-By: Claude <noreply@anthropic.com >
2026-06-13 14:35:35 +07:00
MythEclipse
e6e34281ff
chore(auto): task completed - unknown
2026-06-13 14:24:09 +07:00
MythEclipse
1a195b737e
chore(auto): task completed - unknown
2026-06-13 14:12:09 +07:00
MythEclipse
6822cb0bd3
chore(auto): task completed - unknown
2026-06-13 14:10:34 +07:00
MythEclipse
277d982c51
chore(auto): task completed - unknown
2026-06-13 14:05:17 +07:00
MythEclipse and Claude
14c0081f01
feat(discord-gateway): implement voice & push improvements
...
- Voice disconnect broadcast on stopRecording
- Multi-guild voice support (VoiceController Map<guildId>)
- Session finalization + auto-enqueue muxer job
- Recordings API: duration field, channelId/userId filters
- Transmitter Redis connection reuse (shared conn)
- FFmpeg stderr memory cap (4KB limit)
- 10 new Redis event channels + Redis bridge subscriptions
- New DB tables: message_reactions, message_edits
- Webhook notification module
- Gateway metrics / Prometheus endpoint
- Multi-guild message capture (MONITOR_GUILD_IDS array)
- Thread tracking, presence, channel topic, guild member events
- Edit history snapshot on message update
- Muxer audio post-processing worker
Co-Authored-By: Claude <noreply@anthropic.com >
2026-06-13 13:51:21 +07:00
MythEclipse
fd3b5c5ca5
chore(auto): task completed - unknown
2026-06-13 13:39:02 +07:00
MythEclipse
111ba0a139
chore(auto): task completed - unknown
2026-06-13 13:36:13 +07:00
MythEclipse
942c33db7e
chore(auto): task completed - unknown
2026-06-13 13:35:56 +07:00
MythEclipse
eab8505889
chore(auto): task completed - unknown
2026-06-13 13:35:41 +07:00
MythEclipse
2e14b5e4ed
chore(auto): task completed - unknown
2026-06-13 13:35:11 +07:00
MythEclipse
d569ffa2db
chore(auto): task completed - unknown
2026-06-13 13:12:49 +07:00
MythEclipse
4097b23dc3
chore(auto): task completed - unknown
2026-06-13 13:12:41 +07:00
MythEclipse
e413cf9fca
chore(auto): task completed - unknown
2026-06-13 13:12:29 +07:00
MythEclipse
ff006980f8
chore(auto): task completed - unknown
2026-06-13 13:12:01 +07:00
MythEclipse
140a0ba46a
chore(auto): task completed - unknown
2026-06-13 13:11:49 +07:00
MythEclipse and Claude
4fcab6b003
refactor(frontend): reorder sidebar — messages first, voice below
...
Default tab is now 'messages'; Voice & Media moved below
Messages in both desktop sidebar and mobile tab bar.
Updated Header titles/subtitles to match new order.
Co-Authored-By: Claude <noreply@anthropic.com >
2026-06-13 12:50:13 +07:00
MythEclipse
615c23f061
chore(auto): task completed - unknown
2026-06-13 12:24:32 +07:00
MythEclipse
dcede1d676
chore(auto): task completed - unknown
2026-06-13 12:11:37 +07:00
MythEclipse
5b04a4637c
docs(frontend): add design tokens documentation
2026-06-13 11:54:20 +07:00
MythEclipse
1406ce3585
chore(auto): task completed - unknown
2026-06-13 11:46:15 +07:00
MythEclipse and Claude
30f8d7cce3
feat: replace corrections/tuner with dashboard module
...
Replace the corrections/adaptive-prompt-tuner feature with a new
dashboard module providing server stats and user profile overview.
Backend:
- Add dashboard module (routes, service, repository) with stats + user list + user detail endpoints
- Remove corrections module entirely
- Wire dashboard router in app.ts
Frontend:
- Add dashboard feature (DashboardStats, UserSummaryList, UserProfileDetail components + useDashboard hook)
- Remove tuner feature (CorrectionStats, CorrectionHistory, SubmitCorrection, useCorrections)
- Update API client from corrections → dashboard types/fns
- Rename tab 'tuner' → 'dashboard'
- Update MobileTabBar, Header, Sidebar links
Tests:
- Expand backend placeholder test with dashboard assertions
- Expand discord-gateway placeholder test with config/channel assertions
AI moderation:
- llmModerationClient: improve status/reply detection, expand safety categories, fix timer reset
- userProfileLearner: fix isReply refinement
- userProfileStore: add pending cache check
- messageMetadata: add crosspost type mapping
- migrate.ts: improve partial-index safety in schema push
Co-Authored-By: Claude <noreply@anthropic.com >
2026-06-13 11:24:42 +07:00
MythEclipse and Claude
e3249edb6c
feat: detect reply/forward/crosspost in message capture + inject into AI moderation
...
- Add is_reply, is_forward, is_crosspost, reference_message_id,
reference_channel_id, reference_guild_id columns to messages table
- Update MessageRecord type with reference fields
- Extract reply/forward/crosspost from Discord message type/flags
- Track reference.type (DEFAULT=reply, FORWARD) and CROSSPOSTED flag
- Inject <reference> XML with parent content into LLM moderation prompt
- Add reply/forward/crosspost rules to moderation prompt rules
- Format context messages with [reply_to], [forward_from], [crosspost]
- Add migration 0009
Co-Authored-By: Claude <noreply@anthropic.com >
2026-06-13 00:55:42 +07:00
MythEclipse and Claude
0ac056dc8a
fix(ai-moderation): audit prompts to reduce false positives
...
- ENTROPY rule: replace 'PILIH WARN' default with 'PILIH CLEAN'
- Add safe-list for code/log/stack traces/project names
- Narrow sexual_deviation: only flag explicit sexual solicitation
- Remove overbroad ontological graph (kostum hewan → furry) detection
- Add clean few-shot examples: error logs, project names, orientation disclosure
- Update simple fallback prompt with FP prevention rules
- Remove LGBT/furry from offensive username criteria
Co-Authored-By: Claude <noreply@anthropic.com >
2026-06-13 00:01:09 +07:00
MythEclipse and Claude
12f9b55000
fix(ai-moderation): implement prompt analysis recommendations
...
- Expand IMPHNEN domain rule to cover wildcard (*.imphnen.*)
- Trim redundant SARA examples from TEXT_ONLY_MODE (save ~950 tokens)
- Add debugging logs for channel culture injection into prompt
- Sync flag validation set with missing flags: potential_evasion, unclear_context
Co-Authored-By: Claude <noreply@anthropic.com >
2026-06-12 23:40:25 +07:00
MythEclipse and Claude
b508a39ff7
fix(ai-moderation): prevent false positive SARA flag for IMPHNEN project name
...
- Add explicit system rule that IMPHNEN is the project's own name, not religion
- Rename 'Imphnemia 11:17' example to 'Kitabonia 11:17' to avoid name collision
- Ensures mentioning/promoting the project URL is not flagged as SARA
Co-Authored-By: Claude <noreply@anthropic.com >
2026-06-12 23:28:09 +07:00
MythEclipse and Claude
5c00c9f60b
feat(ui): overhaul frontend with IMPHNEN visual identity
...
- Update CSS foundation: HSL→oklch color tokens, Poppins font, new utilities
- Replace Three.js sakura particles with CSS glow orbs
- Rebrand Header with IMPHNEN logo and gradient text
- Update all UI components (Button, Card, Badge, Input, Select, Tabs, Toast)
- Apply IMPHNEN design patterns (glass, gradient, grid) to layout
- Remove all hardcoded #7EC8E3/#FFB7C5/#FCA5A5 references
- Standardize rounded-xl across all components
- Replace emoji toasts with Lucide icons
Co-Authored-By: Claude <noreply@anthropic.com >
2026-06-12 23:00:52 +07:00
MythEclipse and Claude
7f3eb7b9ac
feat(ui): add Adaptive Prompt Tuner tab with correction submission UI
...
- Add pgCorrectedModerationsTable to shared schema
- Create backend corrections module (stats, list, create endpoints)
- Add TunerPanel with Stats, History, and Submit sub-tabs
- Add AuthOverlay gate for Tuner (admin-only, same as Live)
- Set messages as default tab
- Wire Tuner into sidebar, header, and mobile tab bar
Co-Authored-By: Claude <noreply@anthropic.com >
2026-06-12 21:28:05 +07:00
MythEclipse and Claude
fbc2184c6e
feat(ai-moderation): add user profile self-learning system
...
Add user_profiles table, store, and background learner worker
that summarizes user communication style, topics, and personality.
- New user_profiles table (user_id PK, guild_id, profile_summary, last_analyzed_at)
- userProfileStore.ts — CRUD (get/update) following channelCultureStore pattern
- userProfileLearner.ts — background worker: queries 100 recent msgs per user,
calls LLM for personality summary, updates every 12h
- Inject <user_profile> XML tag per-message in moderation prompt
- Start worker alongside cultureLearner in aiAnalyzer.ts
- Migration 0008 for user_profiles table
Co-Authored-By: Claude <noreply@anthropic.com >
2026-06-12 20:11:34 +07:00