Skip to content

Commit 80b4291

Browse files
Fix Go and Rust CI: remove unused func, fix clippy warnings
- Go: remove unused getOrCreateDB() wrapper (only getOrCreateDBLocked used) - Rust: collapse nested if-let chains using .filter() (clippy::collapsible_if) - Rust: scope MutexGuard in blocks to avoid holding across await (clippy::await_holding_lock) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent 90c53d0 commit 80b4291

2 files changed

Lines changed: 55 additions & 65 deletions

File tree

go/internal/e2e/session_fs_sqlite_e2e_test.go

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -42,12 +42,6 @@ func newInMemorySqliteProvider(sessionID string, calls *[]sqliteCall) *inMemoryS
4242
}
4343
}
4444

45-
func (p *inMemorySqliteProvider) getOrCreateDB() (*sql.DB, error) {
46-
p.mu.Lock()
47-
defer p.mu.Unlock()
48-
return p.getOrCreateDBLocked()
49-
}
50-
5145
// getOrCreateDBLocked must be called while holding p.mu.
5246
func (p *inMemorySqliteProvider) getOrCreateDBLocked() (*sql.DB, error) {
5347
if p.db == nil {

rust/tests/e2e/session_fs_sqlite.rs

Lines changed: 55 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -141,10 +141,8 @@ impl SessionFsProvider for InMemorySqliteProvider {
141141
let mut names = std::collections::BTreeSet::new();
142142
for p in files.keys().chain(dirs.iter()) {
143143
if let Some(rest) = p.strip_prefix(&prefix) {
144-
if !rest.is_empty() {
145-
if let Some(name) = rest.split('/').next() {
146-
names.insert(name.to_string());
147-
}
144+
if let Some(name) = rest.split('/').next().filter(|n| !n.is_empty()) {
145+
names.insert(name.to_string());
148146
}
149147
}
150148
}
@@ -158,21 +156,17 @@ impl SessionFsProvider for InMemorySqliteProvider {
158156
let mut entries: HashMap<String, DirEntryKind> = HashMap::new();
159157
for d in dirs.iter() {
160158
if let Some(rest) = d.strip_prefix(&prefix) {
161-
if !rest.is_empty() {
162-
if let Some(name) = rest.split('/').next() {
163-
entries.insert(name.to_string(), DirEntryKind::Directory);
164-
}
159+
if let Some(name) = rest.split('/').next().filter(|n| !n.is_empty()) {
160+
entries.insert(name.to_string(), DirEntryKind::Directory);
165161
}
166162
}
167163
}
168164
for f in files.keys() {
169165
if let Some(rest) = f.strip_prefix(&prefix) {
170-
if !rest.is_empty() {
171-
if let Some(name) = rest.split('/').next() {
172-
entries
173-
.entry(name.to_string())
174-
.or_insert(DirEntryKind::File);
175-
}
166+
if let Some(name) = rest.split('/').next().filter(|n| !n.is_empty()) {
167+
entries
168+
.entry(name.to_string())
169+
.or_insert(DirEntryKind::File);
176170
}
177171
}
178172
}
@@ -392,43 +386,44 @@ async fn should_route_sql_queries_through_the_sessionfs_sqlite_handler() {
392386
"expected 'Widget' in response"
393387
);
394388

395-
let calls = sqlite_calls.lock().unwrap();
396-
let session_calls: Vec<&SqliteCall> = calls
397-
.iter()
398-
.filter(|c| c.session_id == session_id)
399-
.collect();
400-
assert!(!session_calls.is_empty(), "expected sqlite calls");
401-
assert!(
402-
session_calls
403-
.iter()
404-
.any(|c| c.query.to_uppercase().contains("CREATE TABLE")),
405-
"expected CREATE TABLE"
406-
);
407-
assert!(
408-
session_calls
409-
.iter()
410-
.any(|c| c.query.to_uppercase().contains("INSERT")),
411-
"expected INSERT"
412-
);
413-
assert!(
414-
session_calls
389+
{
390+
let calls = sqlite_calls.lock().unwrap();
391+
let session_calls: Vec<&SqliteCall> = calls
415392
.iter()
416-
.any(|c| c.query.to_uppercase().contains("SELECT")),
417-
"expected SELECT"
418-
);
419-
assert!(
420-
session_calls.iter().any(|c| c.query_type == "exec"),
421-
"expected exec queryType"
422-
);
423-
assert!(
424-
session_calls.iter().any(|c| c.query_type == "query"),
425-
"expected query queryType"
426-
);
427-
assert!(
428-
session_calls.iter().any(|c| c.query_type == "run"),
429-
"expected run queryType"
430-
);
431-
drop(calls);
393+
.filter(|c| c.session_id == session_id)
394+
.collect();
395+
assert!(!session_calls.is_empty(), "expected sqlite calls");
396+
assert!(
397+
session_calls
398+
.iter()
399+
.any(|c| c.query.to_uppercase().contains("CREATE TABLE")),
400+
"expected CREATE TABLE"
401+
);
402+
assert!(
403+
session_calls
404+
.iter()
405+
.any(|c| c.query.to_uppercase().contains("INSERT")),
406+
"expected INSERT"
407+
);
408+
assert!(
409+
session_calls
410+
.iter()
411+
.any(|c| c.query.to_uppercase().contains("SELECT")),
412+
"expected SELECT"
413+
);
414+
assert!(
415+
session_calls.iter().any(|c| c.query_type == "exec"),
416+
"expected exec queryType"
417+
);
418+
assert!(
419+
session_calls.iter().any(|c| c.query_type == "query"),
420+
"expected query queryType"
421+
);
422+
assert!(
423+
session_calls.iter().any(|c| c.query_type == "run"),
424+
"expected run queryType"
425+
);
426+
}
432427

433428
session.disconnect().await.expect("disconnect session");
434429
client.stop().await.expect("stop client");
@@ -469,15 +464,16 @@ async fn should_allow_subagents_to_use_sql_tool_via_inherited_sessionfs() {
469464

470465
session.disconnect().await.expect("disconnect session");
471466

472-
let calls = sqlite_calls.lock().unwrap();
473-
let session_calls: Vec<&SqliteCall> =
474-
calls.iter().filter(|c| c.session_id == session_id).collect();
475-
let insert_calls: Vec<&&SqliteCall> = session_calls
476-
.iter()
477-
.filter(|c| c.query.to_uppercase().contains("INSERT"))
478-
.collect();
479-
assert!(!insert_calls.is_empty(), "expected INSERT calls from subagent");
480-
drop(calls);
467+
{
468+
let calls = sqlite_calls.lock().unwrap();
469+
let session_calls: Vec<&SqliteCall> =
470+
calls.iter().filter(|c| c.session_id == session_id).collect();
471+
let insert_calls: Vec<&&SqliteCall> = session_calls
472+
.iter()
473+
.filter(|c| c.query.to_uppercase().contains("INSERT"))
474+
.collect();
475+
assert!(!insert_calls.is_empty(), "expected INSERT calls from subagent");
476+
}
481477

482478
// Read events.jsonl from in-memory FS
483479
let events_path = format!("{}/events.jsonl", session_state_path_sqlite());

0 commit comments

Comments
 (0)