Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
8120ef1
deps(docker): bump node in /apps/docs in the docker-docs group
dependabot[bot] Jan 3, 2026
18dc977
deps(docker): bump node in /apps/www in the docker-www group
dependabot[bot] Jan 3, 2026
d392c8a
deps(actions): bump the actions-all group with 5 updates
dependabot[bot] Jan 3, 2026
59d0761
deps(rust): bump the cargo-tauri group
dependabot[bot] Jan 3, 2026
d5e8b86
deps: bump the npm-tauri group with 4 updates
dependabot[bot] Jan 3, 2026
db9509a
deps(rust): bump serde_json
dependabot[bot] Jan 3, 2026
e508fdc
deps: bump the npm-react group with 4 updates
dependabot[bot] Jan 3, 2026
1494832
deps(rust): bump the cargo-async group
dependabot[bot] Jan 3, 2026
1444ae5
deps(rust): bump the cargo-misc group
dependabot[bot] Jan 3, 2026
eac35fb
deps: bump the npm-ai-sdk group with 4 updates
dependabot[bot] Jan 3, 2026
7659540
deps: bump the npm-radix group with 27 updates
dependabot[bot] Jan 3, 2026
7ae5b4f
deps: bump @astrojs/starlight in the npm-astro-starlight group
dependabot[bot] Jan 3, 2026
f4e98b0
deps: bump next from 16.0.10 to 16.1.1 in the npm-next group
dependabot[bot] Jan 3, 2026
0fd3dde
deps(dev): bump the npm-tailwind group with 3 updates
dependabot[bot] Jan 3, 2026
1bb2b72
deps(dev): bump the npm-vite group with 2 updates
dependabot[bot] Jan 3, 2026
27620c0
deps(dev): bump the npm-typescript group with 2 updates
dependabot[bot] Jan 3, 2026
dd99eb1
deps(dev): bump the npm-tooling group with 4 updates
dependabot[bot] Jan 3, 2026
fcd2bfc
deps: bump the npm-runtime-misc group with 15 updates
dependabot[bot] Jan 3, 2026
47a06c3
Merge remote-tracking branch 'origin/dependabot/cargo/apps/desktop/sr…
Skeptic-systems Jan 4, 2026
4bc2f64
Merge remote-tracking branch 'origin/dependabot/cargo/apps/desktop/sr…
Skeptic-systems Jan 4, 2026
82855f6
Merge remote-tracking branch 'origin/dependabot/cargo/apps/desktop/sr…
Skeptic-systems Jan 4, 2026
a18edd0
Merge remote-tracking branch 'origin/dependabot/docker/apps/docs/dock…
Skeptic-systems Jan 4, 2026
f6d8f24
Merge remote-tracking branch 'origin/dependabot/docker/apps/www/docke…
Skeptic-systems Jan 4, 2026
44a24fc
Merge remote-tracking branch 'origin/dependabot/github_actions/action…
Skeptic-systems Jan 4, 2026
3f372b5
Merge remote-tracking branch 'origin/dependabot/npm_and_yarn/npm-ai-s…
Skeptic-systems Jan 4, 2026
2cca95e
Merge remote-tracking branch 'origin/dependabot/npm_and_yarn/npm-astr…
Skeptic-systems Jan 4, 2026
f832fc0
Merge remote-tracking branch 'origin/dependabot/npm_and_yarn/npm-next…
Skeptic-systems Jan 4, 2026
be66560
Merge remote-tracking branch 'origin/dependabot/npm_and_yarn/npm-radi…
Skeptic-systems Jan 4, 2026
8f1f04c
Merge remote-tracking branch 'origin/dependabot/npm_and_yarn/npm-reac…
Skeptic-systems Jan 4, 2026
087b66e
Merge remote-tracking branch 'origin/dependabot/npm_and_yarn/npm-runt…
Skeptic-systems Jan 4, 2026
6c88a8d
Merge remote-tracking branch 'origin/dependabot/npm_and_yarn/npm-tail…
Skeptic-systems Jan 4, 2026
4727ed0
Merge remote-tracking branch 'origin/dependabot/npm_and_yarn/npm-taur…
Skeptic-systems Jan 4, 2026
1ca3071
Merge remote-tracking branch 'origin/dependabot/npm_and_yarn/npm-tool…
Skeptic-systems Jan 4, 2026
5518538
Merge remote-tracking branch 'origin/dependabot/npm_and_yarn/npm-type…
Skeptic-systems Jan 4, 2026
e0b6201
Merge remote-tracking branch 'origin/dependabot/npm_and_yarn/npm-vite…
Skeptic-systems Jan 4, 2026
eb52655
feat(desktop): update environment configuration and dependencies; enh…
Skeptic-systems Jan 4, 2026
ef86a53
refactor(desktop): unify track handling and enhance provider integration
Skeptic-systems Jan 4, 2026
e875dd6
feat(desktop): enhance music provider integration and improve track m…
Skeptic-systems Jan 7, 2026
6e8cdab
chore: update biome schema and enhance desktop application functionality
Skeptic-systems Jan 7, 2026
70ea797
chore: update astro dependency version in pnpm-lock.yaml
Skeptic-systems Jan 7, 2026
ee5598a
chore: update biome configuration and enhance desktop application fun…
Skeptic-systems Jan 7, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions .changeset/ai-dj-randomness.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
"MiniFy": patch
---

Improved AI DJ to avoid duplicates and add more variety

- Played songs history now persists across queue restarts
- Recent tracks and artists are shuffled before AI analysis
- AI prompt updated to encourage diverse artist selection
- Suggestions are shuffled before playback
- Recent tracks excluded from suggestions to prevent repeats
9 changes: 9 additions & 0 deletions .changeset/clear-everything-button.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
"MiniFy": minor
---

Added Clear Everything button in Settings

- New button in Privacy section to reset all app data
- Confirmation dialog prevents accidental data loss
- Clears Spotify tokens, AI keys, settings, and custom themes
9 changes: 9 additions & 0 deletions .changeset/fix-keyring-race.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
"MiniFy": patch
---

Fixed Spotify and AI DJ authentication race conditions

- Added in-memory cache for client ID, tokens, and AI keys
- Wrapped all keyring operations in tokio::task::spawn_blocking
- Credentials now available immediately after saving
9 changes: 9 additions & 0 deletions .changeset/fix-rust-deps.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
"MiniFy": patch
---

Fixed compatibility with updated Rust dependencies

- Updated rand crate usage: thread_rng() -> rng()
- Updated keyring crate: delete_password() -> delete_credential()
- Fixed discord-rich-presence API change for client creation
9 changes: 9 additions & 0 deletions .changeset/last-played-track.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
"MiniFy": minor
---

Added persistent last played track caching

- App remembers last played song and playback position
- Works across app restarts and Spotify pauses
- Auto-saves progress every 2 seconds while playing
11 changes: 11 additions & 0 deletions .changeset/secure-data-keyring.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
"MiniFy": patch
---

Fixed credential storage and persistence

- Downgraded keyring crate from v3 to v2 for better Windows compatibility
- Secrets (tokens, API keys, client ID) stored securely in OS keyring
- Settings stored in %APPDATA%/MiniFy/settings.json (no size limits)
- Custom themes stored as individual JSON files in themes folder
- Added in-memory caching for keyring operations
15 changes: 15 additions & 0 deletions .changeset/youtube-music-fixes.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
---
"MiniFy": patch
---

Fixed YouTube Music integration issues

- Fixed volume control for YouTube Music (was showing "not available" message)
- Fixed authentication flow: clicking Connect in Settings now redirects to Boot auth screen
- YouTube Music now supports search, playlists, and volume control through the in-app player
- App now checks provider authentication on startup and redirects to setup if needed
- Auto-activate: if only one provider is connected, it's automatically set as active
- YouTube embed player now uses privacy-enhanced mode (youtube-nocookie.com)
- YouTube player is now pre-mounted during Boot for faster startup
- Updated clear-auth script to also clear YouTube credentials
- Fixed settings sync: active_music_provider is now properly saved to settings file
17 changes: 17 additions & 0 deletions .changeset/youtube-music-full-integration.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
---
"MiniFy": minor
---

Full YouTube Music integration with modular provider architecture

- Added embedded Google OAuth credentials support for YouTube (YOUTUBE_CLIENT_ID, YOUTUBE_CLIENT_SECRET)
- Extended MusicProvider interface with playlist methods and capabilities
- Implemented YouTube playlist API (getUserPlaylists, getPlaylistTracks, addToPlaylist)
- Aligned Spotify provider with updated MusicProvider interface
- Refactored PlaylistView to use provider abstraction for both Spotify and YouTube
- Enabled full AI DJ functionality for YouTube including chat and queue features
- Created provider-agnostic musicTools.ts for AI DJ tool calls
- Updated Settings UI: reordered providers (Spotify -> YouTube -> Apple Music)
- All music provider connections now use unified Boot flow (no custom modals)
- Added retry mechanism for YouTube player initialization (waits up to 5s)
- Improved drag area z-index for consistent window dragging
14 changes: 14 additions & 0 deletions .changeset/youtube-music-support.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
"MiniFy": minor
---

Added YouTube Music support with provider abstraction

- Implemented MusicProvider abstraction for scalable multi-provider support
- Added YouTube Music authentication via Google OAuth 2.0
- Created YouTube IFrame Player component for audio playback
- Extended Settings UI with YouTube Music connection
- Updated AI DJ to work with both Spotify and YouTube Music
- Refactored useCurrentlyPlaying hook to use provider factory
- Added provider-aware playback controls (play, pause, seek)
- YouTube credentials stored securely in OS Keyring
6 changes: 3 additions & 3 deletions .github/workflows/lint-desktop.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,10 @@ jobs:

steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v6

- name: Setup Node.js
uses: actions/setup-node@v4
uses: actions/setup-node@v6
with:
node-version: '18'

Expand All @@ -29,7 +29,7 @@ jobs:
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV

- name: Setup pnpm cache
uses: actions/cache@v4
uses: actions/cache@v5
with:
path: ${{ env.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
Expand Down
14 changes: 7 additions & 7 deletions .github/workflows/release-desktop.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ jobs:

steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v6
with:
fetch-depth: 0

Expand Down Expand Up @@ -97,10 +97,10 @@ jobs:

steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v6

- name: Setup Node.js
uses: actions/setup-node@v4
uses: actions/setup-node@v6
with:
node-version: '20.19.0'

Expand All @@ -114,7 +114,7 @@ jobs:
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_OUTPUT

- name: Setup pnpm cache
uses: actions/cache@v4
uses: actions/cache@v5
with:
path: ${{ steps.pnpm_store.outputs.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
Expand Down Expand Up @@ -167,7 +167,7 @@ jobs:
args: ${{ matrix.platform.args }}

- name: Upload artifacts
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v6
with:
name: artifacts-${{ matrix.platform.os }}
path: |
Expand Down Expand Up @@ -204,12 +204,12 @@ jobs:

steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v6
with:
fetch-depth: 0

- name: Download all artifacts
uses: actions/download-artifact@v4
uses: actions/download-artifact@v7
with:
path: artifacts
merge-multiple: true
Expand Down
4 changes: 2 additions & 2 deletions apps/desktop/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -33,10 +33,10 @@
"@tauri-apps/cli": "^2",
"@types/react": "^19.1.8",
"@types/react-dom": "^19.1.6",
"@vitejs/plugin-react": "^4.6.0",
"@vitejs/plugin-react": "^5.1.2",
"bun-types": "^1.3.0",
"tailwindcss": "^4.1.14",
"typescript": "~5.8.3",
"vite": "^7.0.4"
"vite": "^7.3.0"
}
}
12 changes: 11 additions & 1 deletion apps/desktop/scripts/clear-auth.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,20 @@ const execAsync = promisify(exec);

const KEYRING_SERVICE = "minify";
const KEYRING_KEYS = [
// Spotify
"access_token",
"refresh_token",
"token_expiry",
"music_provider",
"spotify_client_id",
// YouTube
"youtube_access_token",
"youtube_refresh_token",
"youtube_token_expiry",
"youtube_client_id",
"youtube_client_secret",
// General
"music_provider",
// AI Keys
"ai_key_openai",
"ai_key_anthropic",
"ai_key_google",
Expand Down Expand Up @@ -188,6 +197,7 @@ async function main() {
console.log(`\n${"=".repeat(40)}`);
console.log("✅ All credentials and settings cleared.");
console.log(" - Spotify tokens removed from keyring");
console.log(" - YouTube tokens removed from keyring");
console.log(" - AI API keys removed from keyring");
console.log(" - Settings file deleted");
console.log("\nRestart the app to trigger first-boot flow.");
Expand Down
Loading
Loading