fix(session-sync): add type guard for estimated_cost_usd to prevent NOT NULL errors (#314)
Fixes remaining NOT NULL constraint failures after PR #312. Problem: - Even with COALESCE in SQL, some sessions still fail with NOT NULL error - Hermes may return undefined/null/NaN values that pass through COALESCE Solution: - Add explicit type guard: `typeof value === 'number'` - Only use the value if it's a valid number, otherwise default to 0 - This ensures we never pass undefined/null/NaN to the database Related to issue #308
This commit is contained in:
@@ -215,6 +215,10 @@ function syncProfileSessions(profile: string): {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Update session with Hermes data
|
// Update session with Hermes data
|
||||||
|
const estimatedCost = typeof hermesSession.estimated_cost_usd === 'number'
|
||||||
|
? hermesSession.estimated_cost_usd
|
||||||
|
: 0
|
||||||
|
|
||||||
updateSession(newSessionId, {
|
updateSession(newSessionId, {
|
||||||
started_at: hermesSession.started_at,
|
started_at: hermesSession.started_at,
|
||||||
ended_at: hermesSession.ended_at,
|
ended_at: hermesSession.ended_at,
|
||||||
@@ -224,7 +228,7 @@ function syncProfileSessions(profile: string): {
|
|||||||
cache_read_tokens: hermesSession.cache_read_tokens,
|
cache_read_tokens: hermesSession.cache_read_tokens,
|
||||||
cache_write_tokens: hermesSession.cache_write_tokens,
|
cache_write_tokens: hermesSession.cache_write_tokens,
|
||||||
reasoning_tokens: hermesSession.reasoning_tokens,
|
reasoning_tokens: hermesSession.reasoning_tokens,
|
||||||
estimated_cost_usd: hermesSession.estimated_cost_usd || 0,
|
estimated_cost_usd: estimatedCost,
|
||||||
last_active: hermesSession.started_at, // Use started_at as fallback since last_active doesn't exist in Hermes state.db
|
last_active: hermesSession.started_at, // Use started_at as fallback since last_active doesn't exist in Hermes state.db
|
||||||
preview,
|
preview,
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user