fix: workspace sync gaps and stuck-loading tabs - #24
Merged
Conversation
Rescan the active root on launch, workspace switch, and window focus (stale-while-revalidate over the scan cache), so files changed while the app was closed or a workspace was inactive appear without a manual refresh. Fold modify events into the rescan path so in-place edits refresh titles, tags, and search, and treat the watcher's other/any rescan sentinels as rescan triggers instead of dropping them. Attach fs watches with bounded retries and a warning on failure, and add explicit fs scope entries for the registry directory: the unix scope glob requires a literal leading dot, so $HOME/** never matched ~/.docsreader and the registry watch failed silently on every launch. Fixes #18, fixes #19, fixes #22
…d files Reject phase names that collide with the scanner's pruned directory names (build, dist, target, venv): docs written there succeeded via MCP but could never appear in the GUI. Validation reads the same SKIP_DIRS list the scanner uses, so the two cannot drift. Follow symlinks when scanning (walkdir detects loops and reports them as errors), and count walker errors, unreadable files, and oversize files into a new skipped field on ScanResult instead of dropping them silently. The explorer footer shows the skipped count when nonzero. Fixes #20, fixes #21
A read that blocks at the OS level (cloud placeholder, unreachable mount, special file) never settles, pinning the tab on Loading forever. Race each load against a 15s timeout that surfaces a retryable error, guard timeout and completion ordering with a per-tab load sequence, and make re-activating an errored tab retry the load. Fixes #23
This was referenced Jul 18, 2026
Closed
Closed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Resolves the reported "files don't sync" and "stuck on Loading" feedback. Every bug was reproduced live against a release build before fixing, and every fix was re-verified live afterward (screenshots in the linked issues).
Changes
Workspace sync (
useLibrary)other/anyrescan sentinels (FSEvents overflow) trigger a rescan instead of being dropped.$HOME/.docsreaderentries: the unix scope glob requires a literal leading dot, so$HOME/**never matched the registry directory and its watch failed on every launch.Scanner and writes (core)
validate_phaserejects phase names that collide with the scanner's pruned directories (build,dist,target,venv), reading the sameSKIP_DIRSlist the scanner uses.skippedfield onScanResult, surfaced in the explorer footer.Tabs (
useTabs)Validation
tsc --noEmitclean, release build clean.HOME: launch catch-up, live registry sync without focus, symlink visibility, in-place title refresh, and the read-timeout error were all confirmed against the rebuilt binary.Fixes #18
Fixes #19
Fixes #20
Fixes #21
Fixes #22
Fixes #23