fix: Update project name when session already exists in createSDKSession
**Problem:** - Sessions created with empty project names couldn't be updated - INSERT OR IGNORE skipped updates when session already existed - Context-hook couldn't find observations (WHERE project = 'claude-mem') - 364 observations had empty project names **Root Cause:** createSDKSession() used INSERT OR IGNORE for idempotency, but never updated project/prompt fields when session already existed. If SAVE hook created session first (with empty project), NEW hook couldn't fix it. **Solution:** When INSERT is ignored (session exists), UPDATE project and user_prompt if we have non-empty values. This ensures project name gets set even when session was created by SAVE hook or with incomplete data. **Impact:** - New sessions will always have correct project name - Backfilled 364 historical observations with project='claude-mem' - Context injection will now work (finds observations by project) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -423,9 +423,13 @@ ${e.stack}`:e.message;if(Array.isArray(e))return`[${e.length} items]`;let r=Obje
|
||||
INSERT OR IGNORE INTO sdk_sessions
|
||||
(claude_session_id, sdk_session_id, project, user_prompt, started_at, started_at_epoch, status)
|
||||
VALUES (?, ?, ?, ?, ?, ?, 'active')
|
||||
`).run(e,e,r,a,t.toISOString(),n);return i.lastInsertRowid===0||i.changes===0?this.db.prepare(`
|
||||
`).run(e,e,r,a,t.toISOString(),n);return i.lastInsertRowid===0||i.changes===0?(r&&r.trim()!==""&&this.db.prepare(`
|
||||
UPDATE sdk_sessions
|
||||
SET project = ?, user_prompt = ?
|
||||
WHERE claude_session_id = ?
|
||||
`).run(r,a,e),this.db.prepare(`
|
||||
SELECT id FROM sdk_sessions WHERE claude_session_id = ? LIMIT 1
|
||||
`).get(e).id:i.lastInsertRowid}updateSDKSessionId(e,r){return this.db.prepare(`
|
||||
`).get(e).id):i.lastInsertRowid}updateSDKSessionId(e,r){return this.db.prepare(`
|
||||
UPDATE sdk_sessions
|
||||
SET sdk_session_id = ?
|
||||
WHERE id = ? AND sdk_session_id IS NULL
|
||||
|
||||
Reference in New Issue
Block a user