diff --git a/src/common/utils/projectOrdering.test.ts b/src/common/utils/projectOrdering.test.ts index 2e6dddd40..5406e9537 100644 --- a/src/common/utils/projectOrdering.test.ts +++ b/src/common/utils/projectOrdering.test.ts @@ -17,10 +17,10 @@ describe("projectOrdering", () => { }; describe("sortProjectsByOrder", () => { - it("returns natural order when order array is empty", () => { + it("returns lexical order when order array is empty", () => { const projects = createProjects(["/a", "/c", "/b"]); const result = sortProjectsByOrder(projects, []); - expect(result.map(([p]) => p)).toEqual(["/a", "/c", "/b"]); + expect(result.map(([p]) => p)).toEqual(["/a", "/b", "/c"]); }); it("sorts projects according to order array", () => { diff --git a/src/common/utils/projectOrdering.ts b/src/common/utils/projectOrdering.ts index 4b4bad763..0abcfaf1a 100644 --- a/src/common/utils/projectOrdering.ts +++ b/src/common/utils/projectOrdering.ts @@ -15,7 +15,10 @@ export function sortProjectsByOrder( ): Array<[string, ProjectConfig]> { const entries = Array.from(projects.entries()); - if (order.length === 0) return entries; // Natural order + if (order.length === 0) { + // Sort lexically for stable, deterministic order + return entries.sort(([a], [b]) => a.localeCompare(b)); + } const pos = new Map(order.map((p, i) => [p, i]));