fix: Rusqlite Borrow-Lifetime in load_sessions_filtered [appimage]
All checks were successful
Build AppImage / build (push) Successful in 8m10s

stmt.query_map()?.collect() direkt als Return-Expression hält den
Borrow über den Block-End hinaus. Fix: Ergebnis erst in let binden,
dann returnen — so wird der Temporary vor stmt gedroppt.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Eddy 2026-04-21 13:54:32 +02:00
parent b9dfc8a720
commit d29bbd7bfd

View file

@ -530,7 +530,7 @@ impl Database {
token_input, token_output, cost_usd, status, created_at, updated_at, last_message token_input, token_output, cost_usd, status, created_at, updated_at, last_message
FROM sessions WHERE working_dir = ?1 ORDER BY updated_at DESC LIMIT ?2" FROM sessions WHERE working_dir = ?1 ORDER BY updated_at DESC LIMIT ?2"
)?; )?;
stmt.query_map(params![dir, limit as i64], |row| { let result = stmt.query_map(params![dir, limit as i64], |row| {
Ok(Session { Ok(Session {
id: row.get(0)?, claude_session_id: row.get(1)?, title: row.get(2)?, id: row.get(0)?, claude_session_id: row.get(1)?, title: row.get(2)?,
working_dir: row.get(3)?, message_count: row.get(4)?, working_dir: row.get(3)?, message_count: row.get(4)?,
@ -539,14 +539,15 @@ impl Database {
created_at: row.get(9)?, updated_at: row.get(10)?, created_at: row.get(9)?, updated_at: row.get(10)?,
last_message: row.get(11)?, last_message: row.get(11)?,
}) })
})?.collect() })?.collect();
result
} else { } else {
let mut stmt = self.conn.prepare( let mut stmt = self.conn.prepare(
"SELECT id, claude_session_id, title, working_dir, message_count, "SELECT id, claude_session_id, title, working_dir, message_count,
token_input, token_output, cost_usd, status, created_at, updated_at, last_message token_input, token_output, cost_usd, status, created_at, updated_at, last_message
FROM sessions ORDER BY updated_at DESC LIMIT ?1" FROM sessions ORDER BY updated_at DESC LIMIT ?1"
)?; )?;
stmt.query_map(params![limit as i64], |row| { let result = stmt.query_map(params![limit as i64], |row| {
Ok(Session { Ok(Session {
id: row.get(0)?, claude_session_id: row.get(1)?, title: row.get(2)?, id: row.get(0)?, claude_session_id: row.get(1)?, title: row.get(2)?,
working_dir: row.get(3)?, message_count: row.get(4)?, working_dir: row.get(3)?, message_count: row.get(4)?,
@ -555,7 +556,8 @@ impl Database {
created_at: row.get(9)?, updated_at: row.get(10)?, created_at: row.get(9)?, updated_at: row.get(10)?,
last_message: row.get(11)?, last_message: row.get(11)?,
}) })
})?.collect() })?.collect();
result
} }
} }