mirror of
https://github.com/stablyai/orca.git
synced 2026-09-22 16:02:32 +00:00
* Create PRs directly from Source Control - Replace the modal flow with an inline PR composer in the sidebar - Keep PR creation state and validation scoped per worktree - Rename the recovery action to clarify it only pushes before creating PRs * Clean up fork PR remotes after worktree deletion - Track Orca-created push target remotes in worktree metadata - Reuse ownership markers when later worktrees share the same fork remote - Fetch only the selected PR base instead of every remote before drafting PRs - Mirror local branch cleanup for SSH worktree deletion * Stabilize pull request creation flow - Keep PR actions and composer fields locked while generation or creation is in flight - Refresh git status, branch comparison, and history after remote actions settle - Disable push-only actions on diverged branches so users sync first * Make PR context generation read-only - Stop rebasing or probing HEAD before collecting PR draft context - Allow git operations on known repo roots without refreshing worktree cache Co-authored-by: Orca <help@stably.ai> * fix: address review findings --------- Co-authored-by: Orca <help@stably.ai>
21 lines
594 B
TypeScript
21 lines
594 B
TypeScript
import type { GitUpstreamStatus } from './git-status-types'
|
|
|
|
export function upstreamOnlyCommitsArePatchEquivalent(cherryMarkOutput: string): boolean {
|
|
const lines = cherryMarkOutput
|
|
.split(/\r?\n/)
|
|
.map((line) => line.trim())
|
|
.filter(Boolean)
|
|
return lines.length > 0 && lines.every((line) => line.startsWith('='))
|
|
}
|
|
|
|
export function shouldForcePushWithLeaseForUpstream(
|
|
status: GitUpstreamStatus | undefined
|
|
): boolean {
|
|
return (
|
|
status?.hasUpstream === true &&
|
|
status.ahead > 0 &&
|
|
status.behind > 0 &&
|
|
status.behindCommitsArePatchEquivalent === true
|
|
)
|
|
}
|