refactor(renderer): remove the runtime-git-client barrel (#27977)

Co-authored-by: m4air <m4air@Mac.localdomain>
This commit is contained in:
OrcaWin
2026-10-12 06:21:07 -07:00
committed by GitHub
co-authored by m4air
parent 5763792718
commit 6be60909c7
68 changed files with 124 additions and 168 deletions
@@ -10,7 +10,7 @@ import {
import { useAppStore } from '@/store'
import { getConnectionId } from '@/lib/connection-context'
import { findWorktreeById } from '@/store/slices/worktree-helpers'
import { getRuntimeGitRemoteFileUrl } from '@/runtime/runtime-git-client'
import { getRuntimeGitRemoteFileUrl } from '@/runtime/runtime-git-working-tree-client'
import { formatPathLineReference } from './line-copy-path'
import { translate } from '@/i18n/i18n'
@@ -4,7 +4,7 @@ import {
getRuntimeGitBranchDiff,
getRuntimeGitCommitDiff,
getRuntimeGitDiff
} from '@/runtime/runtime-git-client'
} from '@/runtime/runtime-git-diff-client'
import type { OpenFile } from '@/store/slices/editor'
import type {
GitBranchChangeEntry,
@@ -30,12 +30,12 @@ vi.mock('@/runtime/runtime-file-read-client', () => ({
}))
vi.mock('@/runtime/runtime-file-watch-client', () => ({ subscribeRuntimeFileChanges: vi.fn() }))
vi.mock('@/runtime/runtime-git-client', () => ({
vi.mock('@/runtime/runtime-git-diff-client', () => ({
getRuntimeGitBranchDiff: mocks.getRuntimeGitBranchDiff,
getRuntimeGitCommitDiff: vi.fn(),
getRuntimeGitDiff: mocks.getRuntimeGitDiff,
getRuntimeGitScope: vi.fn(() => null)
getRuntimeGitDiff: mocks.getRuntimeGitDiff
}))
vi.mock('@/runtime/runtime-git-client-context', () => ({ getRuntimeGitScope: vi.fn(() => null) }))
vi.mock('@/lib/connection-context', () => ({
getConnectionId: mocks.getConnectionId,
@@ -6,9 +6,9 @@ import { useAppStore } from '@/store'
import {
getRuntimeGitBranchDiff,
getRuntimeGitCommitDiff,
getRuntimeGitDiff,
getRuntimeGitScope
} from '@/runtime/runtime-git-client'
getRuntimeGitDiff
} from '@/runtime/runtime-git-diff-client'
import { getRuntimeGitScope } from '@/runtime/runtime-git-client-context'
import type { DiffContent, InFlightContentRead } from './editor-panel-content-types'
import { canUseChangesModeForFile } from './editor-panel-file-mode'
import type { EditorPanelContentLoadOptions } from './useEditorPanelExternalContentEvents'
@@ -26,12 +26,12 @@ vi.mock('@/runtime/runtime-file-read-client', () => ({
}))
vi.mock('@/runtime/runtime-file-watch-client', () => ({ subscribeRuntimeFileChanges: vi.fn() }))
vi.mock('@/runtime/runtime-git-client', () => ({
vi.mock('@/runtime/runtime-git-diff-client', () => ({
getRuntimeGitBranchDiff: vi.fn(),
getRuntimeGitCommitDiff: vi.fn(),
getRuntimeGitDiff: vi.fn(),
getRuntimeGitScope: vi.fn(() => null)
getRuntimeGitDiff: vi.fn()
}))
vi.mock('@/runtime/runtime-git-client-context', () => ({ getRuntimeGitScope: vi.fn(() => null) }))
vi.mock('@/lib/connection-context', () => ({
getConnectionId: vi.fn(() => null),
@@ -22,12 +22,12 @@ vi.mock('@/runtime/runtime-file-read-client', () => ({
}))
vi.mock('@/runtime/runtime-file-watch-client', () => ({ subscribeRuntimeFileChanges: vi.fn() }))
vi.mock('@/runtime/runtime-git-client', () => ({
vi.mock('@/runtime/runtime-git-diff-client', () => ({
getRuntimeGitBranchDiff: vi.fn(),
getRuntimeGitCommitDiff: vi.fn(),
getRuntimeGitDiff: vi.fn(),
getRuntimeGitScope: vi.fn(() => null)
getRuntimeGitDiff: vi.fn()
}))
vi.mock('@/runtime/runtime-git-client-context', () => ({ getRuntimeGitScope: vi.fn(() => null) }))
vi.mock('@/lib/connection-context', () => ({
getConnectionId: vi.fn(),
@@ -26,12 +26,12 @@ vi.mock('@/runtime/runtime-file-read-client', () => ({
}))
vi.mock('@/runtime/runtime-file-watch-client', () => ({ subscribeRuntimeFileChanges: vi.fn() }))
vi.mock('@/runtime/runtime-git-client', () => ({
vi.mock('@/runtime/runtime-git-diff-client', () => ({
getRuntimeGitBranchDiff: vi.fn(),
getRuntimeGitCommitDiff: vi.fn(),
getRuntimeGitDiff: vi.fn(),
getRuntimeGitScope: vi.fn(() => null)
getRuntimeGitDiff: vi.fn()
}))
vi.mock('@/runtime/runtime-git-client-context', () => ({ getRuntimeGitScope: vi.fn(() => null) }))
vi.mock('@/lib/connection-context', () => ({
getConnectionId: vi.fn(),
@@ -19,12 +19,12 @@ vi.mock('@/runtime/runtime-file-read-client', () => ({
}))
vi.mock('@/runtime/runtime-file-watch-client', () => ({ subscribeRuntimeFileChanges: vi.fn() }))
vi.mock('@/runtime/runtime-git-client', () => ({
vi.mock('@/runtime/runtime-git-diff-client', () => ({
getRuntimeGitBranchDiff: vi.fn(),
getRuntimeGitCommitDiff: vi.fn(),
getRuntimeGitDiff: mocks.getRuntimeGitDiff,
getRuntimeGitScope: vi.fn(() => null)
getRuntimeGitDiff: mocks.getRuntimeGitDiff
}))
vi.mock('@/runtime/runtime-git-client-context', () => ({ getRuntimeGitScope: vi.fn(() => null) }))
vi.mock('@/lib/connection-context', () => ({
getConnectionId: vi.fn(),
@@ -16,11 +16,8 @@ import {
getLocalProjectExecutionRuntimeContext,
getWslDistroFromPath
} from '@/lib/local-preflight-context'
import {
discoverRuntimeCommitMessageModels,
getRuntimeGitScope,
type RuntimeGitContext
} from '@/runtime/runtime-git-client'
import { discoverRuntimeCommitMessageModels } from '@/runtime/runtime-git-generation-client'
import { getRuntimeGitScope, type RuntimeGitContext } from '@/runtime/runtime-git-client-context'
import { callStructuredAgentSession } from '@/runtime/structured-agent-session-client'
import type {
AgentSessionModelCatalogResult,
@@ -19,10 +19,10 @@ const mocks = vi.hoisted(() => ({
callStructuredAgentSession: vi.fn()
}))
vi.mock('@/runtime/runtime-git-client', () => ({
discoverRuntimeCommitMessageModels: mocks.discoverRuntimeCommitMessageModels,
getRuntimeGitScope: vi.fn()
vi.mock('@/runtime/runtime-git-generation-client', () => ({
discoverRuntimeCommitMessageModels: mocks.discoverRuntimeCommitMessageModels
}))
vi.mock('@/runtime/runtime-git-client-context', () => ({ getRuntimeGitScope: vi.fn() }))
vi.mock('@/runtime/structured-agent-session-client', () => ({
callStructuredAgentSession: mocks.callStructuredAgentSession
@@ -82,7 +82,7 @@ vi.mock('@/components/confirmation-dialog-context', () => ({
useConfirmationDialog: () => vi.fn().mockResolvedValue(true)
}))
vi.mock('@/runtime/runtime-git-client', async (importOriginal) => {
vi.mock('@/runtime/runtime-git-working-tree-client', async (importOriginal) => {
const actual = await importOriginal<Record<string, unknown>>()
return {
...actual,
@@ -2,7 +2,7 @@
import { act, cleanup, renderHook } from '@testing-library/react'
import { afterEach, describe, expect, it, vi } from 'vitest'
import type * as RuntimeGitClient from '@/runtime/runtime-git-client'
import type * as RuntimeGitGenerationClient from '@/runtime/runtime-git-generation-client'
import type { RuntimeGeneratePullRequestFieldsResult } from '@/runtime/runtime-git-client-context'
import { useAppStore } from '@/store'
import { resolvePullRequestGenerationCancel } from '@/store/slices/pull-request-generation'
@@ -12,8 +12,8 @@ const runtime = vi.hoisted(() => ({
generate: vi.fn()
}))
vi.mock('@/runtime/runtime-git-client', async (importOriginal) => {
const original = await importOriginal<typeof RuntimeGitClient>()
vi.mock('@/runtime/runtime-git-generation-client', async (importOriginal) => {
const original = await importOriginal<typeof RuntimeGitGenerationClient>()
return {
...original,
cancelRuntimeGeneratePullRequestFields: runtime.cancel,
@@ -5,9 +5,9 @@ import { useAppStore } from '@/store'
import { getConnectionId } from '@/lib/connection-context'
import {
generateRuntimePullRequestFields,
cancelRuntimeGeneratePullRequestFields,
type RuntimeGeneratePullRequestFieldsOverrides
} from '@/runtime/runtime-git-client'
cancelRuntimeGeneratePullRequestFields
} from '@/runtime/runtime-git-generation-client'
import type { RuntimeGeneratePullRequestFieldsOverrides } from '@/runtime/runtime-git-client-context'
import type { ChecksPanelReviewState } from './use-checks-panel-review-state'
import type { ChecksPanelControllerState } from './use-checks-panel-controller-state'
import { stripBaseRef } from '../create-pull-request-base-ref-normalization'
@@ -9,7 +9,12 @@ const mocks = vi.hoisted(() => ({
getRuntimeGitUpstreamStatus: vi.fn()
}))
vi.mock('@/runtime/runtime-git-client', () => mocks)
vi.mock('@/runtime/runtime-git-status-client', () => ({
getRuntimeGitStatus: mocks.getRuntimeGitStatus
}))
vi.mock('@/runtime/runtime-git-sync-client', () => ({
getRuntimeGitUpstreamStatus: mocks.getRuntimeGitUpstreamStatus
}))
import { useChecksPanelGitStatusEffects } from './use-checks-panel-git-status-effects'
import { deferred, flush, mountProbe, unmountProbes } from '../source-control-hook-test-harness'
@@ -1,5 +1,6 @@
import { useEffect, useRef } from 'react'
import { getRuntimeGitStatus, getRuntimeGitUpstreamStatus } from '@/runtime/runtime-git-client'
import { getRuntimeGitStatus } from '@/runtime/runtime-git-status-client'
import { getRuntimeGitUpstreamStatus } from '@/runtime/runtime-git-sync-client'
import {
buildChecksPanelEligibilityGitFingerprint,
shouldClearChecksPanelGitStatusSnapshot,
@@ -2,7 +2,8 @@ import { useCallback } from 'react'
import { useAppStore } from '@/store'
import { buildGitHubPRRefreshStateClearToken } from '@/store/github/pr-refresh-state'
import { refreshHostedReviewCard } from '@/store/slices/hosted-review-card-refresh'
import { getRuntimeGitStatus, getRuntimeGitUpstreamStatus } from '@/runtime/runtime-git-client'
import { getRuntimeGitStatus } from '@/runtime/runtime-git-status-client'
import { getRuntimeGitUpstreamStatus } from '@/runtime/runtime-git-sync-client'
import {
hasChecksPanelGitStatusBranchChanged,
readChecksPanelRefreshGitIdentitySnapshot,
@@ -28,7 +28,7 @@ import {
resolveSourceControlAiForOperation,
resolveSourceControlAiPrCreationDefaults
} from '../../../../../shared/source-control-ai'
import { getRuntimeGitScope } from '@/runtime/runtime-git-client'
import { getRuntimeGitScope } from '@/runtime/runtime-git-client-context'
import type { ChecksPanelReviewStateInput } from './review-state-dependencies'
export function useChecksPanelReviewState(model: ChecksPanelReviewStateInput) {
@@ -3,7 +3,7 @@ import type { RuntimeClientTarget } from '@/runtime/runtime-client-target'
import type {
RuntimeGeneratePullRequestFieldsOverrides,
RuntimeGitContext
} from '@/runtime/runtime-git-client'
} from '@/runtime/runtime-git-client-context'
import type { Repo } from '../../../../shared/repo-types'
import type { HostedReviewCreationEligibility } from '../../../../shared/hosted-review'
import type { SourceControlAiPrCreationDefaults } from '../../../../shared/source-control-ai-types'
@@ -1,4 +1,5 @@
import { getRuntimeGitStatus, getRuntimeGitUpstreamStatus } from '@/runtime/runtime-git-client'
import { getRuntimeGitStatus } from '@/runtime/runtime-git-status-client'
import { getRuntimeGitUpstreamStatus } from '@/runtime/runtime-git-sync-client'
import { getBranchLineTotalMergeBase } from './branch-line-total-request-gate'
import {
clearAutomaticPushTargetUpstreamStatusCache,
@@ -1,7 +1,7 @@
import { useCallback, useMemo, useState } from 'react'
import { toast } from 'sonner'
import { useAppStore } from '@/store'
import { getRuntimeGitScope } from '@/runtime/runtime-git-client'
import { getRuntimeGitScope } from '@/runtime/runtime-git-client-context'
import { getCommitMessageModelDiscoveryHostKeyForScope } from '../../../../../../shared/commit-message-host-key'
import {
DEFAULT_SOURCE_CONTROL_AI_PR_CREATION_DEFAULTS,
@@ -17,7 +17,9 @@ const mocks = vi.hoisted(() => ({
vi.mock('sonner', () => ({ toast: { error: mocks.toastError, dismiss: vi.fn() } }))
vi.mock('@/lib/connection-context', () => ({ getConnectionId: () => undefined }))
vi.mock('@/runtime/runtime-git-client', () => ({ bulkUnstageRuntimeGitPaths: vi.fn() }))
vi.mock('@/runtime/runtime-git-working-tree-client', () => ({
bulkUnstageRuntimeGitPaths: vi.fn()
}))
vi.mock('./discard-all-sequence', () => ({
getDiscardAllPaths: () => [],
runDiscardAllForArea: (area: DiscardAllArea, paths: readonly string[], deps: DiscardAllDeps) =>
@@ -22,7 +22,7 @@ vi.mock('@/components/editor/editor-autosave', () => ({
requestEditorSaveQuiesce: mocks.quiesce,
notifyEditorExternalFileChange: mocks.notify
}))
vi.mock('@/runtime/runtime-git-client', () => ({
vi.mock('@/runtime/runtime-git-working-tree-client', () => ({
discardRuntimeGitPath: mocks.discard,
bulkDiscardRuntimeGitPaths: mocks.bulkDiscard,
stageRuntimeGitPath: vi.fn(),
@@ -22,7 +22,7 @@ vi.mock('@/components/editor/editor-autosave', () => ({
notifyEditorExternalFileChange: vi.fn(),
requestEditorSaveQuiesce: vi.fn(async () => {})
}))
vi.mock('@/runtime/runtime-git-client', () => ({
vi.mock('@/runtime/runtime-git-working-tree-client', () => ({
stageRuntimeGitPath: (...args: unknown[]) => mocks.stagePath(...args),
unstageRuntimeGitPath: (...args: unknown[]) => mocks.unstagePath(...args),
discardRuntimeGitPath: (...args: unknown[]) => mocks.discardPath(...args),
@@ -8,7 +8,7 @@ const mocks = vi.hoisted(() => ({ bulkStage: vi.fn(), stageScope: vi.fn(), toast
vi.mock('sonner', () => ({ toast: { error: mocks.toastError } }))
vi.mock('@/lib/connection-context', () => ({ getConnectionId: () => 'ssh-1' }))
vi.mock('@/runtime/runtime-git-client', () => ({
vi.mock('@/runtime/runtime-git-working-tree-client', () => ({
bulkStageRuntimeGitPaths: (...args: unknown[]) => mocks.bulkStage(...args),
stageRuntimeGitWorktreeScope: (...args: unknown[]) => mocks.stageScope(...args),
bulkUnstageRuntimeGitPaths: vi.fn()
@@ -9,7 +9,7 @@ import {
bulkStageRuntimeGitPaths,
bulkUnstageRuntimeGitPaths,
stageRuntimeGitWorktreeScope
} from '@/runtime/runtime-git-client'
} from '@/runtime/runtime-git-working-tree-client'
import {
getStageAllPaths,
getUnstageAllPaths,
@@ -1,7 +1,7 @@
import { useCallback } from 'react'
import { requireGitOwnerTarget } from '../../worktree-git-owner-target'
import { getConnectionId } from '@/lib/connection-context'
import { commitRuntimeGit } from '@/runtime/runtime-git-client'
import { commitRuntimeGit } from '@/runtime/runtime-git-sync-client'
import type { SourceControlOperationTarget } from '../listing/operation-target'
import type { SourceControlStoreActions } from '../listing/use-store-actions'
import type { SourceControlWorktreeContext } from '../listing/use-worktree-context'
@@ -2,9 +2,9 @@ import { useCallback, useEffect } from 'react'
import { getConnectionId } from '@/lib/connection-context'
import {
cancelRuntimeGenerateCommitMessage,
generateRuntimeCommitMessage,
type RuntimeGenerateCommitMessageOverrides
} from '@/runtime/runtime-git-client'
generateRuntimeCommitMessage
} from '@/runtime/runtime-git-generation-client'
import type { RuntimeGenerateCommitMessageOverrides } from '@/runtime/runtime-git-client-context'
import { useAppStore } from '@/store'
import {
createRunningCommitMessageGenerationRecord,
@@ -4,7 +4,7 @@ import type { RuntimeClientTarget } from '@/runtime/runtime-client-target'
import { toast } from 'sonner'
import { getConnectionId } from '@/lib/connection-context'
import { basename } from '@/lib/path'
import { bulkUnstageRuntimeGitPaths } from '@/runtime/runtime-git-client'
import { bulkUnstageRuntimeGitPaths } from '@/runtime/runtime-git-working-tree-client'
import { translate } from '@/i18n/i18n'
import type { GitStatusEntry } from '../../../../../../shared/git-status-types'
import {
@@ -12,9 +12,9 @@ import {
bulkUnstageRuntimeGitPaths,
discardRuntimeGitPath,
stageRuntimeGitPath,
unstageRuntimeGitPath,
type RuntimeGitContext
} from '@/runtime/runtime-git-client'
unstageRuntimeGitPath
} from '@/runtime/runtime-git-working-tree-client'
import type { RuntimeGitContext } from '@/runtime/runtime-git-client-context'
import {
dismissSourceControlEntryFailureToast,
showSourceControlEntryFailureToast
@@ -1,4 +1,4 @@
import type { RuntimeGitContext } from '@/runtime/runtime-git-client'
import type { RuntimeGitContext } from '@/runtime/runtime-git-client-context'
import type { RuntimeClientTarget } from '@/runtime/runtime-client-target'
import { requireGitOwnerTarget } from '../../worktree-git-owner-target'
import type { GitConflictOperation } from '../../../../../../shared/git-status-types'
@@ -3,7 +3,7 @@ import { requireGitOwnerTarget } from '../../worktree-git-owner-target'
import type { RuntimeClientTarget } from '@/runtime/runtime-client-target'
import type { GitStatusEntry } from '../../../../../../shared/git-status-types'
import { getConnectionId } from '@/lib/connection-context'
import { getRuntimeGitSubmoduleStatus } from '@/runtime/runtime-git-client'
import { getRuntimeGitSubmoduleStatus } from '@/runtime/runtime-git-status-client'
import {
getSubmoduleExpansionKey,
isExpandableSubmoduleEntry,
@@ -1,4 +1,4 @@
import { bulkStageRuntimeGitPaths } from '@/runtime/runtime-git-client'
import { bulkStageRuntimeGitPaths } from '@/runtime/runtime-git-working-tree-client'
import { operationGitContext } from '../listing/operation-target'
import type { GitStatusEntry } from '../../../../../../shared/git-status-types'
import {
@@ -1,6 +1,6 @@
import { useCallback } from 'react'
import { operationGitContext } from '../listing/operation-target'
import { generateRuntimeCommitMessage } from '@/runtime/runtime-git-client'
import { generateRuntimeCommitMessage } from '@/runtime/runtime-git-generation-client'
import { useAppStore } from '@/store'
import { isCustomAgentId } from '../../../../../../shared/commit-message-agent-spec'
import type { CreatePrIntentRunToken } from './create-pr-intent-flow'
@@ -1,7 +1,7 @@
import { useCallback } from 'react'
import { requireGitOwnerTarget } from '../../worktree-git-owner-target'
import { getConnectionId } from '@/lib/connection-context'
import { getRuntimeGitBranchCompare } from '@/runtime/runtime-git-client'
import { getRuntimeGitBranchCompare } from '@/runtime/runtime-git-diff-client'
import type { HostedReviewCreationEligibility } from '../../../../../../shared/hosted-review'
import { refreshGitStatusForWorktreeStrict } from '../../git-status-refresh'
import type { CreatePrIntentRunToken } from './create-pr-intent-flow'
@@ -2,7 +2,7 @@ import { useCallback } from 'react'
import { useAppStore } from '@/store'
import { operationGitContext } from '../listing/operation-target'
import { translate } from '@/i18n/i18n'
import { generateRuntimePullRequestFields } from '@/runtime/runtime-git-client'
import { generateRuntimePullRequestFields } from '@/runtime/runtime-git-generation-client'
import type { HostedReviewCreationEligibility } from '../../../../../../shared/hosted-review'
import { normalizeHostedReviewHeadRef } from '../../../../../../shared/hosted-review-refs'
import { resolveCreateReviewDraftTitle } from '../../create-review-draft-title'
@@ -3,7 +3,7 @@
import { act, cleanup, renderHook } from '@testing-library/react'
import { useRef, useState } from 'react'
import { afterEach, describe, expect, it, vi } from 'vitest'
import type * as RuntimeGitClient from '@/runtime/runtime-git-client'
import type * as RuntimeGitGenerationClient from '@/runtime/runtime-git-generation-client'
import type { RuntimeGeneratePullRequestFieldsResult } from '@/runtime/runtime-git-client-context'
import { useAppStore } from '@/store'
import {
@@ -31,8 +31,8 @@ import { useSourceControlPullRequestGeneration } from './use-pull-request-genera
const runtime = vi.hoisted(() => ({ cancel: vi.fn(), generate: vi.fn() }))
vi.mock('@/runtime/runtime-git-client', async (importOriginal) => {
const original = await importOriginal<typeof RuntimeGitClient>()
vi.mock('@/runtime/runtime-git-generation-client', async (importOriginal) => {
const original = await importOriginal<typeof RuntimeGitGenerationClient>()
return {
...original,
cancelRuntimeGeneratePullRequestFields: runtime.cancel,
@@ -2,7 +2,7 @@
import { act, cleanup, renderHook } from '@testing-library/react'
import { afterEach, describe, expect, it, vi } from 'vitest'
import type * as RuntimeGitClient from '@/runtime/runtime-git-client'
import type * as RuntimeGitGenerationClient from '@/runtime/runtime-git-generation-client'
import type { RuntimeGeneratePullRequestFieldsResult } from '@/runtime/runtime-git-client-context'
import { useAppStore } from '@/store'
import { DEFAULT_SOURCE_CONTROL_AI_PR_CREATION_DEFAULTS } from '../../../../../../shared/source-control-ai-settings'
@@ -12,8 +12,8 @@ const runtime = vi.hoisted(() => ({
generate: vi.fn()
}))
vi.mock('@/runtime/runtime-git-client', async (importOriginal) => {
const original = await importOriginal<typeof RuntimeGitClient>()
vi.mock('@/runtime/runtime-git-generation-client', async (importOriginal) => {
const original = await importOriginal<typeof RuntimeGitGenerationClient>()
return {
...original,
cancelRuntimeGeneratePullRequestFields: runtime.cancel,
@@ -2,9 +2,9 @@ import { useCallback } from 'react'
import { getConnectionId } from '@/lib/connection-context'
import {
cancelRuntimeGeneratePullRequestFields,
generateRuntimePullRequestFields,
type RuntimeGeneratePullRequestFieldsOverrides
} from '@/runtime/runtime-git-client'
generateRuntimePullRequestFields
} from '@/runtime/runtime-git-generation-client'
import type { RuntimeGeneratePullRequestFieldsOverrides } from '@/runtime/runtime-git-client-context'
import type { PullRequestGenerationOutcome } from '../../create-pull-request-dialog-field-model'
import { settlePullRequestGenerationRequest } from '../../pull-request-generation-request-outcome'
import { useAppStore } from '@/store'
@@ -3,7 +3,7 @@ import { requireGitOwnerTarget } from '../../worktree-git-owner-target'
import type { RuntimeClientTarget } from '@/runtime/runtime-client-target'
import { installWindowVisibilityInterval } from '@/lib/window-visibility-interval'
import { getConnectionId } from '@/lib/connection-context'
import { getRuntimeGitBranchCompare } from '@/runtime/runtime-git-client'
import { getRuntimeGitBranchCompare } from '@/runtime/runtime-git-diff-client'
import { useAppStore } from '@/store'
import { createLoadingBranchCompareSummary } from '@/store/slices/editor/git/branch-compare-state'
import type { GitUpstreamStatus } from '../../../../../../shared/git-status-types'
@@ -4,7 +4,7 @@ import { toast } from 'sonner'
import { useConfirmationDialog } from '@/components/confirmation-dialog-context'
import { translate } from '@/i18n/i18n'
import { getConnectionId } from '@/lib/connection-context'
import { abortRuntimeGitMerge, abortRuntimeGitRebase } from '@/runtime/runtime-git-client'
import { abortRuntimeGitMerge, abortRuntimeGitRebase } from '@/runtime/runtime-git-sync-client'
import type { GitConflictOperation } from '../../../../../../shared/git-status-types'
import type { AbortConflictOperation } from '../listing/operation-target'
import type { SourceControlWorktreeContext } from '../listing/use-worktree-context'
@@ -3,10 +3,8 @@ import { requireGitOwnerTarget } from '../../worktree-git-owner-target'
import type { RuntimeClientTarget } from '@/runtime/runtime-client-target'
import { toast } from 'sonner'
import { useAppStore } from '@/store'
import {
getRuntimeGitCommitCompare,
getRuntimeGitRemoteCommitUrl
} from '@/runtime/runtime-git-client'
import { getRuntimeGitCommitCompare } from '@/runtime/runtime-git-diff-client'
import { getRuntimeGitRemoteCommitUrl } from '@/runtime/runtime-git-working-tree-client'
import { getConnectionId } from '@/lib/connection-context'
import { detectLanguage } from '@/lib/language-detect'
import { launchAgentInNewTab } from '@/lib/launch-agent-in-new-tab'
@@ -2,7 +2,7 @@ import { useCallback, useEffect, useRef, useState, type RefObject } from 'react'
import { requireGitOwnerTarget } from '../../worktree-git-owner-target'
import type { RuntimeClientTarget } from '@/runtime/runtime-client-target'
import { getConnectionId } from '@/lib/connection-context'
import { getRuntimeGitHistory } from '@/runtime/runtime-git-client'
import { getRuntimeGitHistory } from '@/runtime/runtime-git-status-client'
import type { GitHistoryPanelState } from './git-history-panel'
const EMPTY_GIT_HISTORY_STATE: GitHistoryPanelState = { status: 'idle' }
@@ -3,7 +3,7 @@ import type { GitConflictOperation } from '../../../../shared/git-status-types'
import type { Repo } from '../../../../shared/repo-types'
import { isGitRepoKind } from '../../../../shared/repo-kind'
import { getConnectionId } from '@/lib/connection-context'
import { getRuntimeGitConflictOperation } from '@/runtime/runtime-git-client'
import { getRuntimeGitConflictOperation } from '@/runtime/runtime-git-status-client'
import { createCoalescedPollRunner, type SlowTaskBackoffOptions } from './coalesced-poll-runner'
import { installWindowVisibilityInterval, isWindowVisible } from '@/lib/window-visibility-interval'
import { getWorktreeGitOwnerTarget } from './worktree-git-owner-target'
@@ -4,9 +4,9 @@ import { getConnectionId } from '@/lib/connection-context'
import { useAppStore, type AppState } from '@/store'
import {
cancelRuntimeGeneratePullRequestFields,
generateRuntimePullRequestFields,
type RuntimeGeneratePullRequestFieldsOverrides
} from '@/runtime/runtime-git-client'
generateRuntimePullRequestFields
} from '@/runtime/runtime-git-generation-client'
import type { RuntimeGeneratePullRequestFieldsOverrides } from '@/runtime/runtime-git-client-context'
import type { HostedReviewCreationEligibility } from '../../../../shared/hosted-review'
import type { ResolveSourceControlAiResult } from '../../../../shared/source-control-ai'
import type { SourceControlAiPrCreationDefaults } from '../../../../shared/source-control-ai-types'
@@ -1,5 +1,5 @@
import { useEffect, type Dispatch, type RefObject, type SetStateAction } from 'react'
import { cancelRuntimeGeneratePullRequestFields } from '@/runtime/runtime-git-client'
import { cancelRuntimeGeneratePullRequestFields } from '@/runtime/runtime-git-generation-client'
import type { HostedReviewCreationEligibility } from '../../../../shared/hosted-review'
import type { SourceControlAiPrCreationDefaults } from '../../../../shared/source-control-ai-types'
import type {
@@ -1,6 +1,6 @@
import { useEffect, useState } from 'react'
import { getConnectionId } from '@/lib/connection-context'
import { getRuntimeGitIgnoredPaths } from '@/runtime/runtime-git-client'
import { getRuntimeGitIgnoredPaths } from '@/runtime/runtime-git-status-client'
import { getWorktreeGitOwnerTarget } from './worktree-git-owner-target'
const EMPTY_IGNORED_PATHS: readonly string[] = []
@@ -7,7 +7,7 @@ const { runtimeState, setWatch } = vi.hoisted(() => ({
}))
let cleanup: (() => void) | undefined
vi.mock('@/runtime/runtime-git-client', () => ({
vi.mock('@/runtime/runtime-git-status-client', () => ({
setRuntimeGitStatusUpstreamRefWatch: setWatch
}))
@@ -1,6 +1,6 @@
import { useCallback, useEffect } from 'react'
import { getConnectionId } from '@/lib/connection-context'
import { setRuntimeGitStatusUpstreamRefWatch } from '@/runtime/runtime-git-client'
import { setRuntimeGitStatusUpstreamRefWatch } from '@/runtime/runtime-git-status-client'
import type { GitStatusResult } from '../../../../shared/git-status-types'
import { runtimeTargetForOwnerEnvironment } from '@/runtime/runtime-client-target'
import { getWorktreeGitOwnerTarget } from './worktree-git-owner-target'
@@ -15,7 +15,7 @@ const mocks = vi.hoisted(() => ({
>
}))
vi.mock('@/runtime/runtime-git-client', () => ({
vi.mock('@/runtime/runtime-git-diff-client', () => ({
getRuntimeGitBranchCompare: mocks.getRuntimeGitBranchCompare
}))
vi.mock('@/lib/connection-context', () => ({ getConnectionId: () => undefined }))
@@ -7,7 +7,7 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
const mocks = vi.hoisted(() => ({ getRuntimeGitHistory: vi.fn() }))
vi.mock('@/runtime/runtime-git-client', () => ({
vi.mock('@/runtime/runtime-git-status-client', () => ({
getRuntimeGitHistory: mocks.getRuntimeGitHistory
}))
vi.mock('@/lib/connection-context', () => ({ getConnectionId: () => undefined }))
@@ -23,7 +23,7 @@ vi.mock('./file-explorer-operation-owner', async (importOriginal) => ({
...(await importOriginal<Record<string, unknown>>()),
getFileExplorerOperationOwner: () => ({ kind: 'local' as const })
}))
vi.mock('@/runtime/runtime-git-client', () => ({
vi.mock('@/runtime/runtime-git-status-client', () => ({
getRuntimeGitIgnoredPaths: vi.fn().mockResolvedValue([])
}))
@@ -12,7 +12,7 @@ vi.mock('./worktree-git-owner-target', () => ({
getWorktreeGitOwnerTarget: () => ({ kind: 'local' })
}))
vi.mock('@/runtime/runtime-git-client', () => ({
vi.mock('@/runtime/runtime-git-status-client', () => ({
getRuntimeGitIgnoredPaths: getRuntimeGitIgnoredPathsMock
}))
@@ -9,7 +9,7 @@ import { afterEach, describe, expect, it, vi } from 'vitest'
const mocks = vi.hoisted(() => ({ getRuntimeGitSubmoduleStatus: vi.fn() }))
vi.mock('@/runtime/runtime-git-client', () => ({
vi.mock('@/runtime/runtime-git-status-client', () => ({
getRuntimeGitSubmoduleStatus: mocks.getRuntimeGitSubmoduleStatus
}))
vi.mock('@/lib/connection-context', () => ({ getConnectionId: () => undefined }))
@@ -19,7 +19,7 @@ import {
type CommitMessageModelCapability
} from '../../../../shared/commit-message-agent-spec'
import { getCommitMessageModelDiscoveryHostKeyForScope } from '../../../../shared/commit-message-host-key'
import { getRuntimeGitScope } from '../../runtime/runtime-git-client'
import { getRuntimeGitScope } from '../../runtime/runtime-git-client-context'
import { useAppStore } from '../../store'
import { CustomAgentCommandField } from './CustomAgentCommandField'
import { Label } from '../ui/label'
@@ -6,7 +6,7 @@ import { RepositoryForkSyncSection } from './RepositoryForkSyncSection'
const syncRuntimeGitForkDefaultBranch = vi.fn()
vi.mock('../../runtime/runtime-git-client', () => ({
vi.mock('../../runtime/runtime-git-sync-client', () => ({
syncRuntimeGitForkDefaultBranch: (...args: unknown[]) => syncRuntimeGitForkDefaultBranch(...args)
}))
@@ -7,7 +7,7 @@ import { getRepoMainWorktreeId } from '../../../../shared/worktree/id'
import { Button } from '../ui/button'
import { SearchableSetting } from './SearchableSetting'
import { SettingsSegmentedControl } from './SettingsFormControls'
import { syncRuntimeGitForkDefaultBranch } from '../../runtime/runtime-git-client'
import { syncRuntimeGitForkDefaultBranch } from '../../runtime/runtime-git-sync-client'
import { runtimeTargetForOwnerHostId } from '@/runtime/runtime-client-target'
import { UNRESOLVED_GIT_HOST_ERROR } from '@/store/slices/editor/actions/git-operation-target'
import { getRepoExecutionHostId } from '../../../../shared/execution-host'
@@ -16,7 +16,7 @@ import {
getDeleteWorktreeDirtyChangePreview,
getDeleteWorktreeDirtyChangePreviews
} from './delete-worktree-dirty-change-counts'
import { getRuntimeGitStatus } from '@/runtime/runtime-git-client'
import { getRuntimeGitStatus } from '@/runtime/runtime-git-status-client'
import { getWorktreeHostIdentity } from '../../../../shared/worktree/host-qualified-identity'
const state = vi.hoisted(() => ({
@@ -31,7 +31,7 @@ vi.mock('@/store', () => ({
getState: () => state
})
}))
vi.mock('@/runtime/runtime-git-client', () => ({ getRuntimeGitStatus: vi.fn() }))
vi.mock('@/runtime/runtime-git-status-client', () => ({ getRuntimeGitStatus: vi.fn() }))
vi.mock('@/lib/connection-context', () => ({ getConnectionId: () => null }))
const repoMap = new Map<string, Repo>()
@@ -3,7 +3,7 @@ import { useAppStore } from '@/store'
import { getConnectionId } from '@/lib/connection-context'
import { runtimeTargetForWorkspaceOwner } from '@/lib/resolve-owner'
import { runtimeTargetForOwnerHostId } from '@/runtime/runtime-client-target'
import { getRuntimeGitStatus } from '@/runtime/runtime-git-client'
import { getRuntimeGitStatus } from '@/runtime/runtime-git-status-client'
import { findRepoForHost } from '@/store/slices/repo-host-identity'
import type { Repo } from '../../../../shared/repo-types'
import type { Worktree } from '../../../../shared/worktree/types'
@@ -5,7 +5,7 @@ import type { WorkspaceSpaceWorktree } from '../../../../shared/workspace-space-
import { getWorkspaceSpaceWorktreeIdentity } from './workspace-space-delete-selection'
import { useAppStore } from '../../store'
import { findRepoForHost } from '../../store/slices/repo-host-identity'
import { getRuntimeGitStatus } from '@/runtime/runtime-git-client'
import { getRuntimeGitStatus } from '@/runtime/runtime-git-status-client'
import type { useWorkspaceSpaceManagerBindings } from './use-workspace-space-manager-bindings'
type WorkspaceSpaceManagerBindings = ReturnType<typeof useWorkspaceSpaceManagerBindings>
@@ -1,5 +1,5 @@
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
import { getRuntimeGitStatus } from './runtime-git-client'
import { getRuntimeGitStatus } from './runtime-git-status-client'
import {
createCompatibleRuntimeStatusResponseIfNeeded,
type RuntimeEnvironmentCallRequest
@@ -3,7 +3,7 @@ import {
createCompatibleRuntimeStatusResponseIfNeeded,
type RuntimeEnvironmentCallRequest
} from './runtime-compatibility-test-fixture'
import { abortRuntimeGitMerge, abortRuntimeGitRebase } from './runtime-git-client'
import { abortRuntimeGitMerge, abortRuntimeGitRebase } from './runtime-git-sync-client'
import { clearRuntimeCompatibilityCacheForTests } from './runtime-rpc-client'
const gitAbortMerge = vi.fn()
@@ -1,23 +1,28 @@
import { beforeEach, describe, expect, it, vi } from 'vitest'
import {
bulkDiscardRuntimeGitPaths,
bulkStageRuntimeGitPaths,
bulkStageRuntimeGitPaths
} from './runtime-git-working-tree-client'
import {
cancelRuntimeGenerateCommitMessage,
commitRuntimeGit,
discoverRuntimeCommitMessageModels,
generateRuntimeCommitMessage,
generateRuntimePullRequestFields
} from './runtime-git-generation-client'
import {
commitRuntimeGit,
fastForwardRuntimeGit,
fetchRuntimeGit,
generateRuntimeCommitMessage,
generateRuntimePullRequestFields,
getRuntimeGitBranchCompare,
getRuntimeGitDiff,
pushRuntimeGit,
rebaseRuntimeGitFromBase
} from './runtime-git-sync-client'
import { getRuntimeGitBranchCompare, getRuntimeGitDiff } from './runtime-git-diff-client'
import {
getRuntimeGitHistory,
getRuntimeGitIgnoredPaths,
getRuntimeGitStatus,
getRuntimeGitSubmoduleStatus,
pushRuntimeGit,
rebaseRuntimeGitFromBase
} from './runtime-git-client'
getRuntimeGitSubmoduleStatus
} from './runtime-git-status-client'
import {
createCompatibleRuntimeStatusResponseIfNeeded,
type RuntimeEnvironmentCallRequest
@@ -1,54 +0,0 @@
export { getRuntimeGitScope } from './runtime-git-client-context'
export {
getRuntimeGitBranchCompare,
getRuntimeGitBranchDiff,
getRuntimeGitCommitCompare,
getRuntimeGitCommitDiff,
getRuntimeGitDiff
} from './runtime-git-diff-client'
export {
cancelRuntimeGenerateCommitMessage,
cancelRuntimeGeneratePullRequestFields,
discoverRuntimeCommitMessageModels,
generateRuntimeCommitMessage,
generateRuntimePullRequestFields
} from './runtime-git-generation-client'
export {
getRuntimeGitConflictOperation,
getRuntimeGitHistory,
getRuntimeGitIgnoredPaths,
getRuntimeGitStatus,
getRuntimeGitSubmoduleStatus,
setRuntimeGitStatusUpstreamRefWatch
} from './runtime-git-status-client'
export {
abortRuntimeGitMerge,
abortRuntimeGitRebase,
commitRuntimeGit,
fastForwardRuntimeGit,
fetchRuntimeGit,
getRuntimeGitUpstreamStatus,
pullRuntimeGit,
pushRuntimeGit,
rebaseRuntimeGitFromBase,
syncRuntimeGitForkDefaultBranch
} from './runtime-git-sync-client'
export {
bulkDiscardRuntimeGitPaths,
bulkStageRuntimeGitPaths,
bulkUnstageRuntimeGitPaths,
discardRuntimeGitPath,
getRuntimeGitRemoteCommitUrl,
getRuntimeGitRemoteFileUrl,
stageRuntimeGitPath,
stageRuntimeGitWorktreeScope,
unstageRuntimeGitPath
} from './runtime-git-working-tree-client'
export type {
RuntimeGenerateCommitMessageOverrides,
RuntimeGenerateCommitMessageResult,
RuntimeGeneratePullRequestFieldsOverrides,
RuntimeGeneratePullRequestFieldsResult,
RuntimeGitContext,
RuntimePullRequestGenerationInput
} from './runtime-git-client-context'
@@ -1,5 +1,5 @@
import type { Repo } from '../../../../shared/repo-types'
import { syncRuntimeGitForkDefaultBranch } from '../../runtime/runtime-git-client'
import { syncRuntimeGitForkDefaultBranch } from '../../runtime/runtime-git-sync-client'
import { getRepoExecutionHostId } from '../../../../shared/execution-host'
import { getRepoMainWorktreeId } from '../../../../shared/worktree/id'
import { runtimeTargetForOwnerHostId } from '../../runtime/runtime-client-target'
@@ -7,7 +7,7 @@ import {
pullRuntimeGit,
pushRuntimeGit,
fastForwardRuntimeGit
} from '@/runtime/runtime-git-client'
} from '@/runtime/runtime-git-sync-client'
import {
isNonFastForwardRemoteError,
resolveRemoteOperationErrorMessage
@@ -1,7 +1,7 @@
import type { EditorGet, EditorSet } from '../types/editor-set-get'
import type { EditorSlice } from '../types/editor-slice'
import { tryResolveGitOperationTarget } from './git-operation-target'
import { getRuntimeGitUpstreamStatus } from '@/runtime/runtime-git-client'
import { getRuntimeGitUpstreamStatus } from '@/runtime/runtime-git-sync-client'
import { invalidateAutomaticPushTargetUpstreamStatusCache } from '@/components/right-sidebar/push-target-upstream-refresh-cache'
import { areUpstreamStatusesEqual } from '../git/git-status-reconciliation'
@@ -8,7 +8,7 @@ import {
pullRuntimeGit,
pushRuntimeGit,
rebaseRuntimeGitFromBase
} from '@/runtime/runtime-git-client'
} from '@/runtime/runtime-git-sync-client'
import {
markSyncPushStageError,
resolveRemoteOperationErrorMessage
@@ -9,7 +9,7 @@ import { createTestStore } from './store-test-helpers'
const { syncFork } = vi.hoisted(() => ({ syncFork: vi.fn() }))
vi.mock('../../runtime/runtime-git-client', async (importOriginal) => {
vi.mock('../../runtime/runtime-git-sync-client', async (importOriginal) => {
const original = await importOriginal<Record<string, unknown>>()
return {
...original,