Skip to content

feat: batch initial file load and improve progress messaging#1399

Merged
pfitzseb merged 3 commits into
mainfrom
sp/progress-fixes
Jul 9, 2026
Merged

feat: batch initial file load and improve progress messaging#1399
pfitzseb merged 3 commits into
mainfrom
sp/progress-fixes

Conversation

@pfitzseb

@pfitzseb pfitzseb commented Jul 8, 2026

Copy link
Copy Markdown
Member

pfitzseb and others added 3 commits July 8, 2026 17:23
The JuliaWorkspaces progress callback reports
(key, message, percentage) per operation; a worker task keeps one
work-done-progress token per key, so concurrently running operations
(cache downloads, indexing different projects, loading caches) each get
their own client progress bar with the full 0-100 range. A report with
percentage >= 100 ends its key's bar and queues the diagnostics
refresh; ending a key without an open bar is a no-op.

The callback itself only enqueues reports and never blocks: it is
invoked from the JuliaWorkspaces dynamic-feature reactor, which must
not stall on the blocking window/workDoneProgress/create client
round-trip. Reports arriving while a token is being created queue up
and are delivered in order.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Every file used to be added via add_file!, each call re-deriving the
required dynamic projects and draining dynamic results. Collecting the
files first and adding them with one add_files! call makes the initial
load linear and lets cache downloading/indexing start right after the
batch instead of after the whole per-file load. Also yield while
walking workspace folders so other tasks (the dynamic-feature reactor,
the client connection) stay responsive.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@pfitzseb pfitzseb merged commit 0944e17 into main Jul 9, 2026
20 of 21 checks 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