Skip to content

fix: Files don't update when external downloads complete (Chrome, etc.) #194

@BrianLeishman

Description

@BrianLeishman

Summary

When downloading files via Chrome (or other apps), the file doesn't update in Marlin when the download completes. The temporary/partial download file remains shown instead of the final file.

Current Behavior

  • Chrome downloads show as .crdownload files (or similar temp files)
  • When download completes, Chrome renames the file to its final name
  • Marlin doesn't reflect this change - still shows the old temp file
  • May need to manually refresh to see the real file

Expected Behavior

  • File watcher should detect the rename/replacement
  • UI should update automatically to show the final file
  • Thumbnail should generate for the new file type

Likely Causes

  1. File watcher not catching renames: May only watch for create/delete, not rename events
  2. Debouncing too aggressive: Change events may be getting dropped
  3. Temp file delete + new file create: If Chrome deletes temp and creates new (vs rename), both events need handling
  4. Platform-specific: Different behavior on macOS/Windows/Linux file watchers

Files to Investigate

  • File watcher implementation in Rust backend
  • How rename events are handled vs create/delete
  • Debouncing/batching logic for file system events

Test Cases

  • Chrome .crdownload → final file
  • Firefox .part → final file
  • Safari download completion
  • Any app that writes to temp then renames

Acceptance Criteria

  • Chrome downloads update automatically when complete
  • Other browser downloads work similarly
  • No manual refresh needed
  • Thumbnail generates for the final file
  • Works on macOS, Windows, and Linux

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions