Two environments that share one working tree — most concretely Windows and WSL — can't safely share a single `.codegraph/`: the daemon lockfile records a platform-specific pid + socket (named pipe vs Unix socket), and SQLite locking across the WSL2/Windows filesystem boundary is unreliable, so two daemons over one index risks corruption. Add a `CODEGRAPH_DIR` env var (default `.codegraph`) that overrides the per-project data directory name, so each environment keeps its own index in the same tree (e.g. `CODEGRAPH_DIR=.codegraph-win` on Windows). The name is resolved live and validated (rejects separators / `..` / absolute, falling back to the default with a one-time stderr warning). Indexing and file-watching now skip ANY `.codegraph-*` sibling so neither side trips over the other's data. Routes the previously-hardcoded `.codegraph` literals (db path, lockfile, error log, watcher ignore, file-scan skip, installer) through the resolver. No extraction-version bump — index content is unchanged. Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
636d9fcb7d
commit
a56d9e6941
@@ -356,7 +356,7 @@ function printIndexResult(clack: typeof import('@clack/prompts'), result: IndexR
|
||||
clack.log.info(`The index is fully usable ${getGlyphs().dash} only the failed files are missing.`);
|
||||
}
|
||||
} else if (projectPath) {
|
||||
const logPath = path.join(projectPath, '.codegraph', 'errors.log');
|
||||
const logPath = path.join(getCodeGraphDir(projectPath), 'errors.log');
|
||||
if (fs.existsSync(logPath)) {
|
||||
fs.unlinkSync(logPath);
|
||||
}
|
||||
@@ -367,7 +367,7 @@ function printIndexResult(clack: typeof import('@clack/prompts'), result: IndexR
|
||||
* Write detailed error log to .codegraph/errors.log
|
||||
*/
|
||||
function writeErrorLog(projectPath: string, errors: Array<{ message: string; filePath?: string; severity: string; code?: string }>): void {
|
||||
const cgDir = path.join(projectPath, '.codegraph');
|
||||
const cgDir = getCodeGraphDir(projectPath);
|
||||
if (!fs.existsSync(cgDir)) return;
|
||||
|
||||
const logPath = path.join(cgDir, 'errors.log');
|
||||
|
||||
Reference in New Issue
Block a user