* fix(files): guard file polling races
- Ignore sub-millisecond mtime jitter on a same-size file so an unchanged
open file no longer loops through reload and flickers.
- Swap externally changed text content into the open editor in place
instead of clearing the loaded path and showing the load spinner.
- Read content only after metadata changed, confirm it with a second
read, and skip the swap when the file is unchanged, the buffer is
dirty, or a newer local write landed.
- Keep the stat baseline unchanged when a poll cannot observe content so
a failed read is retried rather than treated as unchanged.
- Fall back to a full reload for images, PDFs, binaries, and files above
the content-poll byte limit, and when a poll returns binary content.
- Serialize polls and dispose the poller on unmount, file switch, and
directory change.
- Add a `fresh` file read option that bypasses the content cache and the
HTTP cache.
* fix(files): invalidate stale polls after diagram saves
---------
Co-authored-by: Bohdan Triapitsyn <artmore@protonmail.com>