refactor(core): skip redundant worktree lookup (#39692)

This commit is contained in:
Kit Langton 2026-07-30 12:15:07 -04:00 committed by GitHub
commit bd132f2614
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 8 additions and 6 deletions

View file

@ -246,12 +246,13 @@ const layer = Layer.effect(
if (repo) { if (repo) {
const previous = yield* cached(repo.commonDirectory) const previous = yield* cached(repo.commonDirectory)
const id = (yield* remote(repo)) ?? previous ?? (yield* root(repo)) const id = (yield* remote(repo)) ?? previous ?? (yield* root(repo))
const canonical = yield* git.worktree const canonical =
.list(repo) repo.gitDirectory === repo.commonDirectory
.pipe( ? repo.worktree
Effect.map((items) => items.find((item) => item.kind === "main")?.directory ?? repo.worktree), : yield* git.worktree.list(repo).pipe(
Effect.catch(() => Effect.succeed(repo.worktree)), Effect.map((items) => items.find((item) => item.kind === "main")?.directory ?? repo.worktree),
) Effect.catch(() => Effect.succeed(repo.worktree)),
)
return yield* persist({ return yield* persist({
previous, previous,
id: id ?? ID.global, id: id ?? ID.global,

View file

@ -143,6 +143,7 @@ describe("Project.resolve", () => {
expect(result.id).toBe(Project.ID.make(yield* Effect.promise(() => rootCommit(tmp.path)))) expect(result.id).toBe(Project.ID.make(yield* Effect.promise(() => rootCommit(tmp.path))))
expect(result.directory).toBe(yield* real(tmp.path)) expect(result.directory).toBe(yield* real(tmp.path))
expect(result.canonical).toBe(result.directory)
expect(result.previous).toBeUndefined() expect(result.previous).toBeUndefined()
expect(result.vcs?.type).toBe("git") expect(result.vcs?.type).toBe("git")
}), }),