firstsun-dev_git-files-sync/tests
ClaudiaFang c7ae0f6754 perf(push): parallelize blob creation within a batch commit
User reported push-all was still slow on GitHub after the one-
commit-per-run batching landed. Root cause: GitHubService/
GiteaService.pushBatch still created each file's blob with a
sequential for loop -- one POST .../git/blobs awaited fully before
the next started -- so wall-clock time was still O(N) round trips of
pure latency even though only one commit came out the other end.

- Add BaseGitService.mapWithConcurrency<T,R>: an order-preserving,
  bounded-concurrency mapper (worker-pool over a shared cursor).
- Add BLOB_CREATE_CONCURRENCY = 8 alongside MAX_BATCH_PUSH_SIZE.
- GitHubService/GiteaService.pushBatch now create blobs via
  mapWithConcurrency instead of a for loop; the tree/commit/ref
  sequence after it is unchanged since each step genuinely depends on
  the previous one's result.
- GitLab is unaffected -- its pushBatch already sends the whole batch
  in one Commits API request, no per-file blob step to parallelize.

Added a regression-guard test: deferred blob-response promises that
only resolve after every blob POST has been dispatched, so a
reintroduced sequential loop deadlocks the test instead of silently
passing.

Evidence: npx eslint . -> 0 errors; npm run build -> clean;
npx vitest run -> 340/340 passed.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-14 10:40:48 +00:00
..
i18n feat: add i18n (multi-language) support (#38) 2026-07-13 14:28:18 +00:00
logic perf(push): batch-commit push-all files + SHA-based diffing 2026-07-14 09:58:06 +00:00
services perf(push): parallelize blob creation within a batch commit 2026-07-14 10:40:48 +00:00
ui feat(ui): show connection status in the global status bar 2026-07-14 10:40:12 +00:00
utils feat: show new feature tips after update 2026-07-13 13:56:38 +00:00
changelog.test.ts feat: show new feature tips after update 2026-07-13 13:56:38 +00:00
setup.ts test: add SyncStatusView coverage for the delete-path and folder-collision fixes 2026-07-14 09:25:43 +00:00