Skip to content

fix: stop synthesizing omitted sync conflicts - #1158

Merged
LeviXIII merged 4 commits into
mainfrom
fix-sync-issue
Sep 9, 2026
Merged

fix: stop synthesizing omitted sync conflicts#1158
LeviXIII merged 4 commits into
mainfrom
fix-sync-issue

Conversation

@TimRl

@TimRl TimRl commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

fix: stop synthesizing omitted sync conflicts

Summary

Prevent Codex from turning diagnostic paths omitted from Frontier’s conflict list into fabricated conflicts. This previously caused remote files to be materialized, processed, and potentially committed as local work.

This PR works with the corresponding Frontier changes, which provide authoritative conflict information and the Git snapshot used during analysis.

Changes

  • Use remoteChangedFilePaths as the authoritative conflict-list diagnostic.
  • Stop using allChangedFilePaths, which also contains local-only changes.
  • Retry safely when Frontier’s remote-change diagnostics disagree with its conflict list.
  • Never synthesize missing conflicts or write guessed remote content into the working tree.
  • Complete divergent histories even when Frontier resolved every change and Codex has zero file resolutions.
  • Pass the analyzed local, remote, and merge-base commits back to Frontier during merge completion.
  • Optimize stream-only post-sync cleanup by filtering existing pointer stubs before replacement.
  • Preserve compatibility cleanup when upload information is empty or omitted.
  • Continue processing media explicitly reported as uploaded.

Test Checklist

  • Path normalization covers separators, prefixes, and Unicode.
  • Missing conflict entries stop safely without synthesizing files.
  • A large omitted remote set is never materialized.
  • Empty and omitted LFS upload reports retain compatibility cleanup.
  • Existing pointer stubs are excluded from expensive replacement.
  • Explicitly uploaded media is still converted back to pointers.
  • npm run compile
  • npm run lint
  • Extension test suite: 1,513 passing, 10 pending

Fail safely when Frontier diagnostics and its conflict list disagree instead of materializing guessed files. Complete divergent histories even when Frontier resolves every path without client-side file resolutions.
@TimRl TimRl self-assigned this Sep 1, 2026
TimRl and others added 3 commits September 1, 2026 13:52
Forward Frontier's analyzed Git heads through merge completion so history changes are rejected before stale resolutions can be committed.
Filter already-correct LFS pointer stubs with a batched native filesystem scan before post-sync replacement. Preserve cleanup for project swaps, older Frontier responses, and explicitly uploaded media.

Add regression coverage for empty, omitted, and populated upload reports.
…arker

Add a new MERGE_STATE_CHANGED marker to identify cross-repo sync issues when local or remote branches change during conflict resolution. Update the isRetriableSyncError function to classify this error as retriable. Include tests to ensure correct behavior and compliance with frontier-authentication. This improves the robustness of the sync process by allowing retries in specific transient error scenarios.

@LeviXIII LeviXIII left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Syncing at same time works as well.

@LeviXIII
LeviXIII merged commit a130e3e into main Sep 9, 2026
5 of 6 checks passed
@LeviXIII
LeviXIII deleted the fix-sync-issue branch September 9, 2026 18:25
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.

2 participants