Commit Graph
100 Commits
Author SHA1 Message Date
MythEclipse 834b19b1ae feat(moderation): enhance JSON extraction and validation in moderation analysis 2026-05-21 04:23:01 +07:00
MythEclipse f851ea0fa9 fix(moderation): improve error handling for malformed JSON responses and ensure proper response headers 2026-05-21 04:00:36 +07:00
MythEclipse 8884e29ce7 feat(recordings): add RecordingsPanel component for displaying voice recordings 2026-05-21 03:56:44 +07:00
MythEclipse 5588ece6c7 feat(moderation): normalize JSON response handling and enhance test coverage for moderation analysis 2026-05-21 03:52:51 +07:00
MythEclipse 419018ab0c fix(vendor): update discord-video-stream subproject commit reference 2026-05-21 03:28:08 +07:00
MythEclipse c1c3c99686 feat(moderation): improve message analysis scheduling and update moderation prompt structure 2026-05-21 02:56:41 +07:00
MythEclipse 7eb01606b7 feat(moderation): enhance attachment handling and AI analysis integration 2026-05-21 02:39:28 +07:00
MythEclipse 3d64228d6a feat(config): add AI analysis tuning parameters and update related logic 2026-05-21 01:55:50 +07:00
MythEclipse 5fb7b2ce24 docs: add CodeGraph usage guidelines to CLAUDE.md 2026-05-21 00:52:28 +07:00
MythEclipse d0259ddae0 fix(vendor): update discord-video-stream subproject commit reference 2026-05-21 00:45:50 +07:00
MythEclipse c349736b89 refactor(messageStore): simplify message query conditions and pagination logic
chore(package): remove unused pnpm configuration
2026-05-21 00:45:35 +07:00
MythEclipse 480bcff5e2 feat(logging): add error serialization and log metadata formatting
- Introduced `loggerSerialization.ts` to handle error serialization and log metadata formatting.
- Added `serializeError` function to convert Error objects into a structured format.
- Implemented `serializeLogValue` to handle various data types including Errors, Dates, RegExps, and plain objects.
- Created `formatLogMetadata` to format log metadata using the serialization functions.

feat(pagination): implement cursor encoding and decoding

- Added `pagination.ts` to manage cursor-based pagination.
- Implemented `encodeCursor` to convert cursor data into a base64 string.
- Developed `decodeCursor` to parse base64 strings back into cursor data, with error handling for invalid inputs.
2026-05-21 00:34:30 +07:00
MythEclipseandClaude Opus 4.7 31e8de3185 fix: add missing discord-video-stream package.json to Docker build context
The Dockerfile was only copying discord.js-selfbot-v13/package.json but not
discord-video-stream/package.json before running pnpm install. This caused
pnpm to fail with ERR_PNPM_WORKSPACE_PKG_NOT_FOUND since @dank074/discord-video-stream
is declared as a workspace dependency but its package.json wasn't available.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-19 17:49:14 +07:00
MythEclipse 12424e5391 chore: update pnpm workspace configuration and vendor subproject
- Added allowBuilds for specific packages in pnpm-workspace.yaml
- Excluded certain minimum release ages for packages
- Updated onlyBuiltDependencies list
- Marked discord.js-selfbot-v13 subproject as dirty
2026-05-19 16:48:06 +07:00
MythEclipse 2821b4cfae fix: allow pnpm install to proceed without frozen lockfile in Dockerfile 2026-05-19 16:36:13 +07:00
MythEclipse 80957d1eb3 fix: update Docker image tag to use commit SHA for versioning 2026-05-19 16:34:23 +07:00
MythEclipse 4687443fd4 fix: remove unused GITHUB_TOKEN and REPO_URL from deployment workflow 2026-05-19 16:31:28 +07:00
MythEclipse 0fe61e0634 fix: update permissions in deploy workflow and correct GITHUB_TOKEN reference 2026-05-19 16:15:50 +07:00
MythEclipse b51210f9b0 a 2026-05-19 16:07:50 +07:00
MythEclipse a12abaccd6 refactor: configure git safe directory for deployment 2026-05-19 16:01:14 +07:00
MythEclipse b9d75ce9a0 refactor: update deployment process to use git clone for VPS 2026-05-19 15:52:47 +07:00
MythEclipse e8e0697a84 chore: clean dependencies and format restructure 2026-05-19 15:12:09 +07:00
MythEclipse dcbe204795 refactor: extract application bootstrap 2026-05-19 15:08:02 +07:00
MythEclipse f7c8257ef1 refactor: move webserver orchestration 2026-05-19 14:58:09 +07:00
MythEclipseandClaude Opus 4.7 d98bf1a5fe refactor: extract http app setup
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-19 14:52:52 +07:00
MythEclipse 109a6825bc refactor: extract websocket server 2026-05-19 14:45:39 +07:00
MythEclipse d52803ae20 refactor: extract browser audio bridge 2026-05-19 14:34:24 +07:00
MythEclipse c3f7291543 refactor: isolate websocket globals 2026-05-19 14:26:06 +07:00
MythEclipse 3639028f6f refactor: extract media settings state 2026-05-19 14:16:00 +07:00
MythEclipse a1b85d8ac3 refactor: extract persisted ui state 2026-05-19 14:11:09 +07:00
MythEclipse f48f62893d refactor: extract pcm audio helpers 2026-05-19 13:56:36 +07:00
MythEclipse 7f5db953fa chore: update dependencies and improve code formatting
- Added `vendor/discord-video-stream` to pnpm workspace.
- Refactored `llmModerationClient.ts` for better readability and consistency.
- Adjusted imports in `recordingsRoutes.ts` for clarity.
- Updated `webserver.ts` to correctly import `createRecordingsRoutes`.
- Enhanced test cases in `llmModerationClient.test.ts` for improved readability.
- Updated submodule references for `better-sqlite3`, `discord-video-stream`, `discord.js-selfbot-v13`, `drizzle-orm`, and `node-datachannel`.
- Created documentation for deprecated dependency removal plan and design.
2026-05-19 02:49:55 +07:00
MythEclipse e85967ae51 style: format winston logger changes 2026-05-19 02:48:37 +07:00
MythEclipse f0b4f2cd56 chore: ignore runtime log files 2026-05-19 02:44:42 +07:00
MythEclipse f8ba4b41e9 fix: preserve structured logger metadata 2026-05-19 02:43:52 +07:00
MythEclipse 1aa8c6a370 refactor: normalize logger call sites for winston 2026-05-19 02:39:18 +07:00
MythEclipseandClaude Opus 4.7 2ab097a0c3 chore: switch logging dependency to winston
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-19 02:20:03 +07:00
MythEclipse 0e08d29df3 test: cover logger metadata serialization 2026-05-19 02:16:50 +07:00
MythEclipseandClaude Opus 4.7 97648604d7 docs: add Winston logging refactor design spec
Design for migrating from Pino to Winston with hybrid console/file logging,
npm-standard log levels, and dependency cleanup.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-19 02:06:45 +07:00
MythEclipse 4c80b4f30b feat: add discord-video-stream submodule for enhanced video streaming capabilities 2026-05-19 01:00:18 +07:00
MythEclipse 520da01be7 fix: handle message_id with extra wrapping quotes and request strict JSON output without reasoning 2026-05-19 00:24:13 +07:00
MythEclipse a338d6b7e2 fix: update image URLs to use httpbin.org for testing and add new test cases for attachment analysis 2026-05-19 00:07:31 +07:00
MythEclipse 0ffb0f213a refactor: remove unused updateMessageAIAnalysis import from aiAnalyzer 2026-05-18 23:51:31 +07:00
MythEclipse 069cf105f3 fix: enhance error logging with additional context in analysis and moderation processes 2026-05-18 23:48:02 +07:00
MythEclipse 6339d741a9 refactor: streamline error handling and attachment processing in message capture 2026-05-18 23:46:51 +07:00
MythEclipse b2cd9f672c feat: add 'recordings' title to dashboard tab titles 2026-05-18 21:40:52 +07:00
MythEclipse 3b9e87ee6c feat: add voice recordings feature with database integration
- Implemented PostgreSQL and SQLite schemas for voice recordings.
- Created repository functions for inserting, updating, and listing voice recordings.
- Developed uploader logic to handle file uploads and database updates.
- Added routes for accessing voice recordings via API.
- Enhanced UI state to include recordings tab.
- Introduced moderation WebSocket event for uploaded recordings.
2026-05-18 20:15:38 +07:00
MythEclipse 9d5559a45b fix: wrap parsed moderation response in results object for LLM variations 2026-05-18 07:12:41 +07:00
MythEclipse 5411f8ea3d fix: enhance message ID handling and error resilience in moderation response parsing 2026-05-18 07:07:27 +07:00
MythEclipse f3c915eacd feat: add searchMessages function and corresponding API endpoint for message queries 2026-05-18 06:39:12 +07:00
MythEclipse 69ba7b497f fix: increase max active requests and adjust debounce timing for conversation analysis 2026-05-18 06:04:30 +07:00
MythEclipse a037d17f53 fix: remove connect timeout from ffmpeg arguments in music player and tests 2026-05-18 05:50:38 +07:00
MythEclipse 04ba772e61 fix: remove read timeout from ffmpeg arguments in music player 2026-05-18 05:46:38 +07:00
MythEclipseandClaude Opus 4.7 ff425e1f46 fix: resolve silent voice playback on VPS and queue screenshare streams
- Add ffmpeg stderr monitoring to catch audio decoding errors
- Add HTTP timeout parameters (-connect_timeout, -read_timeout) for VPS reliability
- Add URL validation in yt-dlp to ensure audio URLs are resolved
- Add comprehensive logging to mediaController for queue operations
- Add logging to musicPlayer for ffmpeg command execution and errors
- Update musicPlayer test to expect new timeout parameters

Fixes:
1. Silent audio issue: ffmpeg errors are now visible in logs
2. Queue bypass: Added logging to track queue → playback flow
3. VPS network issues: Added timeouts for HTTP stream connections

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-18 05:19:38 +07:00
MythEclipseandClaude Opus 4.7 3ae7a4c6ad fix: resolve silent voice playback on VPS and queue screenshare streams
- Call unpause() when starting a stream in DiscordPlayer to prevent getting stuck in a paused state.
- Call stop() instead of pause() in VoiceController on disconnect to fully reset the player.
- Add user-agent header to ffmpeg calls in MusicPlayer and Transcoder to prevent YouTube 403 Forbidden on VPS.
- Add screenshare streams to the media queue when successfully started.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-18 05:09:40 +07:00
MythEclipseandClaude Opus 4.7 1085d7909c fix: address LLM square bracket mapping format and resolve Biome import formatting
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-18 04:40:54 +07:00
MythEclipseandClaude Opus 4.7 cc2c247311 fix: align ytdlp and playTranscode tests with actual implementations
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-18 04:39:21 +07:00
MythEclipseandClaude Opus 4.7 dde8358736 feat: implement robust JSON parsing and multimodal image capping
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-18 04:38:30 +07:00
MythEclipseandClaude Opus 4.7 a22e3d5b63 docs: add implementation plan for robust moderation and tests
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-18 04:37:00 +07:00
MythEclipseandClaude Opus 4.7 329cb464e8 docs: add design spec for robust moderation parsing and test fixes
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-18 04:36:00 +07:00
MythEclipse f94009767b fix: correct typo in config validation comment 2026-05-18 00:31:45 +07:00
MythEclipse 51dc1f8869 feat: add multimodal analysis support to LLM moderation client by processing image attachments 2026-05-17 23:56:04 +07:00
MythEclipse 059d569566 fix: refactor constructor parameter properties in errors.ts to prevent strip-only mode type stripping errors 2026-05-17 23:05:50 +07:00
MythEclipse 7a2b8420d1 fix: make all recursive local relative imports explicit with .ts extensions to resolve ESM worker thread module failures 2026-05-17 23:03:35 +07:00
MythEclipse 299ec76433 fix: add explicit .ts extensions for worker thread relative imports to satisfy ESM resolution 2026-05-17 23:00:24 +07:00
MythEclipse 5d67ecfd24 fix: pass parent process.execArgv to Worker to support TSX/ESM loader in worker threads 2026-05-17 22:57:46 +07:00
MythEclipse b789655ce9 fix: register new github public remote for selfbot submodule and update workflow to checkout recursively 2026-05-17 22:53:13 +07:00
MythEclipse 079c6c3399 fix: implement smart docker compose vs legacy docker-compose command fallback for VPS 2026-05-17 22:08:03 +07:00
MythEclipse 88a02f2a66 fix: replace appleboy actions with native zero-dependency ssh + rsync for bulletproof deploys 2026-05-17 22:05:35 +07:00
MythEclipse 437a9735fe fix: recursively exclude nested node_modules and .git in vendor workspace package from scp 2026-05-17 22:03:03 +07:00
MythEclipse 781b1da2dd fix: exclude node_modules, .git, and giant assets from scp to prevent transfer timeout 2026-05-17 21:59:09 +07:00
MythEclipse a92ad630c9 fix: copy codebase to VPS using appleboy/scp-action to avoid git clone/pull auth dependency 2026-05-17 21:34:08 +07:00
MythEclipse a3fd6e3811 fix: change deploy workflow target branch and pull command to master 2026-05-17 21:33:10 +07:00
MythEclipse 8584030633 feat: automate .env deployment via GitHub Secrets and local file sync 2026-05-17 21:24:54 +07:00
MythEclipse f35710db3f feat: add Docker configuration and automated deployment workflows for VPS orchestration 2026-05-17 21:23:50 +07:00
MythEclipse 0c7930bd01 chore: update streaming default quality settings to 1080p60 at 8mbps with ultrafast preset 2026-05-17 20:47:41 +07:00
MythEclipse e22e620bae feat: add streaming demuxer tests and implement dual-stream output piping in streaming service 2026-05-17 20:44:13 +07:00
MythEclipse eda32720c8 a 2026-05-17 19:39:46 +07:00
MythEclipse c0f66c78a3 chore: update subproject commit to indicate dirty state 2026-05-17 18:24:17 +07:00
MythEclipse b8a6f40b1b feat: enhance database initialization for test isolation and add transcoder metrics 2026-05-17 18:24:10 +07:00
MythEclipse 4931e6d1ca test: add unit tests for playTranscodedPreparedStream and transcoder functionality 2026-05-17 17:54:39 +07:00
MythEclipse a3e6c4695a chore: remove test environment configuration file 2026-05-17 17:35:37 +07:00
MythEclipse 6de5342703 feat: refactor screen share controller to use Streamer for session management and simplify stream handling 2026-05-17 05:15:38 +07:00
MythEclipse 5a926dbd17 refactor: remove Discord-video-stream submodule and integrate streaming functionality 2026-05-17 05:10:46 +07:00
MythEclipse 7985efbef6 docs: add internal streamer replacement design 2026-05-17 05:00:04 +07:00
MythEclipse 71889ab689 chore: update Discord-video-stream subproject to latest commit 2026-05-17 04:52:20 +07:00
MythEclipse 518577d79d feat: enhance screen share controller with Streamer integration and voice channel management 2026-05-17 01:01:40 +07:00
MythEclipse d04093ec6e feat: add admin authentication to media and voice routes for secure access 2026-05-17 00:39:29 +07:00
MythEclipse 05feb697f0 feat: implement admin authentication overlay and API integration for secure access to voice and media controls 2026-05-17 00:20:29 +07:00
MythEclipse a5b5ccf5b0 refactor: enhance message ID handling in parseModerationResponse for precision loss and duplicates 2026-05-16 23:47:50 +07:00
MythEclipse 99ec528a03 refactor: remove unused getThreads function and related code from voice API and controller 2026-05-16 23:34:07 +07:00
MythEclipse 7dedac2094 refactor: clean up code structure and improve error handling in media controllers 2026-05-16 23:11:46 +07:00
MythEclipse 9b211f05cf refactor: change logger level from info to debug for voice activity detection 2026-05-16 21:56:14 +07:00
MythEclipse 4825dc6d4d feat: add mock-crc module for ESM compatibility 2026-05-16 21:52:13 +07:00
MythEclipse 9ad7d16a17 feat: expand activeTab options in SharedUIState to include messages, media, and review 2026-05-16 21:42:28 +07:00
MythEclipse 62d131cf14 feat: implement local audio streaming with controls in voice components 2026-05-16 21:08:39 +07:00
MythEclipseandClaude Opus 4.7 82025a19b2 feat: migrate and redesign dashboard to modern React
- Full rewrite of legacy vanilla JS UI into React SPA
- Implement modern design system using Tailwind CSS and shadcn/ui primitives
- Create typed API modules and hooks for voice, media, and moderation
- Add new features: separated Music and Screen Share panels, Image Grid
- Implement unified WebSocket hook for real-time state and PCM audio
- Improve visualizer with smooth CSS transitions and live state sync
- Add __dirname polyfill for ES module compatibility
- Ensure responsive layout for mobile and desktop

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-16 19:17:34 +07:00
MythEclipseandClaude Opus 4.7 3c7d722973 feat: separate music and screen share UI in media player
- Add mode selector buttons (Music / Screen Share)
- Create separate input panels for music and screen share
- Add screenSourceInput and screen share queue/skip/stop buttons
- Update queueMedia to include mode parameter (music/screen)
- Add queueScreen function for screen share mode
- Toggle between panels based on selected mode

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-16 18:22:09 +07:00
MythEclipseandClaude Opus 4.7 70931576dc fix: add __dirname polyfill for ES modules
- Import fileURLToPath from node:url
- Define __dirname using import.meta.url for ES module compatibility
- Fixes ReferenceError when serving static files in production

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-16 18:18:39 +07:00
MythEclipseandClaude Opus 4.7 8e1f5adaa4 feat: implement session-level recording with self/bot audio filtering
- Add RecordingSession tracking for guild-level audio mixing
- Filter out self user and bot users before subscribing to audio streams
- Register segments with session metadata for post-processing
- Finalize recording sessions on connection destroy or explicit stop
- Update test mocks to properly simulate stream chain and constructors
- Remove mock-crc import (no longer needed with current dependencies)
- Add 'type: module' to package.json for ES module support

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-16 18:15:18 +07:00