.changelog/3455.md
NSFileProviderReplicatedExtension; browse your library by system folder and access individual ROM files.contents writes (content replacement is unsafe while the item identifier is MD5-based); removed .allowsWriting capability accordingly; fixed createItem to use strong self capture so the completion handler is always invoked; wires progress cancellation handler to cancel the underlying import task; full filename sanitization (path-traversal stripping, colon/slash replacement, control-char removal, whitespace normalisation) applied consistently to both import and rename paths so on-disk names match display names; returns .filenameCollision error when a rename conflicts with an existing file; hashes source ROM before copying to avoid unnecessary IO for duplicates; adds explicit Task.checkCancellation() checks so cancellations terminate promptly; uses no-copy buffer for streaming MD5 to avoid per-chunk allocations