Commit Graph

192 Commits

Author SHA1 Message Date
MythEclipse
62d131cf14 feat: implement local audio streaming with controls in voice components 2026-05-16 21:08:39 +07:00
MythEclipse
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
MythEclipse
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
MythEclipse
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
MythEclipse
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
MythEclipse
5abe5cc39f feat: update media input guidance
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-15 19:49:01 +07:00
MythEclipse
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
MythEclipse
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
MythEclipse
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
MythEclipse
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
MythEclipse
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
MythEclipse
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
MythEclipse
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
MythEclipse
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
MythEclipse
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
MythEclipse
d42d3f8def feat: add media queue foundation
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-15 16:55:16 +07:00
MythEclipse
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
MythEclipse
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
MythEclipse
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
MythEclipse
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
MythEclipse
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
MythEclipse
0060d1ba95 chore: modernize dependency set
- Remove deprecated packages: class-transformer, class-validator, fluent-ffmpeg, @types/fluent-ffmpeg
- Update remaining packages to latest versions via pnpm update --latest
- @discordjs/voice: ^0.19.1 → ^0.19.2
- @snazzah/davey: ^0.1.10 → ^0.1.11
- libsodium-wrappers: ^0.8.2 → ^0.8.4
- p-retry: ^6.2.0 → ^8.0.0
- pino: ^9.4.0 → ^10.3.1
- sodium-native: ^4.3.2 → ^5.1.0
- @types/node: ^24.10.1 → ^25.8.0
- pino-pretty: ^10.3.1 → ^13.1.3
- tsx: ^4.20.6 → ^4.22.0
- vitest: latest (preserved)
- @biomejs/biome: latest (preserved)

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