Skip to content

v1.3.0 PR#11

Merged
sphildreth merged 2 commits into
mainfrom
sph.2026-07-14.01
Jul 15, 2026
Merged

v1.3.0 PR#11
sphildreth merged 2 commits into
mainfrom
sph.2026-07-14.01

Conversation

@sphildreth

Copy link
Copy Markdown
Contributor

This pull request delivers the MeloAmp 1.3.0 release, featuring a new local visual theme gallery, important playback and album art caching fixes, and a major UI dependency upgrade to Material UI v9. It also transitions both UI and Electron packages to a unified version number. The update modernizes component code to match the new Material UI API, improves reliability, and polishes the user experience.

New Features

  • Visual local theme gallery: Replaces the server-dependent /themes page with a categorized, interactive local gallery for all built-in themes. Themes can be previewed and applied instantly, with persistent selection and clear feedback. (src/ui/src/pages/LocalThemeGallery.tsx, src/ui/src/App.tsx) [1] [2] [3]

Bug Fixes

  • Queue playback: Fixes playback not advancing to the next track by adding an onEnded handler to the audio player. (src/ui/src/pages/Player.tsx)
  • Album art caching: Resolves a crash caused by got.stream by switching to native Node.js https/http modules for downloading album art. (src/electron/main.js) [1] [2]

Dependency and API Upgrades

  • Material UI v9 migration: Updates all MUI packages to v9 and refactors component code to use the new slotProps API and updated icon imports. (src/ui/package.json, component files) [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19]
  • Dependency bumps: Updates Electron to v43, Electron Builder, and other dependencies for improved compatibility and security. (src/electron/package.json, src/ui/package.json) [1] [2] [3]

Versioning and Changelog

  • Unified versioning: Both UI and Electron packages now share the same version number starting with 1.3.0. Changelog and package versions updated accordingly. (CHANGELOG.md, src/electron/package.json, src/ui/package.json) [1] [2] [3] [4]… previews

Copilot AI review requested due to automatic review settings July 15, 2026 02:30

Copilot AI 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.

Pull request overview

This PR prepares the MeloAmp 1.3.0 release by upgrading the UI stack (Material UI v9 and related deps), replacing the server-driven themes page with a local theme gallery, and fixing key playback / album-art caching reliability issues across the React UI and Electron shell.

Changes:

  • Added a new LocalThemeGallery UI and routed /themes to the local gallery implementation.
  • Fixed playback progression by adding an <audio onEnded> handler, and replaced Electron album-art downloading from got.stream to native http/https.
  • Bumped and aligned versions to 1.3.0 across UI/Electron and updated dependency lockfiles + changelog.

Reviewed changes

Copilot reviewed 25 out of 27 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
CHANGELOG.md Adds 1.3.0 release notes and documents unified versioning going forward.
src/electron/main.js Replaces got.stream album-art download with native http/https implementation.
src/electron/package.json Bumps Electron / builder versions and removes got dependency; aligns version to 1.3.0.
src/electron/yarn.lock Updates resolved Electron/build tooling dependency graph per the package bumps.
src/ui/package.json Migrates MUI packages to v9, bumps key dependencies, and aligns version to 1.3.0.
src/ui/src/App.tsx Routes /themes to LocalThemeGallery instead of the server-driven ThemesPage.
src/ui/src/components/CommandPalette.tsx Migrates MUI props to slotProps APIs for v9 compatibility.
src/ui/src/components/ErrorBoundary.tsx Updates icon import/usage to match new MUI icons exports.
src/ui/src/components/ErrorState.tsx Updates icon import/usage and MUI prop usage for v9.
src/ui/src/components/MiniSongCard.tsx Updates Typography styling props for v9.
src/ui/src/components/PlaylistPickerDialog.tsx Migrates TextField input adornment wiring to slotProps.
src/ui/src/pages/AnalyticsPage.tsx Migrates Stack/TY styling props to sx / v9-friendly patterns.
src/ui/src/pages/ArtistLookupPage.tsx Migrates TextField/Stack props to slotProps / sx.
src/ui/src/pages/ChartsPage.tsx Migrates Typography styling props for v9.
src/ui/src/pages/HistoryPage.tsx Migrates Typography styling props for v9.
src/ui/src/pages/LocalThemeGallery.tsx New local theme gallery page showing built-in themes with previews and apply behavior.
src/ui/src/pages/PlaybackToolsPage.tsx Migrates layout and Typography props to v9-safe patterns.
src/ui/src/pages/Player.tsx Adds <audio onEnded> logic intended to advance to the next track / repeat behaviors.
src/ui/src/pages/QueueView.tsx Migrates ListItemText typography customization to slotProps.
src/ui/src/pages/RecommendationsPage.tsx Migrates Typography styling props for v9.
src/ui/src/pages/RequestsPage.tsx Migrates Stack/layout props to sx.
src/ui/src/pages/SearchAdvancedPage.tsx Migrates TextField and layout props to slotProps / sx.
src/ui/src/pages/SearchPage.tsx Migrates TextField/Stack props to slotProps / sx.
src/ui/src/pages/SharesPage.tsx Migrates TextField label props and Typography display props to v9-friendly APIs.
src/ui/src/reportWebVitals.ts Updates web-vitals integration to the v5 API (onCLS, onINP, etc.).
src/ui/yarn.lock Updates resolved UI dependency graph for the MUI v9 + related bumps.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +80 to +85
function hexToRgba(hex: string, alpha: number): string {
const r = parseInt(hex.slice(1, 3), 16);
const g = parseInt(hex.slice(3, 5), 16);
const b = parseInt(hex.slice(5, 7), 16);
return `rgba(${r}, ${g}, ${b}, ${alpha})`;
}
Comment on lines +214 to +219
const categories = [
{ id: 'classic' as const, label: 'Classic', icon: '◉' },
{ id: 'dark' as const, label: 'Dark', icon: '◉' },
{ id: 'colorful' as const, label: 'Colorful', icon: '◉' },
{ id: 'wild' as const, label: 'Wild', icon: '◉' },
];
Comment thread src/ui/src/components/CommandPalette.tsx
Comment thread src/ui/src/pages/Player.tsx Outdated
Comment thread src/electron/main.js
Comment on lines +216 to +231
await new Promise((resolve, reject) => {
const client = url.startsWith('https') ? https : http;
client.get(url, (response) => {
if (response.statusCode < 200 || response.statusCode >= 300) {
reject(new Error(`HTTP ${response.statusCode}`));
return;
}
const fileStream = fs.createWriteStream(cachedArtPath);
response.pipe(fileStream);
fileStream.on('finish', () => {
fileStream.close();
resolve();
});
fileStream.on('error', reject);
}).on('error', reject);
});
@sphildreth
sphildreth merged commit 3c0a5d7 into main Jul 15, 2026
@sphildreth
sphildreth deleted the sph.2026-07-14.01 branch July 15, 2026 02:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants