Skip to content

feat: add configurable repository refresh throttling - #2838

Open
tib8 wants to merge 1 commit into
sourcegit-scm:developfrom
tib8:refresh-throttling
Open

tib8 wants to merge 1 commit into
sourcegit-scm:developfrom
tib8:refresh-throttling

Conversation

@tib8

@tib8 tib8 commented Oct 29, 2026

Copy link
Copy Markdown

Continuous filesystem activity during a build can repeatedly trigger repository refreshes and interrupt the UI with a busy indicator. Wait until filesystem events have been quiet for a configurable interval before running any pending automatic refreshes; each relevant event restarts the shared waiting period.

Add a Refresh throttling slider below History Commits in Preferences → GENERAL, ranging from 0 to 5000 ms in 100 ms steps, with a default of 1000 ms. Zero disables the additional delay. The preference is persisted and applies to open repositories, including watcher overflow recovery.

Validation:

  • dotnet build src/SourceGit.csproj --no-restore — passed with no warnings or errors.
  • dotnet format --verify-no-changes --no-restore src/SourceGit.csproj --include src/Models/Watcher.cs src/ViewModels/Preferences.cs — passed.
  • dotnet run --project tests/WatcherChecks/WatcherChecks.csproj --no-restore — passed; covers event bursts across refresh categories, ignored paths, zero and maximum delays, setting changes, watcher locks, and overflow recovery.

This branch has not been deployed

No deployments
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