diff --git a/src/services/health.ts b/src/services/health.ts index df1383e..2f0d0a4 100644 --- a/src/services/health.ts +++ b/src/services/health.ts @@ -98,7 +98,8 @@ export async function probeAll(config: ObsidianRagConfig): Promise if (indexExists) { try { - const syncPath = resolve(dbPath, "..", "sync-result.json"); + const dataDir = resolveDataDir(); + const syncPath = resolve(dataDir, "sync-result.json"); if (existsSync(syncPath)) { const data = JSON.parse(readFileSync(syncPath, "utf-8")); lastSync = data.timestamp ?? null; @@ -120,6 +121,17 @@ export async function probeAll(config: ObsidianRagConfig): Promise }; } +function resolveDataDir(): string { + const cwd = process.cwd(); + const devDataDir = resolve(cwd, ".obsidian-rag"); + const devVaultMarker = resolve(cwd, "KnowledgeVault"); + if (existsSync(devDataDir) || existsSync(devVaultMarker)) { + return devDataDir; + } + const home = process.env.HOME ?? process.env.USERPROFILE ?? ""; + return resolve(home, ".obsidian-rag"); +} + async function probeOllama(baseUrl: string): Promise { try { const res = await fetch(`${baseUrl}/api/tags`, { signal: AbortSignal.timeout(3000) }); diff --git a/src/services/indexer-bridge.ts b/src/services/indexer-bridge.ts index b8577c4..874c6e5 100644 --- a/src/services/indexer-bridge.ts +++ b/src/services/indexer-bridge.ts @@ -109,7 +109,7 @@ export function readSyncResult(config: ObsidianRagConfig): { total_chunks: number; errors: Array<{ file: string; error: string }>; } | null { - const dataDir = resolve(process.cwd(), ".obsidian-rag"); + const dataDir = _resolveDataDir(); const path = resolve(dataDir, "sync-result.json"); if (!existsSync(path)) return null; try { @@ -118,3 +118,14 @@ export function readSyncResult(config: ObsidianRagConfig): { return null; } } + +function _resolveDataDir(): string { + const cwd = process.cwd(); + const devDataDir = resolve(cwd, ".obsidian-rag"); + const devVaultMarker = resolve(cwd, "KnowledgeVault"); + if (existsSync(devDataDir) || existsSync(devVaultMarker)) { + return devDataDir; + } + const home = process.env.HOME ?? process.env.USERPROFILE ?? ""; + return resolve(home, ".obsidian-rag"); +}