From c298351d88de9eca0f727798e26a039f009b6c9a Mon Sep 17 00:00:00 2001 From: MoerAI Date: Fri, 6 Feb 2026 17:23:11 +0900 Subject: [PATCH] fix(hooks): use path.isAbsolute() for cross-platform path detection Replace path.startsWith('/') with path.isAbsolute() in directory injector hooks. The startsWith('/') check only works on Unix-like systems where absolute paths begin with '/'. On Windows, absolute paths start with drive letters (e.g., C:\), causing resolveFilePath to incorrectly treat them as relative and prepend the project directory. This follows the same pattern already used in src/features/claude-tasks/storage.ts (commit 8e349aa). Affected hooks: - directory-agents-injector: AGENTS.md injection - directory-readme-injector: README.md injection --- src/hooks/directory-agents-injector/finder.ts | 4 ++-- src/hooks/directory-readme-injector/finder.ts | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/hooks/directory-agents-injector/finder.ts b/src/hooks/directory-agents-injector/finder.ts index b54d7e50c..9025f6d3b 100644 --- a/src/hooks/directory-agents-injector/finder.ts +++ b/src/hooks/directory-agents-injector/finder.ts @@ -1,11 +1,11 @@ import { existsSync } from "node:fs"; -import { dirname, join, resolve } from "node:path"; +import { dirname, isAbsolute, join, resolve } from "node:path"; import { AGENTS_FILENAME } from "./constants"; export function resolveFilePath(rootDirectory: string, path: string): string | null { if (!path) return null; - if (path.startsWith("/")) return path; + if (isAbsolute(path)) return path; return resolve(rootDirectory, path); } diff --git a/src/hooks/directory-readme-injector/finder.ts b/src/hooks/directory-readme-injector/finder.ts index bc671bff0..70e0ba04d 100644 --- a/src/hooks/directory-readme-injector/finder.ts +++ b/src/hooks/directory-readme-injector/finder.ts @@ -1,11 +1,11 @@ import { existsSync } from "node:fs"; -import { dirname, join, resolve } from "node:path"; +import { dirname, isAbsolute, join, resolve } from "node:path"; import { README_FILENAME } from "./constants"; export function resolveFilePath(rootDirectory: string, path: string): string | null { if (!path) return null; - if (path.startsWith("/")) return path; + if (isAbsolute(path)) return path; return resolve(rootDirectory, path); }