Pod

Available as Markdown and JSON. Pod is also available over MCP.

Reported issues for Engine DJ Library Assistant (unofficial)

Pod holds 11 of 11 GitHub reports that passed its relevance review. This can include external user reports, maintainer-confirmed bugs, and concrete feature gaps. Treat them as evidence to inspect, not a count of distinct defects.

Back to Engine DJ Library Assistant (unofficial).

Most discussed

Duplicate library UUID bypasses ambiguous_library and may write to the wrong disk

Summary

An Engine DJ library and its cloned USB copy can legitimately share the same Information.uuid. When library is explicitly set to that shared UUID, findLibrary() uses Array.find() and silently returns the first matching path.

selectForWrite() only performs the multi-library refusal when library is omitted. Supplying the shared UUID therefore bypasses ambiguous_library, and a write may land on whichever physical disk happened to be discovered first.

This is the same…

Read the thread · 2026-09-15 · closed · outside contributor · 1 comment

Proposal: update_track_metadata — write genre, comment, label, rating to Track

Proposal: a write tool for tag hygiene on Track itself — genre, comment, label, rating, maybe year — built on the existing write path (withWriteTransaction, per-session snapshot, ambiguous_library refusal, undo with an expect guard like expect_track_ids).

Scope decision pending. This would be the first write to track rows rather than to playlists — a different risk than anything shipped so far.

Facts, checked 2026-09-11

Read the thread · 2026-09-11 · closed · outside contributor · 1 comment

A clone with an unsupported schema makes a named-uuid write refuse, while an omitted library ignores it

Found while reviewing #14; deliberately left as-is there because it errs on the safe side.

What happens

writeNeedsLibrary counts only supported libraries, so an old 2.x library on the machine never makes a write refuse. findLibraries/namedWriteLibrary (added in 9e4bb58) do not filter on supported, so a uuid shared by a supported library and an unsupported copy refuses.

Scenario

Libraries a (3.0.2) and b (3.1.0, unsupported) share a uuid:

Read the thread · 2026-09-16 · open · outside contributor · 0 comments

A path is not a stable library identity: two drives with the same volume label swap mount points

Found while reviewing #14. Pre-existing.

What happens

Since #14 a write must name a library by path when a uuid is shared by copies, and every undo step already carries the library as a path (src/store/write.ts). A path identifies a mount point, not a drive. macOS mounts two sticks carrying the same volume label — a default Untitled or NO NAME, or a disk-level clone — as /Volumes/Untitled and /Volumes/Untitled 1, in plug order.

Scenario

  1. Two such sticks are connected; the…

Read the thread · 2026-09-16 · open · outside contributor · 0 comments

Write result and backup name can report the uuid of a library no longer at that path

Found while reviewing #14. Pre-existing; not introduced by that fix.

What happens

states is keyed by the path of m.db (src/server.ts), deliberately: a clone on another drive shares its uuid, so the path is the stable key. stateFor(lib) returns the cached LibraryState for that path and ignores the freshly discovered LibraryInfo, so state.lib.uuid and the IndexManager's own copy can describe a library that is no longer there.

Scenario

  1. A write goes to…

Read the thread · 2026-09-16 · open · outside contributor · 0 comments

Check on a player whether Engine OS opens a file whose name is in another Unicode form

path_form_mismatch (added for #11) marks tracks whose file is on disk under a name in a different Unicode normalization form from the path Engine stored. Its description says these "may fail to load on hardware". That rests on one measurement and one assumption:

Read the thread · 2026-09-11 · open · outside contributor · 0 comments

missing_files: a file under another Unicode normalization form reads as missing on byte-exact filesystems

missing_files checks each track with existsSync(absTrackPath(mdbPath, path)), using Track.path exactly as stored.

Engine stores paths in NFC: all 27 non-ASCII rows in both real libraries, measured 2026-09-11. macOS often writes file names in NFD, and on the maintainer's USB drive (exFAT) 6 files are on disk in a different normalization form from the path Engine stored for them.

On macOS this does no harm. Name lookup is normalization-insensitive on APFS and on exFAT through FSKit…

Read the thread · 2026-09-11 · closed · outside contributor · 0 comments

Expose Track.streamingSource, uri and streamingFlags as optional fields

Track carries streamingSource (TEXT), uri (TEXT) and streamingFlags (INTEGER). Nothing in src/ references them, so no tool can show them.

Reported externally, not reproducible here (no Dropbox library, no Prime hardware): these columns decide whether Engine OS streams a track from Dropbox, and a local library that kept stale Dropbox values after a migration showed every track red on the hardware while audit_library reported it healthy. If that is right, a user cannot even see why…

Read the thread · 2026-09-11 · closed · outside contributor · 0 comments

Most recent

Default library choice is ambiguous when two libraries tie on track count

With no library argument, the server picks "the supported library with the most tracks". When two libraries hold the same number of tracks, that rule names no winner and the outcome falls out of row order.

Observed 2026-09-01

/Users/venut/Music/Engine Library      257 tracks  uuid 7e6b0bf5-…
/Volumes/VENUTDISK/Engine Library      257 tracks  uuid c24e09d2-…

A tie, and not an exotic one: the USB library and its copy on the computer are the normal setup for anyone who gigs off a…

Read the thread · 2026-09-01 · closed · outside contributor · 0 comments

undo is scoped to one library; Engine can copy the edit to another

undo reverses the edit in the library it was made in. It cannot reverse what Engine DJ then copies to another connected library, and today nothing says so.

Observed 2026-09-01, on the real libraries

time action Mac library USB library
00:15 add_tracks_to_playlist on the Mac library, playlist 27 6 5
03:33 user launched Engine DJ with the USB drive connected 6 6
13:20 ran the returned undo (Mac library) 5 6

The USB…

Read the thread · 2026-09-01 · closed · outside contributor · 0 comments

Play history: expose what was actually played, from hm.db

Engine keeps a play history in Database2/hm.db, alongside the m.db this server already reads. Nothing exposes it. It is the last piece of Engine's own data the server does not surface — an inventory of Track's 43 columns and the sibling databases found everything else either already exposed or empty (itm.db, rbm.db, sm.db, stm.db, trm.db each hold a single Information row on the library measured).

The library tells you what you have. History tells you what you did, and no…

Read the thread · 2026-08-24 · open · outside contributor · 0 comments

The remaining reports are on the project's issue tracker.