In navidrome 0.61.x, the inPlaylist/notInPlaylist smart-playlist criteria SQL builder did not know the smart playlist owner. It only allowed referencing PUBLIC playlists, regardless of ownership. Per the docs, an inaccessible reference makes the rule match no tracks, so notInPlaylist against a private playlist silently degrades to NOT IN () (always true) - zero filtering. Symptom: smart playlist `Unrated (de-duped)` returned 9217 tracks including all members of `[mulbo] dupe-losers` (private, same owner). GRIVINA "Я хочу" showed 3 copies (1 unique + 2 dupe-losers). Verified by DB poke: same owner_id, public=0 on both playlists. Upstream fix: navidrome/navidrome#5411 (deluan) - "Relax playlist visibility in inPlaylist/notInPlaylist rules". Passes the smart playlist owner identity into the criteria SQL builder so same-owner private references work. Shipped in v0.62.0 (2026-06-08). nixpkgs PR for this bump: NixOS/nixpkgs#529720 (tebriel), opened 2026-06-09, not yet merged. nixos-unstable still on 0.61.2. This adds a local nixos/pkgs/navidrome/ verbatim from nixpkgs master with just the 3 hash lines bumped, and wires services.navidrome.package to it. REMOVE both once nixpkgs-unstable carries 0.62.x. After deploy: smart playlist songCount 9217 -> 7101, GRIVINA dupes 3 -> 1. Confirmed via direct API fetch. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| home/danny | ||
| hosts | ||
| pkgs | ||
| disko-cloud.nix | ||
| disko-distant-shore.nix | ||
| disko-foreign-port.nix | ||
| disko-server.nix | ||
| fish.nix | ||
| installer-iso.nix | ||
| neovim.nix | ||
| ollama.nix | ||
| readme.md | ||
| server-configuration-with-flakes.nix | ||
| server-install-configuration.nix | ||
| wsl.conf | ||
NixOS modules
Host-specific NixOS and home-manager modules live under this dir:
hosts/<machine>.nix+hosts/<machine>-hardware.nixhome/danny/home.nix(home-manager)fish.nix,neovim.nix,ollama.nix,installer-iso.nix,disko-server.nix
The flake itself (flake.nix, flake.lock, flake-modules/, lib/, modules/, sops/, vars/) lives at the repo root, not here. See CLAUDE.md at the repo root for rebuild commands, clan.lol operations, and the dotfiles-rebuild timer.
Quick rebuild reference
# macOS
cd ~/dotfiles && darwin-rebuild switch --flake .
# WSL
sudo nixos-rebuild switch --flake ~/dotfiles#wsl
# Servers (via clan from mac)
nix run git+https://git.clan.lol/clan/clan-core#clan-cli -- \
machines update sunken-ship --flake ~/dotfiles
Server bootstrap (one-time)
nix run --extra-experimental-features "nix-command flakes" nixpkgs#git -- \
clone https://github.com/DannyDannyDanny/dotfiles.git /tmp/dotfiles
sudo mv /tmp/dotfiles /etc/dotfiles
sudo nixos-rebuild switch --flake /etc/dotfiles#sunken-ship \
--option accept-flake-config true
If the daemon doesn't have flakes: copy server-configuration-with-flakes.nix to /etc/nixos/configuration.nix, sudo nixos-rebuild switch, then build the flake.
SSH keys (not in repo): scp ~/.ssh/*.pub danny@server:/tmp/, then on server mkdir -p ~/.ssh; cat /tmp/*.pub >> ~/.ssh/authorized_keys. See docs/ssh-and-secrets.md.
No git in PATH: sudo nix run nixpkgs#git -- -C /etc/dotfiles pull origin main.