-
Notifications
You must be signed in to change notification settings - Fork 7
Closed
Labels
Description
Context
UpdateChecker.checkPackUpdates() runs git ls-remote serially for each pack. With N packs, this takes O(N × RTT). The SessionStart hook has a 30-second timeout — with 5+ packs on a slow connection, serial calls could exhaust the budget.
Currently mitigated by the 7-day cache (network checks are rare), but when they do run, parallelism would reduce latency.
Proposed Change
Use DispatchQueue.concurrentPerform(iterations:execute:) or Swift concurrency (withTaskGroup) to run git ls-remote calls in parallel. Each call is independent — no shared mutable state.
Considerations
- Swift 6 concurrency safety:
PackEntryisSendable(allletfields),ShellRunnerneeds verification - Per-process timeout on individual
git ls-remoteinvocations (currently none) - Thread-safe result collection
Reactions are currently unavailable