Repository navigation
chore(release): v2.6.67 - #511
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
📝 WalkthroughWalkthroughThis PR is a patch version bump (2.6.66 → 2.6.67) updating package versions across the monorepo and adding a changelog entry documenting a YouTube extractor registration fix for discord-player-youtubei@3.0.0-beta.4 compatibility. Changes
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~2 minutes Possibly related PRs
Suggested labels
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Size Change: 0 B Total Size: 324 kB ℹ️ View Unchanged
|
|
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@CHANGELOG.md`:
- Line 14: The test still builds an extractorOptions object with removed keys
(streamOptions.useClient, streamOptions.highWaterMark, generateWithPoToken);
update the test to remove those properties from extractorOptions and instead
assert the new registration shape that passes createStream directly (e.g.,
validate that the registration call receives a createStream function and not the
old streamOptions/generateWithPoToken fields). Locate references to
extractorOptions and any assertions that check streamOptions.useClient /
highWaterMark / generateWithPoToken and replace them with assertions that the
passed createStream (or equivalent callback) exists and is used.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: fb5176ed-fb3e-42d6-a410-91fab7993f4c
📒 Files selected for processing (6)
CHANGELOG.mdpackage.jsonpackages/backend/package.jsonpackages/bot/package.jsonpackages/frontend/package.jsonpackages/shared/package.json
📜 Review details
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
- GitHub Check: compressed-size
- GitHub Check: Quality Gates
- GitHub Check: SonarCloud Scan
🧰 Additional context used
📓 Path-based instructions (11)
{LICENSE,COPYING,COPYING.md,LICENSE.md,license.txt,**/package.json,**/requirements.txt,**/Cargo.toml,**/pom.xml,**/composer.json}
📄 CodeRabbit inference engine (.cursor/rules/accessibility-openness.mdc)
Respect OSS licenses for third-party code and declare license in repo
Files:
package.jsonpackages/bot/package.jsonpackages/shared/package.jsonpackages/backend/package.jsonpackages/frontend/package.json
{webpack.config.{js,ts},vite.config.{js,ts},esbuild.config.{js,ts},package.json,.bundlebudgetrc,.bundlebudgetrc.json}
📄 CodeRabbit inference engine (.cursor/rules/performance-observability.mdc)
Add performance budgets for frontend bundles
Files:
package.json
package.json
📄 CodeRabbit inference engine (.cursor/rules/lucky-project.mdc)
package.json: Use npm workspaces monorepo structure with packages inpackages/*directory containing:shared(config, services, types, utils),bot(Discord.js/Discord Player),backend(Express API), andfrontend(React/Vite)
Usenpm run buildfor shared → bot → backend build order; usenpm run build:frontendseparately for frontend
Usenpm run dev:bot,npm run dev:backend, andnpm run dev:frontendfor development, andnpm run db:*commands for database operations
Files:
package.json
packages/bot/**
📄 CodeRabbit inference engine (.cursor/rules/lucky-project.mdc)
The
botpackage depends onsharedand contains Discord bot commands and player handlers using Discord.js and Discord Player
Files:
packages/bot/package.json
packages/shared/package.json
📄 CodeRabbit inference engine (.cursor/rules/lucky-project.mdc)
The
sharedpackage must not have dependencies on bot or backend packages, only provide config, services (DB/Redis), types, and utils
Files:
packages/shared/package.json
packages/shared/**/*
📄 CodeRabbit inference engine (.cursor/rules/subagent-data.mdc)
Shared client and services must be located in
packages/shared
Files:
packages/shared/package.json
packages/backend/**
📄 CodeRabbit inference engine (.cursor/rules/lucky-project.mdc)
The
backendpackage depends onsharedand contains Express API with auth and guild routes
Files:
packages/backend/package.json
packages/frontend/**
📄 CodeRabbit inference engine (.cursor/rules/lucky-project.mdc)
The
frontendpackage uses React with Vite and must not depend on the shared package
Files:
packages/frontend/package.json
{CHANGELOG.md,README.md}
📄 CodeRabbit inference engine (.cursor/rules/agent-rules.mdc)
ALWAYS update CHANGELOG.md and README.md as changes are made.
Files:
CHANGELOG.md
CHANGELOG.md
📄 CodeRabbit inference engine (.cursor/rules/templates-examples.mdc)
CHANGELOG.md must be updated with all changes in pull requests
Always update CHANGELOG.md with all code changes
Update CHANGELOG.md with all changes, include breaking changes documentation, and reference issues and PRs
Files:
CHANGELOG.md
{CHANGELOG.md,docs/**}
📄 CodeRabbit inference engine (.cursor/rules/lucky-project.mdc)
Update
CHANGELOG.mdand relevantdocs/files when behavior or setup changes
Files:
CHANGELOG.md
🔇 Additional comments (6)
package.json (1)
3-3: LGTM: Version bump is correct.The patch version increment to
2.6.67is appropriate for the YouTube extractor bug fix documented in the changelog.packages/frontend/package.json (1)
4-4: LGTM: Frontend version synchronized.The version bump maintains consistency across the monorepo.
packages/bot/package.json (1)
3-3: LGTM: Bot version bump is consistent.The version aligns with the monorepo release and the
discord-player-youtubei@3.0.0-beta.4dependency matches the library version documented in the changelog fix.packages/backend/package.json (1)
3-3: LGTM: Backend version synchronized.Version bump is consistent with the monorepo release.
packages/shared/package.json (1)
3-3: LGTM: Shared package version is consistent.The version bump maintains monorepo consistency and the package correctly maintains no dependencies on bot or backend packages.
CHANGELOG.md (1)
10-14: LGTM: Excellent changelog documentation.The changelog entry comprehensively documents:
- The breaking library change (
YoutubeiExtractor→YoutubeExtractor)- The removed registration options (
streamOptions.useClient,generateWithPoToken)- The user-facing impact (
NoResultErrorfor non-SoundCloud tracks)- The Sentry issue reference (LUCKY-2J)
- The fix implementation (fallback pattern with guard)
This provides clear context for the patch release.
|
|
||
| ### Fixed | ||
|
|
||
| - **YouTube extractor registration** (`packages/bot/src/handlers/player/playerFactory.ts`): `discord-player-youtubei@3.0.0-beta.4` renamed the extractor class from `YoutubeiExtractor` to `YoutubeExtractor` and removed `streamOptions.useClient` / `generateWithPoToken` from the registration options. The old import resolved to `undefined`, causing every bot startup to silently skip YouTube extractor registration and log "YouTube extractor unavailable." All YouTube-backed tracks then fell through to the SoundCloud extractor, which cannot stream tracks unavailable on SoundCloud (e.g. anime openings, niche indie tracks), producing `NoResultError: Could not extract stream for this track` (Sentry LUCKY-2J). Fix: resolve the export by name with a v2 fallback (`YoutubeExtractor ?? YoutubeiExtractor`), drop the removed options, and guard explicitly when neither export is present. |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Verify the test file no longer references removed registration options
echo "=== Searching for removed option references in test file ==="
rg -n -A 3 -B 3 'streamOptions\.useClient|generateWithPoToken|highWaterMark' packages/bot/src/handlers/player/playerFactory.spec.ts
echo -e "\n=== Checking current test structure ==="
rg -n -A 10 'describe.*YouTube extractor' packages/bot/src/handlers/player/playerFactory.spec.tsRepository: LucasSantana-Dev/Lucky
Length of output: 1722
Update test file to remove references to removed extractor registration options.
The test file still validates removed options (streamOptions.useClient, generateWithPoToken, highWaterMark) that are no longer part of the extractor registration API following the discord-player-youtubei@3.0.0-beta.4 upgrade. Tests should be updated to validate only the new registration approach (passing createStream directly).
Test file evidence
35- const extractorOptions = {
36- streamOptions: {
37- useClient: 'IOS' as const,
38: highWaterMark: 1 << 25,
39- },
40: generateWithPoToken: true,
41- }
Test still expects these removed properties to exist (lines 43-45).
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@CHANGELOG.md` at line 14, The test still builds an extractorOptions object
with removed keys (streamOptions.useClient, streamOptions.highWaterMark,
generateWithPoToken); update the test to remove those properties from
extractorOptions and instead assert the new registration shape that passes
createStream directly (e.g., validate that the registration call receives a
createStream function and not the old streamOptions/generateWithPoToken fields).
Locate references to extractorOptions and any assertions that check
streamOptions.useClient / highWaterMark / generateWithPoToken and replace them
with assertions that the passed createStream (or equivalent callback) exists and
is used.



Summary
discord-player-youtubei@3.0.0-beta.4renamedYoutubeiExtractor→YoutubeExtractor— resolved asundefinedon every startup, silently disabling YouTube streaming and causingNoResultErrorfor tracks not on SoundCloud (Sentry LUCKY-2J)Test plan
Registered YoutubeExtractor(already verified on current deploy — fix is in main)🤖 Generated with Claude Code
Summary by CodeRabbit
Bug Fixes
Chores