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 and Claude 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
MythEclipse and Claude 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
MythEclipse and Claude 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
MythEclipse and Claude 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
MythEclipse and Claude 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
MythEclipse and Claude 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
MythEclipse and Claude 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
MythEclipse and Claude 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
MythEclipse and Claude 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
MythEclipse and Claude 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
MythEclipse and Claude 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
MythEclipse and Claude 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
MythEclipse and Claude 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
MythEclipse and Claude 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
MythEclipse and Claude 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
MythEclipse and Claude 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
MythEclipse and Claude Opus 4.7
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
MythEclipse
895b47890c
refactor: invoke ffmpeg without deprecated wrapper
2026-05-14 23:42:11 +07:00
MythEclipse and Claude Opus 4.7
e5aa398e5c
refactor: use esm-safe database migrations
...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-14 23:23:07 +07:00
MythEclipse
954faf6c5a
refactor: validate user state with zod
2026-05-14 23:11:25 +07:00
MythEclipse
5010a4d1f1
docs: record dependency modernization audit
2026-05-14 23:01:18 +07:00
MythEclipse
203aa9a589
style: organize imports after dashboard rebuild
2026-05-14 21:19:43 +07:00
MythEclipse and Claude Opus 4.7
196ca1b784
feat: serve React dashboard from public/app when available
...
Check for public/app/index.html before falling back to the old
public/index.html so the React moderation dashboard is served at
the root in production while preserving the legacy frontend during
the transition period.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-14 21:16:03 +07:00
MythEclipse
a812182218
fix: harden dashboard message state
2026-05-14 21:10:24 +07:00
MythEclipse
cb2cfc76f2
fix: import dashboard event type from websocket client
2026-05-14 21:03:38 +07:00
MythEclipse and Claude Opus 4.7
ae02556f75
feat: add moderation review dashboard
...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-14 21:01:57 +07:00
MythEclipse
fbf0f11db1
fix: align dashboard message api shape
2026-05-14 20:55:05 +07:00
MythEclipse
0a7965e1d4
fix: remove unused dashboard type import
2026-05-14 20:47:51 +07:00
MythEclipse
2d56012bf5
feat: add dashboard api clients
2026-05-14 20:46:21 +07:00
MythEclipse
c3f2d01e9b
a
2026-05-14 20:27:35 +07:00
MythEclipse
298048aaaf
fix: isolate frontend typescript config
2026-05-14 20:26:38 +07:00
MythEclipse
71a28085d2
feat: scaffold react dashboard
2026-05-14 20:24:41 +07:00
MythEclipse
da5e191b0f
fix: make moderation index migration portable
2026-05-14 20:19:47 +07:00
MythEclipse
558d65342b
feat: add moderation query indexes
2026-05-14 20:14:42 +07:00
MythEclipse
44368e646f
fix: reanalyze edited messages
2026-05-14 20:10:16 +07:00
MythEclipse
dbfc6866f9
refactor: keep message capture on fast path
2026-05-14 20:03:02 +07:00
MythEclipse
d8aeefb739
fix: preserve ui state broadcasts in routes
2026-05-14 19:58:37 +07:00
MythEclipse
08cd515d8a
fix: preserve ui state broadcasts in routes
2026-05-14 19:55:26 +07:00
MythEclipse
c81a499535
refactor: split api routes by concern
2026-05-14 19:46:47 +07:00
MythEclipse
3fb1fcb72c
fix: remove unused analysis import
2026-05-14 19:41:18 +07:00
MythEclipse
243a18ecad
fix: harden analysis queue scheduling
2026-05-14 19:39:25 +07:00
MythEclipse
f14e893cb7
feat: debounce ai analysis by conversation
2026-05-14 19:32:44 +07:00
MythEclipse
54cd4e0386
fix: type llm moderation test fixtures
2026-05-14 19:28:56 +07:00
MythEclipse
65ab5ecb32
fix: harden llm moderation parsing
2026-05-14 19:26:54 +07:00
MythEclipse
81253e4ffe
feat: add strict llm moderation client
2026-05-14 19:21:15 +07:00
MythEclipse
ce35b335d0
test: cover conversation context edge cases
2026-05-14 19:16:46 +07:00
MythEclipse
2b4e2a7ab7
feat: add conversation context builder
2026-05-14 19:10:13 +07:00
MythEclipse
2d511e08db
style: format message query changes
2026-05-14 19:06:17 +07:00
MythEclipse
13078e7c3c
fix: resolve message query test diagnostics
2026-05-14 19:02:19 +07:00
MythEclipse
298fc968cf
test: cover message query pagination
2026-05-14 19:01:01 +07:00
MythEclipse
7a8883f623
test: cover message query pagination
2026-05-14 19:00:03 +07:00
MythEclipse
0c54ac4ba8
test: cover message query pagination
2026-05-14 18:54:13 +07:00
MythEclipse
9f5f8a3090
feat: add cursor-based message queries
2026-05-14 18:48:02 +07:00
MythEclipse
8ab7aaa32d
fix: harden moderation broadcaster
2026-05-14 18:44:47 +07:00
MythEclipse and Claude Opus 4.7
01dc9b1836
feat: add typed moderation broadcaster
...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-14 18:40:34 +07:00
MythEclipse
49d4bbf781
chore: remove obsolete migration documentation files
2026-05-14 16:40:43 +07:00
MythEclipse
4fbbc056bb
docs: add postgresql setup completion documentation
2026-05-14 16:26:12 +07:00
MythEclipse
47ae7f8650
chore: remove temporary test files
2026-05-14 16:25:45 +07:00
MythEclipse
35269b5bef
feat: configure postgresql as primary database with neon connection
...
- Updated .env to use PostgreSQL (neondb) instead of SQLite
- Updated drizzle.ts to support DATABASE_URL connection string
- Regenerated migrations for PostgreSQL syntax
- Bot successfully connects and operates with PostgreSQL
- All database operations working correctly
2026-05-14 16:25:39 +07:00
MythEclipse
c63a61460c
docs: add comprehensive drizzle orm migration final summary
2026-05-14 16:21:35 +07:00
MythEclipse
9889d20edd
feat: add programmatic migration runner for better PostgreSQL support
2026-05-14 16:21:02 +07:00
MythEclipse
b580430eb6
docs: add drizzle orm migration completion summary
2026-05-14 16:17:25 +07:00
MythEclipse
b9d0a06d01
fix: update drizzle config to read env vars directly for CLI compatibility
2026-05-14 16:14:48 +07:00
MythEclipse
b600dad011
fix: correct import ordering and update tests for drizzle-orm migration
2026-05-14 15:47:03 +07:00
MythEclipse
50d4517079
refactor: remove old database adapter files
2026-05-14 15:43:52 +07:00
MythEclipse
9ff0f0bede
feat: update application initialization for drizzle
2026-05-14 15:43:16 +07:00
MythEclipse
1c4b0afbce
refactor: migrate messageStore to drizzle-orm
...
- Replace all raw SQL queries in messageStore.ts with Drizzle ORM queries
- Remove DatabaseAdapter dependency from messageStore functions
- Update all function signatures to be async and remove db parameter
- Functions now use getDatabase() internally for database access
- Update all call sites in messageCapture.ts, attachmentUploader.ts, aiAnalyzer.ts, webserver.ts, and index.ts
- All functions remain backward compatible in behavior
- TypeScript typecheck passes with no errors
- All tests pass (11 passed)
2026-05-14 15:41:11 +07:00
MythEclipse
dfe3444018
refactor: migrate muxer-queue to drizzle-orm
2026-05-14 15:35:55 +07:00
MythEclipse
7e528a473b
feat: create drizzle database client
2026-05-14 15:33:45 +07:00
MythEclipse
4e28cf9671
feat: add drizzle configuration and initial migrations
2026-05-14 15:33:10 +07:00
MythEclipse
52b36c963f
feat: create drizzle schema definitions
2026-05-14 15:32:20 +07:00
MythEclipse
b833b6d978
feat: add drizzle-orm and drizzle-kit dependencies
2026-05-14 15:31:08 +07:00
MythEclipse
d1282f2f57
fix: organize imports and apply linting fixes
2026-05-14 15:02:23 +07:00
MythEclipse
1623c612c3
docs: add PostgreSQL migration guide
2026-05-14 15:00:35 +07:00