mirror of
https://github.com/stablyai/orca.git
synced 2026-09-24 08:02:33 +00:00
Auto-generated workspace names walked the marine-creature list in order and deduped only within the active repo (the default when workspaces are nested), so the first auto-named worktree in every repo landed on "Nautilus". That guaranteed identical branch names across repos, which appear flat and indistinguishable in the sidebar. The in-order walk also produced "Nautilus-2", "Nautilus-3", ... within a single repo: the suggester ignores branches left behind by deleted worktrees, so it kept re-proposing "Nautilus", and the create-time retry loop suffixed it to dodge the lingering branch. Random selection now yields a fresh creature each time instead of marching the same name. - Dedup against worktrees in every repo, not just the active one - Pick randomly from the unused pool instead of the first list entry - Lowercase the result to match branch-name convention (fix/seahorse) - Expand the corpus 260 -> 552 (more marine species plus public-domain mythological sea creatures) so random picks rarely repeat getSuggestedCreatureName drops the now-unused repoId/nestWorkspaces params; the RNG is injectable for deterministic tests. Co-authored-by: Jinwoo-H <jinwoo0825@gmail.com> Co-authored-by: Orca <help@stably.ai>
17 lines
587 B
JavaScript
17 lines
587 B
JavaScript
import { readFileSync } from 'node:fs'
|
|
import { describe, expect, it } from 'vitest'
|
|
|
|
function readCreatureNames(path) {
|
|
const source = readFileSync(path, 'utf8')
|
|
return Array.from(source.matchAll(/^ '([^']+)',?$/gm), (match) => match[1])
|
|
}
|
|
|
|
describe('marine creature corpus mirrors', () => {
|
|
it('keeps the mobile mirror in parity with the shared corpus', () => {
|
|
const sharedNames = readCreatureNames('src/shared/marine-creatures.ts')
|
|
const mobileNames = readCreatureNames('mobile/src/constants/marine-creatures.ts')
|
|
|
|
expect(mobileNames).toEqual(sharedNames)
|
|
})
|
|
})
|