fix: address review feedback on statusline-counts.js
- Check CLAUDE_MEM_DATA_DIR env var before settings.json (Greptile) - Derive project before DB check for consistent output (Greptile) - Include project in error fallback output (Greptile) - Set executable permission for shebang compatibility (Greptile)
This commit is contained in:
Regular → Executable
+9
-7
@@ -23,9 +23,13 @@ import { existsSync, readFileSync } from "fs";
|
|||||||
import { homedir } from "os";
|
import { homedir } from "os";
|
||||||
import { join, basename } from "path";
|
import { join, basename } from "path";
|
||||||
|
|
||||||
|
const cwd = process.argv[2] || process.env.CLAUDE_CWD || process.cwd();
|
||||||
|
const project = basename(cwd);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
// Resolve data directory from settings (supports CLAUDE_MEM_DATA_DIR override)
|
// Resolve data directory: env var → settings.json → default
|
||||||
let dataDir = join(homedir(), ".claude-mem");
|
let dataDir = process.env.CLAUDE_MEM_DATA_DIR || join(homedir(), ".claude-mem");
|
||||||
|
if (!process.env.CLAUDE_MEM_DATA_DIR) {
|
||||||
const settingsPath = join(dataDir, "settings.json");
|
const settingsPath = join(dataDir, "settings.json");
|
||||||
if (existsSync(settingsPath)) {
|
if (existsSync(settingsPath)) {
|
||||||
try {
|
try {
|
||||||
@@ -33,18 +37,16 @@ try {
|
|||||||
if (settings.CLAUDE_MEM_DATA_DIR) dataDir = settings.CLAUDE_MEM_DATA_DIR;
|
if (settings.CLAUDE_MEM_DATA_DIR) dataDir = settings.CLAUDE_MEM_DATA_DIR;
|
||||||
} catch { /* use default */ }
|
} catch { /* use default */ }
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
const dbPath = join(dataDir, "claude-mem.db");
|
const dbPath = join(dataDir, "claude-mem.db");
|
||||||
if (!existsSync(dbPath)) {
|
if (!existsSync(dbPath)) {
|
||||||
console.log(JSON.stringify({ observations: 0, prompts: 0, project: "" }));
|
console.log(JSON.stringify({ observations: 0, prompts: 0, project }));
|
||||||
process.exit(0);
|
process.exit(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
const db = new Database(dbPath, { readonly: true });
|
const db = new Database(dbPath, { readonly: true });
|
||||||
|
|
||||||
const cwd = process.argv[2] || process.env.CLAUDE_CWD || process.cwd();
|
|
||||||
const project = basename(cwd);
|
|
||||||
|
|
||||||
const obs = db.query("SELECT COUNT(*) as c FROM observations WHERE project = ?").get(project);
|
const obs = db.query("SELECT COUNT(*) as c FROM observations WHERE project = ?").get(project);
|
||||||
// user_prompts links to projects through sdk_sessions.content_session_id
|
// user_prompts links to projects through sdk_sessions.content_session_id
|
||||||
const prompts = db.query(
|
const prompts = db.query(
|
||||||
@@ -55,5 +57,5 @@ try {
|
|||||||
console.log(JSON.stringify({ observations: obs.c, prompts: prompts.c, project }));
|
console.log(JSON.stringify({ observations: obs.c, prompts: prompts.c, project }));
|
||||||
db.close();
|
db.close();
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.log(JSON.stringify({ observations: 0, prompts: 0, error: e.message }));
|
console.log(JSON.stringify({ observations: 0, prompts: 0, project, error: e.message }));
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user