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

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions