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 (1 of 8 files). Show all

Unified · Split

packages/shared/src/git.ts+5−1
@@ -6,8 +6,10 @@ import type { · 5 unmodified lines
6 VcsStatusResult,6 VcsStatusResult,
7 VcsStatusStreamEvent,7 VcsStatusStreamEvent,
8} from "@t3tools/contracts";8} from "@t3tools/contracts";
9import * as Arr from "effect/Array";
9import * as Effect from "effect/Effect";10import * as Effect from "effect/Effect";
10import * as Random from "effect/Random";11import * as Random from "effect/Random";
12import * as Result from "effect/Result";
11import { detectSourceControlProviderFromRemoteUrl } from "./sourceControl.ts";13import { detectSourceControlProviderFromRemoteUrl } from "./sourceControl.ts";
12 14
13export const WORKTREE_BRANCH_PREFIX = "t3code";15export const WORKTREE_BRANCH_PREFIX = "t3code";
@@ -172,7 +174,9 @@ export function dedupeRemoteBranchesWithLocalMatches( · 158 unmodified lines
172 refs: ReadonlyArray<VcsRef>,174 refs: ReadonlyArray<VcsRef>,
173): ReadonlyArray<VcsRef> {175): ReadonlyArray<VcsRef> {
174 const localBranchNames = new Set(176 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 ),
176 );180 );
177 181
178 return refs.filter((refName) => {182 return refs.filter((refName) => {