Priority
P0 — sync correctness
Problem
GitLab exposes multiple identifiers with different meanings, including blob IDs and commit revisions. The current sync model may treat last_commit_id, tree entry id, and lastSyncedSha as interchangeable.
This can produce false remote-conflict detection across workflows, for example:
single pull stores commit SHA
→ local file changes
→ batch push compares against blob SHA
→ identifiers differ even when the remote blob is unchanged
Plan
Required regression scenario
single pull
→ local edit
→ batch push
→ no false remote conflict
Acceptance criteria
- Blob identity and commit revision have explicit, separate types and fields.
- GitLab behavior is consistent between
getFile, tree listing, and batch operations.
- Cross-flow tests cover single/batch transitions.
- Existing GitHub and Gitea behavior remains unchanged.
Priority
P0 — sync correctness
Problem
GitLab exposes multiple identifiers with different meanings, including blob IDs and commit revisions. The current sync model may treat
last_commit_id, tree entryid, andlastSyncedShaas interchangeable.This can produce false remote-conflict detection across workflows, for example:
Plan
GitFile.shaas the remote blob/content identity across all providers.blob_idfor file content identity.Required regression scenario
Acceptance criteria
getFile, tree listing, and batch operations.