mirror of
https://github.com/getpaseo/paseo.git
synced 2026-07-29 12:01:31 +00:00
* refactor(server): extract git-mutation primitives into git-mutation module Move checkoutExistingBranch, createBranchFromBase and notifyGitMutation (plus their internal ref-validation / clean-tree / branch-existence helpers) out of the 6.5k-line Session class into session/git-mutation/git-mutation-service.ts — a deep module with a 3-method interface and a createGitMutationService(deps) factory, mirroring the git-metadata-generator port extracted in #1702. These primitives were smeared across three sub-session boundaries as host callbacks. CheckoutSession now takes gitMutation directly, shrinking CheckoutSessionHost from 6 members to 4; the worktree session-config builder and the auto-naming / worktree-creation paths call this.gitMutation.* instead of private Session methods. Adds git-mutation-service.test.ts: guard branches covered with in-memory fakes, happy paths against a real temp git repo. The superseded internal-mock tests in session.test.ts (which stubbed execCommand and the git service) are removed in favour of the real-dependency coverage. * refactor(server): address review on git-mutation-service - Inline doesLocalBranchExist into its sole caller: once the redundant ref-validation is removed (createBranchFromBase already validates newBranchName with the "new branch" label), the helper is a pure passthrough to workspaceGitService.hasLocalBranch. - Replace .some(...).toBe(true) snapshot assertions with toContainEqual so failures surface the full recorded call (and assert cwd too).