Skip to content

chore(release): v2.6.67 - #511

Merged
LucasSantana-Dev merged 1 commit into
mainfrom
release/v2.6.67
Apr 10, 2026
Merged

LucasSantana-Dev merged 1 commit into
mainfrom
release/v2.6.67

Conversation

@LucasSantana-Dev

@LucasSantana-Dev LucasSantana-Dev commented Apr 10, 2026 •

Copy link
Copy Markdown
Owner

Summary

  • fix(bot): YouTube extractor broken since discord-player-youtubei@3.0.0-beta.4 renamed YoutubeiExtractor → YoutubeExtractor — resolved as undefined on every startup, silently disabling YouTube streaming and causing NoResultError for tracks not on SoundCloud (Sentry LUCKY-2J)

Test plan

  • CI passes
  • Bot logs show Registered YoutubeExtractor (already verified on current deploy — fix is in main)

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Bug Fixes

    • Resolved YouTube extractor compatibility issue with discord-player-youtubei@3.0.0-beta.4.
  • Chores

    • Released version 2.6.67.

@vercel

vercel Bot commented Apr 10, 2026 •

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
lucky Ready Ready Preview, Comment Apr 10, 2026 0:07am

Request Review

@github-actions github-actions Bot added dependencies Pull requests that update a dependency file bot backend frontend shared size/s labels Apr 10, 2026
@coderabbitai

coderabbitai Bot commented Apr 10, 2026 •

Copy link
Copy Markdown
📝 Walkthrough

Walkthrough

This 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

Cohort / File(s) Summary
Documentation
CHANGELOG.md
Added v2.6.67 release notes documenting YouTube extractor registration fix where the export name changed from YoutubeiExtractor to YoutubeExtractor, and removed unsupported registration options.
Version Bumps
package.json, packages/backend/package.json, packages/bot/package.json, packages/frontend/package.json, packages/shared/package.json
Incremented all package versions from 2.6.66 to 2.6.67 across the monorepo.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~2 minutes

Possibly related PRs

Suggested labels

dependencies, bot, size/xs

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The pull request title 'chore(release): v2.6.67' is clearly related to the main purpose of the changeset, which is a version bump release accompanied by a critical YouTube extractor fix.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch release/v2.6.67

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions

Copy link
Copy Markdown

Size Change: 0 B

Total Size: 324 kB

ℹ️ View Unchanged
Filename Size
packages/frontend/dist/assets/ActionPanel-DNyixsRN.js 400 B
packages/frontend/dist/assets/api-DsLAIu-l.js 2.9 kB
packages/frontend/dist/assets/authStore-Bo_PbbZd.js 557 B
packages/frontend/dist/assets/AutoMessages-CMx6p29r.js 2.69 kB
packages/frontend/dist/assets/AutoMod-H-4xwkmt.js 4.09 kB
packages/frontend/dist/assets/avatar-BYVlC9R1.js 1.79 kB
packages/frontend/dist/assets/badge-kekZ5uai.js 498 B
packages/frontend/dist/assets/Button-Chq_jJX6.js 766 B
packages/frontend/dist/assets/Card-DY7pU8Q5.js 457 B
packages/frontend/dist/assets/chunk-QFMPRPBF-ySVqcpZB.js 14.8 kB
packages/frontend/dist/assets/CommandsConfig-D5HhVE8J.js 1.49 kB
packages/frontend/dist/assets/Config-D0yyrS5J.js 1.74 kB
packages/frontend/dist/assets/CustomCommands-D6roNyDQ.js 2.15 kB
packages/frontend/dist/assets/DashboardOverview-B7ZvaNvW.js 3.42 kB
packages/frontend/dist/assets/dialog-DCGuWOQz.js 949 B
packages/frontend/dist/assets/dist-Bzdj1j8i.js 416 B
packages/frontend/dist/assets/EmbedBuilder-Rq0Aksdt.js 3.35 kB
packages/frontend/dist/assets/EmptyState-D-FW84dc.js 432 B
packages/frontend/dist/assets/Features-CWZ4j0-1.js 2.85 kB
packages/frontend/dist/assets/GuildAutomation-K29WisHS.js 2.94 kB
packages/frontend/dist/assets/guildStore-D5pntH7c.js 791 B
packages/frontend/dist/assets/index-BvzPtzfc.js 11.7 kB
packages/frontend/dist/assets/index-DoLe_VYd.css 14.4 kB
packages/frontend/dist/assets/input-B8xLKRen.js 465 B
packages/frontend/dist/assets/label-9gyU3CvE.js 485 B
packages/frontend/dist/assets/LastFm-rG5GrbYY.js 1.74 kB
packages/frontend/dist/assets/Levels-DLo4t0Rt.js 2.65 kB
packages/frontend/dist/assets/Login-C5vaBplo.js 2.54 kB
packages/frontend/dist/assets/Lyrics-C6bZmDoy.js 1.33 kB
packages/frontend/dist/assets/Moderation-Ceej5Axm.js 3.87 kB
packages/frontend/dist/assets/Music-DwHM3KDy.js 6.17 kB
packages/frontend/dist/assets/MusicConfig-BkgUtXsR.js 1.62 kB
packages/frontend/dist/assets/PrivacyPolicy-BMYU-0jY.js 1.38 kB
packages/frontend/dist/assets/rbac-BN1DzQHh.js 152 B
packages/frontend/dist/assets/ReactionRoles-D-ubvLwR.js 1.9 kB
packages/frontend/dist/assets/rolldown-runtime-COnpUsM8.js 467 B
packages/frontend/dist/assets/scroll-area-C8T6RLOh.js 522 B
packages/frontend/dist/assets/SectionHeader-C0yb_DFu.js 385 B
packages/frontend/dist/assets/select-CHLbPSDw.js 1.23 kB
packages/frontend/dist/assets/ServerLogs-BtUuCMku.js 2.9 kB
packages/frontend/dist/assets/ServerSettings-4VsKJdYy.js 4.22 kB
packages/frontend/dist/assets/ServersPage-CLyZtYdk.js 2.95 kB
packages/frontend/dist/assets/Skeleton-Z9dBUKZD.js 236 B
packages/frontend/dist/assets/Starboard-xddi8bqd.js 2.09 kB
packages/frontend/dist/assets/StatTile-DI0Q4bgV.js 606 B
packages/frontend/dist/assets/switch-nhTZOPm5.js 543 B
packages/frontend/dist/assets/TermsOfService-SB9iOf3u.js 1.37 kB
packages/frontend/dist/assets/TrackHistory-Brg7jkn6.js 1.91 kB
packages/frontend/dist/assets/TwitchNotifications-BrtUbdEd.js 2.29 kB
packages/frontend/dist/assets/useGuildSelection-CNWhdqGT.js 488 B
packages/frontend/dist/assets/usePageMetadata-C6uKjjUo.js 325 B
packages/frontend/dist/assets/utils-ayWzbeKE.js 148 B
packages/frontend/dist/assets/vendor-forms-DmZCnE0r.js 25.4 kB
packages/frontend/dist/assets/vendor-radix-DyTfqI7p.js 33.5 kB
packages/frontend/dist/assets/vendor-react-DlFk5rSD.js 55.6 kB
packages/frontend/dist/assets/vendor-state-1dKZOhDf.js 22.2 kB
packages/frontend/dist/assets/vendor-ui-B32-89km.js 64.2 kB

compressed-size-action

@sonarqubecloud

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

📥 Commits

Reviewing files that changed from the base of the PR and between 13ad0d6 and 7b43447.

📒 Files selected for processing (6)
  • CHANGELOG.md
  • package.json
  • packages/backend/package.json
  • packages/bot/package.json
  • packages/frontend/package.json
  • packages/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.json
  • packages/bot/package.json
  • packages/shared/package.json
  • packages/backend/package.json
  • packages/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 in packages/* directory containing: shared (config, services, types, utils), bot (Discord.js/Discord Player), backend (Express API), and frontend (React/Vite)
Use npm run build for shared → bot → backend build order; use npm run build:frontend separately for frontend
Use npm run dev:bot, npm run dev:backend, and npm run dev:frontend for development, and npm run db:* commands for database operations

Files:

  • package.json
packages/bot/**

📄 CodeRabbit inference engine (.cursor/rules/lucky-project.mdc)

The bot package depends on shared and 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 shared package 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 backend package depends on shared and contains Express API with auth and guild routes

Files:

  • packages/backend/package.json
packages/frontend/**

📄 CodeRabbit inference engine (.cursor/rules/lucky-project.mdc)

The frontend package 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.md and relevant docs/ 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.67 is 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.4 dependency 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 (NoResultError for non-SoundCloud tracks)
  • The Sentry issue reference (LUCKY-2J)
  • The fix implementation (fallback pattern with guard)

This provides clear context for the patch release.

Comment thread CHANGELOG.md

### 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.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 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.ts

Repository: 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.

@LucasSantana-Dev
LucasSantana-Dev merged commit 29c9085 into main Apr 10, 2026
13 checks passed
@LucasSantana-Dev
LucasSantana-Dev deleted the release/v2.6.67 branch April 10, 2026 00:11
LucasSantana-Dev added a commit that referenced this pull request Apr 10, 2026
LucasSantana-Dev added a commit that referenced this pull request May 13, 2026

This branch was successfully deployed

1 active deployment
Preview — 7b434472 Deployed Apr 10, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant