Skip to content

fix: keep the syncing file name visible during bulk syncs - #138

Merged
ilyaZar merged 1 commit into
devfrom
fix-syncing-file-name-visibility
Nov 6, 2026
Merged

ilyaZar merged 1 commit into
devfrom
fix-syncing-file-name-visibility

Conversation

@ilyaZar

@ilyaZar ilyaZar commented Nov 5, 2026

Copy link
Copy Markdown
Member

Fixes #137.

During bulk pulls the folder card's activity line stayed blank or frozen because the core's event loop blocked on HTTP calls that are redundant during a pull. Details and measurements are in #137.

Changes:

  • skip localIndex lookups and rescans for files ItemFinished already reported in the last 30 s; local changes are still classified and rescanned as before
  • run directory rescans in a goroutine; /rest/db/scan waits for the pull and blocked the loop until the 8 s response timeout
  • handle file events before the refresh in the event loop
  • keep the last finished file name for 1.5 s when no other file is active, so files that start and finish within one batch still appear
  • Omarchy only: keep the single folder card alive instead of letting the Repeater rebuild it on every status update; drop the now unused visibleFolderRows
  • bundled binaries and checksums rebuilt

Caelestia and Dux Shell get the core fixes and needed no QML change; they do not rebuild their card.

Testing

  • new TestLastFileStaysVisibleBriefly and TestLocalIndexSkipsFilesAlreadyReportedFinished; TestLocalIndexUsesCurrentFileInformation now waits for the background rescan
  • go -C core test -race ./... passes
  • packaging/bundled/build.sh with go1.23.12 reproduces the committed checksums
  • tests/architecture.test.sh and tests/native-core-architecture.test.sh pass
  • measured on a 3,348-item pull: the line shows a current file 99.3-99.7% of the time (was 5.1%), longest blank 0.3-0.7 s, name lag p90 under 0.5 s
  • local changes during idle: a new file in a new directory and a deletion (Removing README.md) still show
  • checked on the Omarchy panel during a real pull

- skip lookups and rescans for files Syncthing already reported finished;
  they blocked the event loop for up to minutes during a pull
- run directory rescans in the background; the scan request waits for the
  pull and hit the 8 s response timeout
- report file events before refreshing, and keep the last name for 1.5 s
  when a file starts and finishes within one batch
- keep the Omarchy folder card alive instead of rebuilding it per update
- rebuild bundled binaries and checksums
@ilyaZar
ilyaZar merged commit 1bc6009 into dev Nov 6, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant