A file manager knows where a file is. An asset library also knows what you said about it: its tags, its category, which bundle it belongs to and which projects use it. The moment someone renames that file in Explorer or Finder, those two views of the world disagree.
AssetHoard is a local-first desktop asset manager for indie game devs, built in Rust and Tauri. Watched folders let you point it at directories you already organise by hand, and it keeps the library in step. Version 0.2.4 rewrites how watched folders handle files that change underneath them.
The cases that break naive watching
A file watcher reports events. Turning those events into "this is the same asset as before" is where it gets interesting.
Renames and moves. The event stream for a move is not always a tidy rename. Moves across directories, or batches of them from a sync tool, can arrive as separate removals and creations. In 0.2.4 the asset is the thing being preserved, so tags, category, bundle and project links follow the file to its new path. Mirrored bundles move with their folders.
Case-only renames. Renaming Rock.png to rock.png is a real rename, but a case-insensitive comparison sees no change at all. These now keep their metadata too.
Changes made while the app was closed. There are no events to listen to when nothing is running. AssetHoard now recognises moves made while it was closed. Existing libraries are catalogued in the background after the update.
Saving over a file. Plenty of tools save by writing a new file and replacing the old one. To a watcher, that looks like a deletion. AssetHoard now waits briefly before marking anything missing, so a save does not flag the asset.
Disconnected drives. An unplugged external drive is not a deleted library. Assets on a disconnected drive or network share are paused rather than marked missing, and if the drive comes back under a different letter, AssetHoard picks it up again.
Nested watched folders. Watch Assets/ and also Assets/Characters/, and two watchers claim the same files. The rule now is that the innermost watched folder owns its files, and you get a preview with exact counts before anything moves.
The limit: network drives
Live rename and move tracking depends on the operating system sending file change events. Network drives over SMB or UNC paths do not provide them, so they do not get live tracking. They still pause cleanly when they disconnect.
Also in 0.2.4
- 3D model thumbnails generate around 20x faster on import.
- Most image thumbnails are now generated after import, so imports finish much sooner.
- Re-importing a changed file updates the existing asset instead of creating a duplicate.
- The search index is reused on launch instead of rebuilt, and text search no longer waits for image search.
Everything else is in the 0.2.4 release notes, and setup is covered in the watched folders docs. AssetHoard is free to download during the open beta.
If you have built file watching into a desktop app, I would like to hear how you handled renames and saves that replace files.
Top comments (0)