History

[codex] Enforce canonical Node namespace imports (#3238)

Julius Marminge committed 4 months ago

Commit 2fa37ec1 parent db2750271 files · +1205 −952Browse files

Showing the changes to apps/server/src/git (2 of 71 files). Show all

Unified · Split

2 files
  1. apps/server/src/git/GitManager.test.ts +64 −56
  2. apps/server/src/git/Utils.ts +3 −3
apps/server/src/git/GitManager.test.ts+64−56
@@ -1,7 +1,7 @@
11 // @effect-diagnostics nodeBuiltinImport:off
2−import fs from "node:fs";
3−import path from "node:path";
4−import { spawnSync } from "node:child_process";
2+import * as NodeFS from "node:fs";
3+import * as NodePath from "node:path";
4+import * as NodeChildProcess from "node:child_process";
55
66 import * as NodeServices from "@effect/platform-node/NodeServices";
77 import { it } from "@effect/vitest";
@@ -164,7 +164,7 @@ function normalizeFakePullRequestSummary(raw: unknown): GitHubCli.GitHubPullRequ · 156 unmodified lines
164164 }
165165
166166 function runGitSyncForFakeGh(cwd: string, args: readonly string[]): void {
167− const result = spawnSync("git", args, {
167+ const result = NodeChildProcess.spawnSync("git", args, {
168168 cwd,
169169 encoding: "utf8",
170170 });
@@ -254,7 +254,7 @@ function initRepo( · 83 unmodified lines
254254 yield* runGit(cwd, ["init", "--initial-branch=main"]);
255255 yield* runGit(cwd, ["config", "user.email", "test@example.com"]);
256256 yield* runGit(cwd, ["config", "user.name", "Test User"]);
257− yield* fs.writeFileString(path.join(cwd, "README.md"), "hello\n");
257+ yield* fs.writeFileString(NodePath.join(cwd, "README.md"), "hello\n");
258258 yield* runGit(cwd, ["add", "README.md"]);
259259 yield* runGit(cwd, ["commit", "-m", "Initial commit"]);
260260 });
@@ -459,7 +459,7 @@ function createGitHubCliWithFakeGh(scenario: FakeGhScenario = {}): { · 198 unmodified lines
459459 try: () => {
460460 const headBranch = scenario.pullRequest?.headRefName;
461461 if (headBranch) {
462− const existingBranch = spawnSync(
462+ const existingBranch = NodeChildProcess.spawnSync(
463463 "git",
464464 ["show-ref", "--verify", "--quiet", `refs/heads/${headBranch}`],
465465 {
@@ -916,7 +916,7 @@ it.layer(GitManagerTestLayer)("GitManager", (it) => { · 450 unmodified lines
916916 it.effect("status returns an explicit non-repo result for deleted directories", () =>
917917 Effect.gen(function* () {
918918 const rootDir = yield* makeTempDir("t3code-git-manager-missing-dir-");
919− const cwd = path.join(rootDir, "deleted-repo");
919+ const cwd = NodePath.join(rootDir, "deleted-repo");
920920 yield* makeDirectory(cwd);
921921 yield* removePath(cwd);
922922 const { manager } = yield* makeManager();
@@ -1026,7 +1026,7 @@ it.layer(GitManagerTestLayer)("GitManager", (it) => { · 103 unmodified lines
10261026 const forkDir = yield* createBareRemote();
10271027 yield* runGit(repoDir, ["remote", "add", "fork-seed", forkDir]);
10281028 yield* runGit(repoDir, ["checkout", "-b", "statemachine"]);
1029− fs.writeFileSync(path.join(repoDir, "fork-pr.txt"), "fork pr\n");
1029+ NodeFS.writeFileSync(NodePath.join(repoDir, "fork-pr.txt"), "fork pr\n");
10301030 yield* runGit(repoDir, ["add", "fork-pr.txt"]);
10311031 yield* runGit(repoDir, ["commit", "-m", "Fork PR branch"]);
10321032 yield* runGit(repoDir, ["push", "-u", "fork-seed", "statemachine"]);
@@ -1348,7 +1348,7 @@ it.layer(GitManagerTestLayer)("GitManager", (it) => { · 315 unmodified lines
13481348 Effect.gen(function* () {
13491349 const repoDir = yield* makeTempDir("t3code-git-manager-");
13501350 yield* initRepo(repoDir);
1351− fs.writeFileSync(path.join(repoDir, "README.md"), "hello\nworld\n");
1351+ NodeFS.writeFileSync(NodePath.join(repoDir, "README.md"), "hello\nworld\n");
13521352
13531353 const { manager } = yield* makeManager();
13541354 const result = yield* runStackedAction(manager, {
@@ -1383,7 +1383,7 @@ it.layer(GitManagerTestLayer)("GitManager", (it) => { · 28 unmodified lines
13831383 Effect.gen(function* () {
13841384 const repoDir = yield* makeTempDir("t3code-git-manager-");
13851385 yield* initRepo(repoDir);
1386− fs.writeFileSync(path.join(repoDir, "README.md"), "hello\ncustom\n");
1386+ NodeFS.writeFileSync(NodePath.join(repoDir, "README.md"), "hello\ncustom\n");
13871387 let generatedCount = 0;
13881388
13891389 const { manager } = yield* makeManager({
@@ -1426,8 +1426,8 @@ it.layer(GitManagerTestLayer)("GitManager", (it) => { · 36 unmodified lines
14261426 Effect.gen(function* () {
14271427 const repoDir = yield* makeTempDir("t3code-git-manager-");
14281428 yield* initRepo(repoDir);
1429− fs.writeFileSync(path.join(repoDir, "a.txt"), "file a\n");
1430− fs.writeFileSync(path.join(repoDir, "b.txt"), "file b\n");
1429+ NodeFS.writeFileSync(NodePath.join(repoDir, "a.txt"), "file a\n");
1430+ NodeFS.writeFileSync(NodePath.join(repoDir, "b.txt"), "file b\n");
14311431
14321432 const { manager } = yield* makeManager();
14331433 const result = yield* runStackedAction(manager, {
@@ -1454,7 +1454,7 @@ it.layer(GitManagerTestLayer)("GitManager", (it) => { · 20 unmodified lines
14541454 const remoteDir = yield* createBareRemote();
14551455 yield* runGit(repoDir, ["remote", "add", "origin", remoteDir]);
14561456 yield* runGit(repoDir, ["push", "-u", "origin", "main"]);
1457− fs.writeFileSync(path.join(repoDir, "README.md"), "hello\nfeature-branch\n");
1457+ NodeFS.writeFileSync(NodePath.join(repoDir, "README.md"), "hello\nfeature-branch\n");
14581458 let generatedCount = 0;
14591459
14601460 const { manager } = yield* makeManager({
@@ -1514,7 +1514,7 @@ it.layer(GitManagerTestLayer)("GitManager", (it) => { · 53 unmodified lines
15141514 Effect.gen(function* () {
15151515 const repoDir = yield* makeTempDir("t3code-git-manager-");
15161516 yield* initRepo(repoDir);
1517− fs.writeFileSync(path.join(repoDir, "README.md"), "hello\ncustom-feature\n");
1517+ NodeFS.writeFileSync(NodePath.join(repoDir, "README.md"), "hello\ncustom-feature\n");
15181518 let generatedCount = 0;
15191519
15201520 const { manager } = yield* makeManager({
@@ -1597,7 +1597,7 @@ it.layer(GitManagerTestLayer)("GitManager", (it) => { · 76 unmodified lines
15971597 yield* runGit(repoDir, ["checkout", "-b", "feature/stacked-flow"]);
15981598 const remoteDir = yield* createBareRemote();
15991599 yield* runGit(repoDir, ["remote", "add", "origin", remoteDir]);
1600− fs.writeFileSync(path.join(repoDir, "feature.txt"), "feature\n");
1600+ NodeFS.writeFileSync(NodePath.join(repoDir, "feature.txt"), "feature\n");
16011601
16021602 const { manager } = yield* makeManager();
16031603 const result = yield* runStackedAction(manager, {
@@ -1626,7 +1626,7 @@ it.layer(GitManagerTestLayer)("GitManager", (it) => { · 22 unmodified lines
16261626 yield* runGit(repoDir, ["checkout", "-b", "feature/no-upstream-pr"]);
16271627 const remoteDir = yield* createBareRemote();
16281628 yield* runGit(repoDir, ["remote", "add", "origin", remoteDir]);
1629− fs.writeFileSync(path.join(repoDir, "feature.txt"), "feature\n");
1629+ NodeFS.writeFileSync(NodePath.join(repoDir, "feature.txt"), "feature\n");
16301630
16311631 const { manager, ghCalls } = yield* makeManager({
16321632 ghScenario: {
@@ -1697,7 +1697,7 @@ it.layer(GitManagerTestLayer)("GitManager", (it) => { · 64 unmodified lines
16971697 yield* runGit(repoDir, ["checkout", "-b", "feature/push-only"]);
16981698 const remoteDir = yield* createBareRemote();
16991699 yield* runGit(repoDir, ["remote", "add", "origin", remoteDir]);
1700− fs.writeFileSync(path.join(repoDir, "push-only.txt"), "push only\n");
1700+ NodeFS.writeFileSync(NodePath.join(repoDir, "push-only.txt"), "push only\n");
17011701 yield* runGit(repoDir, ["add", "push-only.txt"]);
17021702 yield* runGit(repoDir, ["commit", "-m", "Push only branch"]);
17031703
@@ -1725,11 +1725,11 @@ it.layer(GitManagerTestLayer)("GitManager", (it) => { · 21 unmodified lines
17251725 yield* runGit(repoDir, ["checkout", "-b", "feature/push-dirty"]);
17261726 const remoteDir = yield* createBareRemote();
17271727 yield* runGit(repoDir, ["remote", "add", "origin", remoteDir]);
1728− fs.writeFileSync(path.join(repoDir, "push-dirty.txt"), "push dirty\n");
1728+ NodeFS.writeFileSync(NodePath.join(repoDir, "push-dirty.txt"), "push dirty\n");
17291729 yield* runGit(repoDir, ["add", "push-dirty.txt"]);
17301730 yield* runGit(repoDir, ["commit", "-m", "Push dirty branch"]);
1731− fs.mkdirSync(path.join(repoDir, ".vercel"));
1732− fs.writeFileSync(path.join(repoDir, ".vercel", "project.json"), "{}\n");
1731+ NodeFS.mkdirSync(NodePath.join(repoDir, ".vercel"));
1732+ NodeFS.writeFileSync(NodePath.join(repoDir, ".vercel", "project.json"), "{}\n");
17331733
17341734 const { manager } = yield* makeManager();
17351735 const result = yield* runStackedAction(manager, {
@@ -1760,7 +1760,7 @@ it.layer(GitManagerTestLayer)("GitManager", (it) => { · 24 unmodified lines
17601760 yield* runGit(repoDir, ["checkout", "-b", "feature/create-pr-only"]);
17611761 const remoteDir = yield* createBareRemote();
17621762 yield* runGit(repoDir, ["remote", "add", "origin", remoteDir]);
1763− fs.writeFileSync(path.join(repoDir, "create-pr-only.txt"), "create pr\n");
1763+ NodeFS.writeFileSync(NodePath.join(repoDir, "create-pr-only.txt"), "create pr\n");
17641764 yield* runGit(repoDir, ["add", "create-pr-only.txt"]);
17651765 yield* runGit(repoDir, ["commit", "-m", "Create PR only branch"]);
17661766
@@ -1805,7 +1805,7 @@ it.layer(GitManagerTestLayer)("GitManager", (it) => { · 38 unmodified lines
18051805 const repoDir = yield* makeTempDir("t3code-git-manager-");
18061806 yield* initRepo(repoDir);
18071807 yield* runGit(repoDir, ["checkout", "-b", "feature/provider-fallback"]);
1808− fs.writeFileSync(path.join(repoDir, "provider-fallback.txt"), "fallback\n");
1808+ NodeFS.writeFileSync(NodePath.join(repoDir, "provider-fallback.txt"), "fallback\n");
18091809 yield* runGit(repoDir, ["add", "provider-fallback.txt"]);
18101810 yield* runGit(repoDir, ["commit", "-m", "Provider fallback"]);
18111811 const remoteDir = yield* createBareRemote();
@@ -1982,7 +1982,7 @@ it.layer(GitManagerTestLayer)("GitManager", (it) => { · 170 unmodified lines
19821982 yield* runGit(repoDir, ["checkout", "main"]);
19831983 yield* runGit(repoDir, ["branch", "-D", "effect-atom"]);
19841984 yield* runGit(repoDir, ["checkout", "--track", "my-org/upstream/effect-atom"]);
1985− fs.writeFileSync(path.join(repoDir, "changes.txt"), "change\n");
1985+ NodeFS.writeFileSync(NodePath.join(repoDir, "changes.txt"), "change\n");
19861986 yield* runGit(repoDir, ["add", "changes.txt"]);
19871987 yield* runGit(repoDir, ["commit", "-m", "Feature commit"]);
19881988
@@ -2200,7 +2200,7 @@ it.layer(GitManagerTestLayer)("GitManager", (it) => { · 211 unmodified lines
22002200 yield* runGit(repoDir, ["checkout", "-b", "feature-create-pr"]);
22012201 const remoteDir = yield* createBareRemote();
22022202 yield* runGit(repoDir, ["remote", "add", "origin", remoteDir]);
2203− fs.writeFileSync(path.join(repoDir, "changes.txt"), "change\n");
2203+ NodeFS.writeFileSync(NodePath.join(repoDir, "changes.txt"), "change\n");
22042204 yield* runGit(repoDir, ["add", "changes.txt"]);
22052205 yield* runGit(repoDir, ["commit", "-m", "Feature commit"]);
22062206 yield* runGit(repoDir, ["push", "-u", "origin", "feature-create-pr"]);
@@ -2252,7 +2252,7 @@ it.layer(GitManagerTestLayer)("GitManager", (it) => { · 45 unmodified lines
22522252 yield* runGit(peerDir, ["clone", remoteDir, "."]);
22532253 yield* runGit(peerDir, ["config", "user.email", "peer@example.com"]);
22542254 yield* runGit(peerDir, ["config", "user.name", "Peer User"]);
2255− fs.writeFileSync(path.join(peerDir, "remote.txt"), "remote\n");
2255+ NodeFS.writeFileSync(NodePath.join(peerDir, "remote.txt"), "remote\n");
22562256 yield* runGit(peerDir, ["add", "remote.txt"]);
22572257 yield* runGit(peerDir, ["commit", "-m", "Remote base commit"]);
22582258 yield* runGit(peerDir, ["push", "origin", "main"]);
@@ -2265,7 +2265,7 @@ it.layer(GitManagerTestLayer)("GitManager", (it) => { · 6 unmodified lines
22652265 "feature/remote-base",
22662266 "origin/main",
22672267 ]);
2268− fs.writeFileSync(path.join(repoDir, "feature.txt"), "feature\n");
2268+ NodeFS.writeFileSync(NodePath.join(repoDir, "feature.txt"), "feature\n");
22692269 yield* runGit(repoDir, ["add", "feature.txt"]);
22702270 yield* runGit(repoDir, ["commit", "-m", "Feature commit"]);
22712271 yield* runGit(repoDir, ["push", "-u", "origin", "feature/remote-base"]);
@@ -2304,7 +2304,7 @@ it.layer(GitManagerTestLayer)("GitManager", (it) => { · 32 unmodified lines
23042304 yield* runGit(repoDir, ["checkout", "-b", "feature/no-fork-match"]);
23052305 const remoteDir = yield* createBareRemote();
23062306 yield* runGit(repoDir, ["remote", "add", "origin", remoteDir]);
2307− fs.writeFileSync(path.join(repoDir, "changes.txt"), "change\n");
2307+ NodeFS.writeFileSync(NodePath.join(repoDir, "changes.txt"), "change\n");
23082308 yield* runGit(repoDir, ["add", "changes.txt"]);
23092309 yield* runGit(repoDir, ["commit", "-m", "Feature commit"]);
23102310 yield* runGit(repoDir, ["push", "-u", "origin", "feature/no-fork-match"]);
@@ -2376,7 +2376,7 @@ it.layer(GitManagerTestLayer)("GitManager", (it) => { · 65 unmodified lines
23762376 const forkDir = yield* createBareRemote();
23772377 yield* runGit(repoDir, ["remote", "add", "fork-seed", forkDir]);
23782378 yield* runGit(repoDir, ["checkout", "-b", "statemachine"]);
2379− fs.writeFileSync(path.join(repoDir, "changes.txt"), "change\n");
2379+ NodeFS.writeFileSync(NodePath.join(repoDir, "changes.txt"), "change\n");
23802380 yield* runGit(repoDir, ["add", "changes.txt"]);
23812381 yield* runGit(repoDir, ["commit", "-m", "Feature commit"]);
23822382 yield* runGit(repoDir, ["push", "-u", "fork-seed", "statemachine"]);
@@ -2556,7 +2556,7 @@ it.layer(GitManagerTestLayer)("GitManager", (it) => { · 173 unmodified lines
25562556 const repoDir = yield* makeTempDir("t3code-git-manager-");
25572557 yield* initRepo(repoDir);
25582558 yield* runGit(repoDir, ["checkout", "-b", "feature/pr-local"]);
2559− fs.writeFileSync(path.join(repoDir, "local.txt"), "local\n");
2559+ NodeFS.writeFileSync(NodePath.join(repoDir, "local.txt"), "local\n");
25602560 yield* runGit(repoDir, ["add", "local.txt"]);
25612561 yield* runGit(repoDir, ["commit", "-m", "Local PR branch"]);
25622562
@@ -2597,7 +2597,7 @@ it.layer(GitManagerTestLayer)("GitManager", (it) => { · 34 unmodified lines
25972597 yield* runGit(repoDir, ["remote", "add", "origin", remoteDir]);
25982598 yield* runGit(repoDir, ["push", "-u", "origin", "main"]);
25992599 yield* runGit(repoDir, ["checkout", "-b", "feature/pr-local-upstream"]);
2600− fs.writeFileSync(path.join(repoDir, "upstream.txt"), "upstream\n");
2600+ NodeFS.writeFileSync(NodePath.join(repoDir, "upstream.txt"), "upstream\n");
26012601 yield* runGit(repoDir, ["add", "upstream.txt"]);
26022602 yield* runGit(repoDir, ["commit", "-m", "Local upstream PR branch"]);
26032603 yield* runGit(repoDir, ["push", "-u", "origin", "feature/pr-local-upstream"]);
@@ -2655,7 +2655,7 @@ it.layer(GitManagerTestLayer)("GitManager", (it) => { · 51 unmodified lines
26552655 yield* runGit(repoDir, ["remote", "add", "origin", remoteDir]);
26562656 yield* runGit(repoDir, ["push", "-u", "origin", "main"]);
26572657 yield* runGit(repoDir, ["checkout", "-b", "feature/pr-local-no-head-repo"]);
2658− fs.writeFileSync(path.join(repoDir, "no-head-repo.txt"), "upstream\n");
2658+ NodeFS.writeFileSync(NodePath.join(repoDir, "no-head-repo.txt"), "upstream\n");
26592659 yield* runGit(repoDir, ["add", "no-head-repo.txt"]);
26602660 yield* runGit(repoDir, ["commit", "-m", "Local PR branch without repo metadata"]);
26612661 yield* runGit(repoDir, ["push", "-u", "origin", "feature/pr-local-no-head-repo"]);
@@ -2702,7 +2702,7 @@ it.layer(GitManagerTestLayer)("GitManager", (it) => { · 40 unmodified lines
27022702 yield* runGit(repoDir, ["remote", "add", "origin", remoteDir]);
27032703 yield* runGit(repoDir, ["push", "-u", "origin", "main"]);
27042704 yield* runGit(repoDir, ["checkout", "-b", "feature/pr-worktree"]);
2705− fs.writeFileSync(path.join(repoDir, "worktree.txt"), "worktree\n");
2705+ NodeFS.writeFileSync(NodePath.join(repoDir, "worktree.txt"), "worktree\n");
27062706 yield* runGit(repoDir, ["add", "worktree.txt"]);
27072707 yield* runGit(repoDir, ["commit", "-m", "PR worktree branch"]);
27082708 yield* runGit(repoDir, ["push", "-u", "origin", "feature/pr-worktree"]);
@@ -2730,7 +2730,7 @@ it.layer(GitManagerTestLayer)("GitManager", (it) => { · 21 unmodified lines
27302730
27312731 expect(result.branch).toBe("feature/pr-worktree");
27322732 expect(result.worktreePath).not.toBeNull();
2733− expect(fs.existsSync(result.worktreePath as string)).toBe(true);
2733+ expect(NodeFS.existsSync(result.worktreePath as string)).toBe(true);
27342734 const worktreeBranch = (yield* runGit(result.worktreePath as string, [
27352735 "branch",
27362736 "--show-current",
@@ -2747,7 +2747,7 @@ it.layer(GitManagerTestLayer)("GitManager", (it) => { · 10 unmodified lines
27472747 yield* runGit(repoDir, ["remote", "add", "origin", remoteDir]);
27482748 yield* runGit(repoDir, ["push", "-u", "origin", "main"]);
27492749 yield* runGit(repoDir, ["checkout", "-b", "feature/pr-worktree-setup"]);
2750− fs.writeFileSync(path.join(repoDir, "setup.txt"), "setup\n");
2750+ NodeFS.writeFileSync(NodePath.join(repoDir, "setup.txt"), "setup\n");
27512751 yield* runGit(repoDir, ["add", "setup.txt"]);
27522752 yield* runGit(repoDir, ["commit", "-m", "PR worktree setup branch"]);
27532753 yield* runGit(repoDir, ["push", "-u", "origin", "feature/pr-worktree-setup"]);
@@ -2802,7 +2802,7 @@ it.layer(GitManagerTestLayer)("GitManager", (it) => { · 48 unmodified lines
28022802 yield* runGit(repoDir, ["push", "-u", "origin", "main"]);
28032803 yield* runGit(repoDir, ["remote", "add", "fork-seed", forkDir]);
28042804 yield* runGit(repoDir, ["checkout", "-b", "feature/pr-fork"]);
2805− fs.writeFileSync(path.join(repoDir, "fork.txt"), "fork\n");
2805+ NodeFS.writeFileSync(NodePath.join(repoDir, "fork.txt"), "fork\n");
28062806 yield* runGit(repoDir, ["add", "fork.txt"]);
28072807 yield* runGit(repoDir, ["commit", "-m", "Fork PR branch"]);
28082808 yield* runGit(repoDir, ["push", "-u", "fork-seed", "feature/pr-fork"]);
@@ -2864,7 +2864,7 @@ it.layer(GitManagerTestLayer)("GitManager", (it) => { · 55 unmodified lines
28642864 yield* runGit(repoDir, ["push", "-u", "origin", "main"]);
28652865 yield* runGit(repoDir, ["remote", "add", "fork-seed", forkDir]);
28662866 yield* runGit(repoDir, ["checkout", "-b", "feature/pr-local-fork"]);
2867− fs.writeFileSync(path.join(repoDir, "local-fork.txt"), "local fork\n");
2867+ NodeFS.writeFileSync(NodePath.join(repoDir, "local-fork.txt"), "local fork\n");
28682868 yield* runGit(repoDir, ["add", "local-fork.txt"]);
28692869 yield* runGit(repoDir, ["commit", "-m", "Local fork PR branch"]);
28702870 yield* runGit(repoDir, ["push", "-u", "fork-seed", "feature/pr-local-fork"]);
@@ -2917,7 +2917,7 @@ it.layer(GitManagerTestLayer)("GitManager", (it) => { · 46 unmodified lines
29172917 yield* runGit(repoDir, ["push", "-u", "origin", "main"]);
29182918 yield* runGit(repoDir, ["remote", "add", "binbandit-seed", forkDir]);
29192919 yield* runGit(repoDir, ["checkout", "-b", "fix/git-action-default-without-origin"]);
2920− fs.writeFileSync(path.join(repoDir, "derived-fork.txt"), "derived fork\n");
2920+ NodeFS.writeFileSync(NodePath.join(repoDir, "derived-fork.txt"), "derived fork\n");
29212921 yield* runGit(repoDir, ["add", "derived-fork.txt"]);
29222922 yield* runGit(repoDir, ["commit", "-m", "Derived fork PR branch"]);
29232923 yield* runGit(repoDir, [
@@ -2969,11 +2969,15 @@ it.layer(GitManagerTestLayer)("GitManager", (it) => { · 45 unmodified lines
29692969 const repoDir = yield* makeTempDir("t3code-git-manager-");
29702970 yield* initRepo(repoDir);
29712971 yield* runGit(repoDir, ["checkout", "-b", "feature/pr-existing-worktree"]);
2972− fs.writeFileSync(path.join(repoDir, "existing.txt"), "existing\n");
2972+ NodeFS.writeFileSync(NodePath.join(repoDir, "existing.txt"), "existing\n");
29732973 yield* runGit(repoDir, ["add", "existing.txt"]);
29742974 yield* runGit(repoDir, ["commit", "-m", "Existing worktree branch"]);
29752975 yield* runGit(repoDir, ["checkout", "main"]);
2976− const worktreePath = path.join(repoDir, "..", `pr-existing-${path.basename(repoDir)}`);
2976+ const worktreePath = NodePath.join(
2977+ repoDir,
2978+ "..",
2979+ `pr-existing-${NodePath.basename(repoDir)}`,
2980+ );
29772981 yield* runGit(repoDir, ["worktree", "add", worktreePath, "feature/pr-existing-worktree"]);
29782982
29792983 const setupCalls: ProjectSetupScriptRunner.ProjectSetupScriptRunnerInput[] = [];
@@ -3004,8 +3008,8 @@ it.layer(GitManagerTestLayer)("GitManager", (it) => { · 24 unmodified lines
30043008 threadId: asThreadId("thread-pr-existing-worktree"),
30053009 });
30063010
3007− expect(result.worktreePath && fs.realpathSync.native(result.worktreePath)).toBe(
3008− fs.realpathSync.native(worktreePath),
3011+ expect(result.worktreePath && NodeFS.realpathSync.native(result.worktreePath)).toBe(
3012+ NodeFS.realpathSync.native(worktreePath),
30093013 );
30103014 expect(result.branch).toBe("feature/pr-existing-worktree");
30113015 expect(setupCalls).toHaveLength(0);
@@ -3024,7 +3028,7 @@ it.layer(GitManagerTestLayer)("GitManager", (it) => { · 12 unmodified lines
30243028 yield* runGit(repoDir, ["push", "-u", "origin", "main"]);
30253029 yield* runGit(repoDir, ["remote", "add", "fork-seed", forkDir]);
30263030 yield* runGit(repoDir, ["checkout", "-b", "fork-main-source"]);
3027− fs.writeFileSync(path.join(repoDir, "fork-main.txt"), "fork main\n");
3031+ NodeFS.writeFileSync(NodePath.join(repoDir, "fork-main.txt"), "fork main\n");
30283032 yield* runGit(repoDir, ["add", "fork-main.txt"]);
30293033 yield* runGit(repoDir, ["commit", "-m", "Fork main branch"]);
30303034 yield* runGit(repoDir, ["push", "-u", "fork-seed", "fork-main-source:main"]);
@@ -3084,7 +3088,7 @@ it.layer(GitManagerTestLayer)("GitManager", (it) => { · 53 unmodified lines
30843088 yield* runGit(repoDir, ["push", "-u", "origin", "main"]);
30853089 yield* runGit(repoDir, ["remote", "add", "fork-seed", forkDir]);
30863090 yield* runGit(repoDir, ["checkout", "-b", "fork-main-source"]);
3087− fs.writeFileSync(path.join(repoDir, "fork-main-second.txt"), "fork main second\n");
3091+ NodeFS.writeFileSync(NodePath.join(repoDir, "fork-main-second.txt"), "fork main second\n");
30883092 yield* runGit(repoDir, ["add", "fork-main-second.txt"]);
30893093 yield* runGit(repoDir, ["commit", "-m", "Fork main second branch"]);
30903094 yield* runGit(repoDir, ["push", "-u", "fork-seed", "fork-main-source:main"]);
@@ -3142,12 +3146,16 @@ it.layer(GitManagerTestLayer)("GitManager", (it) => { · 51 unmodified lines
31423146 yield* runGit(repoDir, ["push", "-u", "origin", "main"]);
31433147 yield* runGit(repoDir, ["remote", "add", "fork-seed", forkDir]);
31443148 yield* runGit(repoDir, ["checkout", "-b", "feature/pr-reused-fork"]);
3145− fs.writeFileSync(path.join(repoDir, "reused-fork.txt"), "reused fork\n");
3149+ NodeFS.writeFileSync(NodePath.join(repoDir, "reused-fork.txt"), "reused fork\n");
31463150 yield* runGit(repoDir, ["add", "reused-fork.txt"]);
31473151 yield* runGit(repoDir, ["commit", "-m", "Reused fork PR branch"]);
31483152 yield* runGit(repoDir, ["push", "-u", "fork-seed", "feature/pr-reused-fork"]);
31493153 yield* runGit(repoDir, ["checkout", "main"]);
3150− const worktreePath = path.join(repoDir, "..", `pr-reused-fork-${path.basename(repoDir)}`);
3154+ const worktreePath = NodePath.join(
3155+ repoDir,
3156+ "..",
3157+ `pr-reused-fork-${NodePath.basename(repoDir)}`,
3158+ );
31513159 yield* runGit(repoDir, ["worktree", "add", worktreePath, "feature/pr-reused-fork"]);
31523160 yield* runGit(worktreePath, ["branch", "--unset-upstream"], true);
31533161
@@ -3179,8 +3187,8 @@ it.layer(GitManagerTestLayer)("GitManager", (it) => { · 25 unmodified lines
31793187 mode: "worktree",
31803188 });
31813189
3182− expect(result.worktreePath && fs.realpathSync.native(result.worktreePath)).toBe(
3183− fs.realpathSync.native(worktreePath),
3190+ expect(result.worktreePath && NodeFS.realpathSync.native(result.worktreePath)).toBe(
3191+ NodeFS.realpathSync.native(worktreePath),
31843192 );
31853193 expect(
31863194 (yield* runGit(worktreePath, ["rev-parse", "--abbrev-ref", "@{upstream}"])).stdout.trim(),
@@ -3196,7 +3204,7 @@ it.layer(GitManagerTestLayer)("GitManager", (it) => { · 9 unmodified lines
31963204 yield* runGit(repoDir, ["remote", "add", "origin", remoteDir]);
31973205 yield* runGit(repoDir, ["push", "-u", "origin", "main"]);
31983206 yield* runGit(repoDir, ["checkout", "-b", "feature/pr-setup-failure"]);
3199− fs.writeFileSync(path.join(repoDir, "setup-failure.txt"), "setup failure\n");
3207+ NodeFS.writeFileSync(NodePath.join(repoDir, "setup-failure.txt"), "setup failure\n");
32003208 yield* runGit(repoDir, ["add", "setup-failure.txt"]);
32013209 yield* runGit(repoDir, ["commit", "-m", "PR setup failure branch"]);
32023210 yield* runGit(repoDir, ["push", "-u", "origin", "feature/pr-setup-failure"]);
@@ -3236,7 +3244,7 @@ it.layer(GitManagerTestLayer)("GitManager", (it) => { · 33 unmodified lines
32363244
32373245 expect(result.branch).toBe("feature/pr-setup-failure");
32383246 expect(result.worktreePath).not.toBeNull();
3239− expect(fs.existsSync(result.worktreePath as string)).toBe(true);
3247+ expect(NodeFS.existsSync(result.worktreePath as string)).toBe(true);
32403248 }),
32413249 );
32423250
@@ -3276,9 +3284,9 @@ it.layer(GitManagerTestLayer)("GitManager", (it) => { · 33 unmodified lines
32763284 Effect.gen(function* () {
32773285 const repoDir = yield* makeTempDir("t3code-git-manager-");
32783286 yield* initRepo(repoDir);
3279− fs.writeFileSync(path.join(repoDir, "hooked.txt"), "hooked\n");
3280− fs.writeFileSync(
3281− path.join(repoDir, ".git", "hooks", "pre-commit"),
3287+ NodeFS.writeFileSync(NodePath.join(repoDir, "hooked.txt"), "hooked\n");
3288+ NodeFS.writeFileSync(
3289+ NodePath.join(repoDir, ".git", "hooks", "pre-commit"),
32823290 '#!/bin/sh\necho "hook: start" >&2\nsleep 0.05\necho "hook: end" >&2\n',
32833291 { mode: 0o755 },
32843292 );
@@ -3339,9 +3347,9 @@ it.layer(GitManagerTestLayer)("GitManager", (it) => { · 54 unmodified lines
33393347 Effect.gen(function* () {
33403348 const repoDir = yield* makeTempDir("t3code-git-manager-");
33413349 yield* initRepo(repoDir);
3342− fs.writeFileSync(path.join(repoDir, "hook-failure.txt"), "broken\n");
3343− fs.writeFileSync(
3344− path.join(repoDir, ".git", "hooks", "pre-commit"),
3350+ NodeFS.writeFileSync(NodePath.join(repoDir, "hook-failure.txt"), "broken\n");
3351+ NodeFS.writeFileSync(
3352+ NodePath.join(repoDir, ".git", "hooks", "pre-commit"),
33453353 '#!/bin/sh\necho "hook: fail" >&2\nexit 1\n',
33463354 { mode: 0o755 },
33473355 );
@@ -3392,7 +3400,7 @@ it.layer(GitManagerTestLayer)("GitManager", (it) => { · 44 unmodified lines
33923400 yield* runGit(repoDir, ["checkout", "-b", "feature/pr-only-follow-up"]);
33933401 const remoteDir = yield* createBareRemote();
33943402 yield* runGit(repoDir, ["remote", "add", "origin", remoteDir]);
3395− fs.writeFileSync(path.join(repoDir, "pr-only.txt"), "pr only\n");
3403+ NodeFS.writeFileSync(NodePath.join(repoDir, "pr-only.txt"), "pr only\n");
33963404 yield* runGit(repoDir, ["add", "pr-only.txt"]);
33973405 yield* runGit(repoDir, ["commit", "-m", "PR only branch"]);
33983406 yield* runGit(repoDir, ["push", "-u", "origin", "feature/pr-only-follow-up"]);
apps/server/src/git/Utils.ts+3−3
@@ -1,7 +1,7 @@
11 // @effect-diagnostics nodeBuiltinImport:off
2−import { existsSync } from "node:fs";
3−import { join } from "node:path";
2+import * as NodeFS from "node:fs";
3+import * as NodePath from "node:path";
44
55 export function isGitRepository(cwd: string): boolean {
6− return existsSync(join(cwd, ".git"));
6+ return NodeFS.existsSync(NodePath.join(cwd, ".git"));
77 }