Skip to content

Commit fe26093

Browse files
tyulyukovclaude
andcommitted
fix(orchestration): resolve repositoryIdentity in listing snapshot
Pre-existing projects never got grouped in the sidebar because getListingSnapshot (the Phase 1 bootstrap used to paint the sidebar) omitted repositoryIdentity. New projects happened to work because project.created events carry the resolved identity, but rows read at startup only had whatever the listing snapshot populated — which was nothing. Mirror the resolver call from getSnapshot so every listed project has identity and logical-project grouping can key off it. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
1 parent 51d1004 commit fe26093

1 file changed

Lines changed: 12 additions & 0 deletions

File tree

apps/server/src/orchestration/Layers/ProjectionSnapshotQuery.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1130,10 +1130,22 @@ const makeProjectionSnapshotQuery = Effect.gen(function* () {
11301130
userMessageAtByThread.set(row.threadId, row.latestUserMessageAt);
11311131
}
11321132

1133+
const repositoryIdentities = new Map(
1134+
yield* Effect.forEach(
1135+
projectRows,
1136+
(row) =>
1137+
repositoryIdentityResolver
1138+
.resolve(row.workspaceRoot)
1139+
.pipe(Effect.map((identity) => [row.projectId, identity] as const)),
1140+
{ concurrency: repositoryIdentityResolutionConcurrency },
1141+
),
1142+
);
1143+
11331144
const projects: ReadonlyArray<OrchestrationProject> = projectRows.map((row) => ({
11341145
id: row.projectId,
11351146
title: row.title,
11361147
workspaceRoot: row.workspaceRoot,
1148+
repositoryIdentity: repositoryIdentities.get(row.projectId) ?? null,
11371149
defaultModelSelection: row.defaultModelSelection,
11381150
scripts: row.scripts,
11391151
jiraBoard: row.jiraBoard,

0 commit comments

Comments
 (0)