Skip to content

[T3 Code] Surface rebase conflict status in git actions#5447

Open
yunrongy424-oss wants to merge 1 commit into
UnsafeLabs:mainfrom
yunrongy424-oss:codex/t3-rebase-conflicts-823
Open

[T3 Code] Surface rebase conflict status in git actions#5447
yunrongy424-oss wants to merge 1 commit into
UnsafeLabs:mainfrom
yunrongy424-oss:codex/t3-rebase-conflicts-823

Conversation

@yunrongy424-oss
Copy link
Copy Markdown

@yunrongy424-oss yunrongy424-oss commented May 28, 2026

Summary

  • add optional conflict metadata to VCS status results for active merge/rebase/cherry-pick/revert states
  • detect unmerged files from git porcelain v2 output and expose the active conflict operation through GitManager status
  • block commit/push/PR UI actions while conflicts remain and show a conflict-resolution hint

Testing

  • node node_modules/oxfmt/bin/oxfmt --check apps/server/src/git/GitManager.ts apps/server/src/vcs/GitVcsDriverCore.ts apps/server/src/vcs/GitVcsDriverCore.test.ts apps/web/src/components/GitActionsControl.logic.ts apps/web/src/components/GitActionsControl.logic.test.ts apps/web/src/components/GitActionsControl.tsx packages/contracts/src/git.ts
  • node node_modules/typescript/bin/tsc -p packages/contracts/tsconfig.json --noEmit
  • node node_modules/typescript/bin/tsc -p apps/server/tsconfig.json --noEmit
  • node node_modules/typescript/bin/tsc -p apps/web/tsconfig.json --noEmit
  • node node_modules/vitest/vitest.mjs run apps/server/src/vcs/GitVcsDriverCore.test.ts --config vitest.config.ts
  • node ../../node_modules/vitest/vitest.mjs run src/components/GitActionsControl.logic.test.ts

Refs #823

Expose unresolved git conflicts in the VCS status contract so RPC clients can distinguish ordinary working tree changes from active merge or rebase conflicts. Detect unmerged files from porcelain status and report the current conflict operation.

Block Git UI actions while conflicts remain and show a focused resolution hint instead of letting commit, push, or PR flows proceed with an ambiguous dirty state.

Refs UnsafeLabs#823
Co-Authored-By: Codex <noreply@openai.com>
Copy link
Copy Markdown

@zhangjiayang6835-cyber zhangjiayang6835-cyber left a comment

Choose a reason for hiding this comment

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

PR Review: #5447 — Surfaces rebase conflict status

What looks correct:

  • The approach of adding conflict metadata to VcsStatus is clean and minimal
  • Tests are included for the new conflict detection logic
  • The porcelain v2 parsing approach is correct for detecting unmerged files

What needs improvement:

  • The PR doesn't link to an issue. Please reference the relevant issue number so maintainers can track the bounty association.
  • The change adds is_conflicted boolean but doesn't expose which files have conflicts. Consider including the list of conflicted file paths.

Suggestions:

  • Add a .provenance.json file as required by the project's contributing guidelines

Overall: Clean implementation, just needs issue reference and provenance metadata.

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