firstsun-dev_git-files-sync/tests
ClaudiaFang 114a5759a7 perf(push): GitHub batch push/delete via GraphQL createCommitOnBranch
GitHubService.pushBatch/deleteBatch previously created each file's blob
with a REST POST .../git/blobs call before the tree/commit/ref sequence,
so an N-file batch still cost N/8 rounds of latency-bound round trips even
with concurrency. Switched to GitHub's createCommitOnBranch GraphQL
mutation, which carries file content directly in the request body,
cutting an N-file batch to 2-3 HTTP calls total.

- Extracted BaseGitService.getLatestCommitSha from resolveGitHubStyleBaseTree,
  which is still used by pushSymlink (GraphQL's FileAddition has no file-mode
  field) and Gitea's batch methods (no GraphQL API).
- Added explicit handling for GraphQL's 200-status-with-errors-array failure
  mode, which REST's status-code check can't catch.
- Verified against a live GitHub repo: pushBatch/deleteBatch each produced
  one commit with correct content and blob shas.
2026-07-14 11:52:58 +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): GitHub batch push/delete via GraphQL createCommitOnBranch 2026-07-14 11:52:58 +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