History

Normalize branch and model selection handling

- Deduplicate terminal IDs and favorite model slugs with trim-aware iteration - Use effect-based filtering for local branch and built-in model lists - Switch stable array handling to non-mutating `toSorted`

Julius Marminge committed 6 months ago

Commit 7793bd61 parent 7f03f4d8 files · +63 −23Browse files

Showing the changes to packages/shared/src/git.ts (1 of 8 files). Show all

Unified · Split

packages/shared/src/git.ts+5−1
@@ -6,8 +6,10 @@ import type { · 5 unmodified lines
66 VcsStatusResult,
77 VcsStatusStreamEvent,
88 } from "@t3tools/contracts";
9+import * as Arr from "effect/Array";
910 import * as Effect from "effect/Effect";
1011 import * as Random from "effect/Random";
12+import * as Result from "effect/Result";
1113 import { detectSourceControlProviderFromRemoteUrl } from "./sourceControl.ts";
1214
1315 export const WORKTREE_BRANCH_PREFIX = "t3code";
@@ -172,7 +174,9 @@ export function dedupeRemoteBranchesWithLocalMatches( · 158 unmodified lines
172174 refs: ReadonlyArray<VcsRef>,
173175 ): ReadonlyArray<VcsRef> {
174176 const localBranchNames = new Set(
175− refs.filter((refName) => !refName.isRemote).map((refName) => refName.name),
177+ Arr.filterMap(refs, (refName) =>
178+ refName.isRemote ? Result.failVoid : Result.succeed(refName.name),
179+ ),
176180 );
177181
178182 return refs.filter((refName) => {