Commit Graph
100 Commits
Author SHA1 Message Date
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
MythEclipse 2744e7035b feat: implement full session recording with muxing support
- Add session recording metadata and mux filter builder in src/recorder/sessionRecording.ts.
- Update SegmentMetadata to include recordingSessionId in src/types.ts and src/recorder/metadata.ts.
- Modify recorder lifecycle to track sessions, register segments, and finalize recordings on stop.
- Create tests for session recording functionality in tests/recorder/sessionRecording.test.ts and tests/recorder/metadata.test.ts.
- Document session recording design and implementation plan in docs/superpowers/specs/2026-05-16-session-full-recording-design.md and docs/superpowers/plans/2026-05-16-session-full-recording.md.
2026-05-16 17:59:17 +07:00
MythEclipse 8b33af8286 feat: prevent recording of audio from bot users 2026-05-16 15:52:10 +07:00
MythEclipse d50ce8698f feat: implement media echo fix and YouTube screenshare design
- Introduced a new `ScreenShareController` to manage YouTube screenshare functionality.
- Updated `DiscordPlayer` to track ownership of audio streams, preventing conflicts between music playback and screenshare.
- Added error handling for various states including voice connection checks and media busy states.
- Created unit tests for `ScreenShareController` and `DiscordPlayer` ownership rules to ensure correct functionality.
- Added documentation for the new media echo fix and screenshare design.
2026-05-16 15:48:28 +07:00
MythEclipse e32e092596 feat: enhance media handling and audio processing logic 2026-05-15 22:23:29 +07:00
MythEclipse 6ac4a5c11a feat: add installation script for yt-dlp and update package.json 2026-05-15 21:40:20 +07:00
MythEclipse 119258c2b0 feat: add additional built dependencies for media processing 2026-05-15 20:24:03 +07:00
MythEclipseandClaude Opus 4.7 5abe5cc39f feat: update media input guidance
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-15 19:49:01 +07:00
MythEclipseandClaude Opus 4.7 c954cc0406 feat: resolve youtube search and spotify media
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-15 19:46:43 +07:00
MythEclipseandClaude Opus 4.7 95ea0cee75 feat: add play-dl search resolver
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-15 19:44:42 +07:00
MythEclipseandClaude Opus 4.7 2e30a063d2 feat: add yt-dlp media helper
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-15 19:43:06 +07:00
MythEclipseandClaude Opus 4.7 6aeabc690f feat: prepare media resolver source kinds
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-15 19:11:23 +07:00
MythEclipse 73901231c3 feat: update backlog sync logic to queue requests and adjust response structure 2026-05-15 18:53:12 +07:00
MythEclipse 61b07e4b01 feat: implement backlog sync cooldown mechanism and update related tests 2026-05-15 18:38:17 +07:00
MythEclipse a97feb1e2a feat: implement split text and voice selection in configuration and UI
- Added a new implementation plan for separating text moderation and voice recording configurations.
- Introduced new configuration keys for text and voice guild/channel IDs with backward compatibility.
- Updated moderation capture and backlog sync to filter based on the new text-specific settings.
- Split shared UI state into distinct text and voice fields, ensuring backward compatibility.
- Enhanced the static dashboard to support separate selections for text and voice channels.
- Created a new media subsystem for audio playback, allowing users to queue, play, skip, and stop audio sources.
- Defined API routes for media control and integrated with existing voice functionalities.
2026-05-15 18:29:20 +07:00
MythEclipse 575302db57 fix: report backlog sync errors in dashboard 2026-05-15 18:10:30 +07:00
MythEclipse 76470a5129 fix: remove duplicate media dashboard handlers 2026-05-15 18:06:16 +07:00
MythEclipse ff2792d403 style: format media music implementation 2026-05-15 18:04:39 +07:00
MythEclipse 192f83d31d feat: add dashboard media controls 2026-05-15 18:03:01 +07:00
MythEclipseandClaude Opus 4.7 06b6db703c feat: wire media playback into webserver
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-15 17:52:16 +07:00
MythEclipseandClaude Opus 4.7 94e497b7a6 feat: expose media playback routes
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-15 17:43:53 +07:00
MythEclipse b00def2d4d fix: guard media controller playback transitions 2026-05-15 17:40:28 +07:00
MythEclipse dbae042279 test: cover media controller conflicts and skip 2026-05-15 17:30:08 +07:00
MythEclipseandClaude Opus 4.7 c509f48f95 feat: coordinate media playback state
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-15 17:27:27 +07:00
MythEclipse 1e0a00d82d fix: guard music playback process lifecycle 2026-05-15 17:23:36 +07:00
MythEclipseandClaude Opus 4.7 9e07a0a1f3 feat: add ffmpeg music player
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-15 17:17:17 +07:00
MythEclipse acb43b6dac fix: harden media source resolution 2026-05-15 17:11:26 +07:00
MythEclipseandClaude Opus 4.7 93134a9793 feat: resolve media music sources
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-15 17:05:37 +07:00
MythEclipse 2194d4a8b6 fix: preserve failed media queue item 2026-05-15 17:01:51 +07:00
MythEclipse 3b6bf49160 feat: add media queue foundation 2026-05-15 16:56:50 +07:00
MythEclipseandClaude Opus 4.7 d42d3f8def feat: add media queue foundation
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-15 16:55:16 +07:00
MythEclipseandClaude Opus 4.7 ed438e6fc0 feat: split text and voice channel selection
Separate text moderation and voice recording guild/channel state so each workflow can persist and operate independently.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-15 15:58:38 +07:00
MythEclipseandClaude Opus 4.7 6859eb3f50 docs: add Discord video stream vendor plan
Record the implementation plan for vendoring Discord-video-stream as a workspace dependency.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-15 09:29:50 +07:00
MythEclipse 5d015ea6e1 Merge branch 'worktree-selfbot-performance-optimization' 2026-05-15 09:01:47 +07:00
MythEclipseandClaude Opus 4.7 12fdc713d9 feat: vendor Discord video stream workspace
Add Discord-video-stream as a vendored workspace dependency and wire it to use the local selfbot package for development.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-15 09:01:38 +07:00
MythEclipse ff90f9e95c feat: add selfbot performance and feature optimization design document 2026-05-15 08:32:13 +07:00
MythEclipseandClaude Opus 4.7 2c58e44c67 perf: tune selfbot runtime defaults
Apply low-memory client options and point the workspace vendor package at the optimized selfbot internals for more stable long-running moderation capture.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-15 08:26:43 +07:00
MythEclipse bd03fe1817 fix: mark discord.js-selfbot-v13 subproject as dirty 2026-05-15 07:16:30 +07:00
MythEclipse 235c1120c2 feat: enhance moderation functionality with type improvements and global broadcaster integration 2026-05-15 07:13:37 +07:00
MythEclipse 930c399484 feat: enhance message capture and processing with backlog support 2026-05-15 06:52:20 +07:00
MythEclipse 958a6d7236 feat: implement vendor selfbot dependency modernization plan
- Update submodule `discord.js-selfbot-v13` to latest commit.
- Create implementation plan for modernizing the vendored dependency, focusing on toolchain replacement with Biome and runtime dependency auditing.
- Establish a design document outlining goals, scope, approach, toolchain design, runtime dependency design, and validation steps.
- Ensure public API compatibility and maintain existing functionality during modernization efforts.
2026-05-15 06:26:22 +07:00
MythEclipse bbd65d369e feat: implement selfbot workspace submodule
- Add `discord.js-selfbot-v13` as a git submodule in `vendor/`
- Update `pnpm-workspace.yaml` to include the new submodule path
- Modify `.gitmodules` to track the submodule repository
- Change `discord.js-selfbot-v13` dependency in `package.json` to use `workspace:*`
- Create implementation and design documents for the submodule integration
2026-05-15 05:45:19 +07:00
MythEclipse bbd3a88471 Merge branch 'worktree-library-modernization' 2026-05-15 04:34:41 +07:00
MythEclipse ed10f45e8c fix: adapt retry logging to p-retry v8 2026-05-15 04:28:11 +07:00
MythEclipseandClaude Opus 4.7 29fcde69e4 fix: adapt code to modernized libraries
- Migrate validation.ts from class-transformer/class-validator to Zod
- Apply Biome auto-fixes (import sorting, nodejs protocol)
- Fix duplicate type identifier in validation.ts

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