This release adds 4 notable features for engineering teams evaluating rollout.
✓ No known CVEs patched in this version
Topics
+2 more
Affected surfaces
Summary
AI summaryAdded a verbose flag, dry‑run mode for mount, runtime telemetry opt‑in, and scan progress indicator among other improvements.
Full changelog
musefs v1.1.0 — a feature and hardening release on top of v1.0.0. No breaking
changes; the read-only, byte-identical-audio invariant is unchanged.
Full detail in the CHANGELOG
and the documentation changelog.
Added
-v/--verboseflag onscanandmount(-vinfo,-vvdebug,-vvv
trace; defaultwarn) so diagnosing a run no longer requires knowingRUST_LOG
(an explicitRUST_LOGstill wins).mount --dry-runvalidates the--templateand configuration and prints a
sample of the paths the mount would expose (with file/dir counts), then exits
without mounting.- Runtime telemetry (
.musefs-metrics) — opt-in--expose-metrics
(envMUSEFS_EXPOSE_METRICS) surfaces a synthetic Prometheus-format metrics
file at the mount root: getattr/read/open activity, read-ahead behavior, and
(with jemalloc) allocator stats. Off by default
(docs, #394). - Scan progress indicator —
scan/scan --revalidaterender a live progress
bar on a terminal, falling back to periodicingested N/M (P%)log lines when
non-interactive; new--quiet/-qsuppresses it (#406). --skip-on-missingtemplate flag (envMUSEFS_SKIP_ON_MISSING) drops a
track from the mount when a top-level template field stays unresolved, instead
of substituting--default-fallback— e.g.--template '$!{beets_path}' --skip-on-missinghides tracks beets left without abeets_path(#408).--read-ahead-prefetchflag — opt-in background prefetch threads layered on
read amplification, default off (amplification alone captures the win; the
threads add ~10% overhead with no measured benefit) (#255).- riscv64 release platform — prebuilt
riscv64gc-unknown-linux-{gnu,musl}
binaries andlinux/riscv64Docker images now ship with each release. statfsreply — the mount reports a synthetic non-zero capacity sodfno
longer shows a 0-byte filesystem and capacity-checking importers (Lidarr et al.)
don't balk (#368).- Per-extension skip breakdown at end of scan (e.g.
skipped 42: jpg=20, cue=10, log=8, <none>=4), logged atwarn(#341). musefs vacuumcommand — compact the SQLite store (VACUUM+ WAL
checkpoint), reclaiming free pages left by prunes, orphan-art GC, and the schema
migration; run while unmounted (#566).
Changed
- Declared MSRV (
rust-version = "1.95") — a too-old toolchain now fails with
a clear cargo message; best-effort, not CI-gated. - Supply-chain license gate — a
deny.toml+cargo denyCI job enforces a
permissive-license allow-list, closing the gap left by advisory-only
cargo audit. - Strict template validation — an unclosed
[ … ]section or unterminated
${/$!{field is rejected at mount time with a message naming the problem,
instead of silently folding the rest of the template into the open construct.
Fixed
- Clearer mount errors — a missing or non-directory mountpoint is reported
with an actionable message before FUSE setup (previously a bareos error 2, or
a misleading "Permission denied" for a regular-file path); I/O errors no longer
print their OS string twice. - Silent mp4 oversize drops — oversized embedded
covrart and binary
freeform (----) values in.m4a/.m4bare skipped in the format layer and
now emit awarnline each, matching the other formats (#343). - xattr log noise —
getxattr/listxattr/setxattr/removexattrnow reply
ENOTSUPexplicitly instead of logging a[Not Implemented]warn on every
xattr probe (ls -l, indexers, backup tools); caller-visible result unchanged
(#364).
Prebuilt binaries for v1.1.0. Verify with: sha256sum -c <file>.sha256
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About Musefs
All releases →Related context
Related tools
Beta — feedback welcome: [email protected]