Persist project host setup method

Co-authored-by: Orca <help@stably.ai>
This commit is contained in:
Jinwoo-H
2026-06-11 12:33:59 -07:00
co-authored by Orca
parent b57f9e4914
commit 359cb1baef
14 changed files with 112 additions and 24 deletions
@@ -71,6 +71,19 @@ describe('project host setup projection', () => {
})
})
it('preserves repo-backed setup method metadata', () => {
const projection = projectHostSetupProjectionFromRepos([
repo({
id: 'repo-1',
path: '/Users/alice/orca',
displayName: 'orca',
projectHostSetupMethod: 'cloned'
})
])
expect(projection.setups[0]?.setupMethod).toBe('cloned')
})
it('groups repo checkouts with the same provider identity under one project', () => {
const projection = projectHostSetupProjectionFromRepos([
repo({
+2 -1
View File
@@ -68,6 +68,7 @@ function mergeProjectRepo(project: Project, repo: Repo): Project {
function createSetupFromRepo(repo: Repo, projectId: string, now: number): ProjectHostSetup {
const hostId = getRepoExecutionHostId(repo)
const createdAt = repo.addedAt || now
const setupMethod = repo.projectHostSetupMethod ?? 'legacy-repo'
return {
id: repo.id,
projectId,
@@ -83,7 +84,7 @@ function createSetupFromRepo(repo: Repo, projectId: string, now: number): Projec
...(repo.gitUsername ? { gitUsername: repo.gitUsername } : {}),
...(repo.sourceControlAi ? { sourceControlAi: repo.sourceControlAi } : {}),
setupState: 'ready',
setupMethod: 'legacy-repo',
setupMethod,
createdAt,
updatedAt: createdAt
}
+3
View File
@@ -131,6 +131,7 @@ export type ProjectHostSetupExistingFolderArgs = {
path: string
kind?: RepoKind
displayName?: string
setupMethod?: Exclude<ProjectHostSetupMethod, 'legacy-repo'>
}
export type ProjectHostSetupCloneArgs = {
@@ -193,6 +194,8 @@ export type Repo = {
projectGroupOrder?: number
/** Repo-specific source-control AI overrides. Missing fields inherit global settings. */
sourceControlAi?: RepoSourceControlAiOverrides
/** Transitional source for ProjectHostSetup.setupMethod while Repo remains compatibility storage. */
projectHostSetupMethod?: Exclude<ProjectHostSetupMethod, 'legacy-repo'>
}
export type ProjectGroupCreatedFrom = 'manual' | 'folder-scan' | 'migration'