Skip to content

Commit b4b0e4b

Browse files
committed
chore: satisfy workspace clippy warnings
1 parent 81b5d5f commit b4b0e4b

37 files changed

Lines changed: 271 additions & 291 deletions

File tree

claude-agent-sdk/src/client.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -507,10 +507,10 @@ impl ClaudeSDKClient {
507507
}
508508
};
509509

510-
if let Some(resp) = resp {
511-
if let Ok(line) = serde_json::to_string(&resp) {
512-
let _ = transport.write(&(line + "\n")).await;
513-
}
510+
if let Some(resp) = resp
511+
&& let Ok(line) = serde_json::to_string(&resp)
512+
{
513+
let _ = transport.write(&(line + "\n")).await;
514514
}
515515
continue;
516516
}

claude-agent-sdk/src/transport.rs

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -241,14 +241,13 @@ impl SubprocessTransport {
241241
// normal transcript flushes as aggressively as an immediate kill.
242242
{
243243
let mut proc_guard = self.process.lock().await;
244-
if let Some(mut proc) = proc_guard.take() {
245-
if tokio::time::timeout(CLOSE_GRACE_TIMEOUT, proc.wait())
244+
if let Some(mut proc) = proc_guard.take()
245+
&& tokio::time::timeout(CLOSE_GRACE_TIMEOUT, proc.wait())
246246
.await
247247
.is_err()
248-
{
249-
let _ = proc.kill().await;
250-
let _ = proc.wait().await;
251-
}
248+
{
249+
let _ = proc.kill().await;
250+
let _ = proc.wait().await;
252251
}
253252
}
254253

codex-sdk/tests/integration.rs

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -372,19 +372,19 @@ async fn test_steer_turn() {
372372

373373
match tokio::time::timeout(Duration::from_millis(500), event_rx.recv()).await {
374374
Ok(Ok(notif)) => match notif.method.as_str() {
375-
"item/started" => {
376-
if notif.params.get("turnId").and_then(|v| v.as_str()) == Some(turn_id.as_str())
377-
{
378-
saw_turn_activity = true;
379-
}
375+
"item/started"
376+
if notif.params.get("turnId").and_then(|v| v.as_str())
377+
== Some(turn_id.as_str()) =>
378+
{
379+
saw_turn_activity = true;
380380
}
381-
"item/agentMessage/delta" => {
382-
if notif.params.get("turnId").and_then(|v| v.as_str()) == Some(turn_id.as_str())
383-
{
384-
saw_turn_activity = true;
385-
if let Some(delta) = notif.params.get("delta").and_then(|v| v.as_str()) {
386-
response.push_str(delta);
387-
}
381+
"item/agentMessage/delta"
382+
if notif.params.get("turnId").and_then(|v| v.as_str())
383+
== Some(turn_id.as_str()) =>
384+
{
385+
saw_turn_activity = true;
386+
if let Some(delta) = notif.params.get("delta").and_then(|v| v.as_str()) {
387+
response.push_str(delta);
388388
}
389389
}
390390
"turn/completed" => {

garyx-agent-loop/src/adapters/google.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -417,7 +417,7 @@ impl GoogleGenerativeAiAdapter {
417417
value
418418
.get("cloudaicompanionProject")
419419
.and_then(Value::as_str)
420-
.and_then(|value| normalize_non_empty(value))
420+
.and_then(normalize_non_empty)
421421
.or_else(|| preferred_project_id.and_then(normalize_non_empty))
422422
}
423423

@@ -597,7 +597,8 @@ fn runtime_value(runtime: &LlmRuntimeContext, keys: &[&str]) -> Option<String> {
597597
if let Some(value) = runtime
598598
.env
599599
.get(*key)
600-
.and_then(|value| normalize_non_empty(value))
600+
.map(String::as_str)
601+
.and_then(normalize_non_empty)
601602
{
602603
return Some(value);
603604
}

garyx-bridge/src/garyx_native_provider.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -998,14 +998,14 @@ impl AgentLoopProvider for GaryxNativeProvider {
998998
.metadata
999999
.get("model_reasoning_effort")
10001000
.and_then(Value::as_str)
1001-
.or_else(|| Some(self.config.model_reasoning_effort.as_str())),
1001+
.or(Some(self.config.model_reasoning_effort.as_str())),
10021002
),
10031003
service_tier: normalize_non_empty(
10041004
options
10051005
.metadata
10061006
.get("model_service_tier")
10071007
.and_then(Value::as_str)
1008-
.or_else(|| Some(self.config.model_service_tier.as_str())),
1008+
.or(Some(self.config.model_service_tier.as_str())),
10091009
),
10101010
},
10111011
runtime: LlmRuntimeContext {

garyx-bridge/src/garyx_native_provider/tests.rs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -233,13 +233,12 @@ async fn assistant_only_turn_streams_delta_and_persists_assistant_message() {
233233
assert_eq!(result.response, "done");
234234
assert_eq!(result.session_messages.len(), 1);
235235
assert_eq!(result.session_messages[0].text.as_deref(), Some("done"));
236-
assert_eq!(
236+
assert!(
237237
result
238238
.sdk_session_id
239239
.as_deref()
240240
.unwrap()
241-
.starts_with("garyx-native-"),
242-
true
241+
.starts_with("garyx-native-")
243242
);
244243
let events = events.lock().unwrap().clone();
245244
assert!(matches!(events[0], StreamEvent::SessionBound { .. }));

garyx-bridge/src/gemini_provider.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,7 @@ fn rewrite_gemini_session_lines_for_fork(
206206
}
207207

208208
fn fork_gemini_session_file(source: &Path) -> Result<String, BridgeError> {
209-
let source_contents = std::fs::read_to_string(&source).map_err(|error| {
209+
let source_contents = std::fs::read_to_string(source).map_err(|error| {
210210
BridgeError::SessionError(format!("read Gemini session file failed: {error}"))
211211
})?;
212212
let new_session_id = Uuid::new_v4().to_string();

garyx-bridge/src/multi_provider/provider_factory.rs

Lines changed: 50 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -39,56 +39,6 @@ fn build_claude_config(
3939
}
4040
}
4141

42-
#[cfg(test)]
43-
mod tests {
44-
use super::*;
45-
46-
#[test]
47-
fn build_claude_config_carries_default_model_and_reasoning_effort() {
48-
let agent_cfg = AgentProviderConfig {
49-
provider_type: ProviderType::ClaudeCode.as_slug().to_owned(),
50-
default_model: "claude-opus-4-8".to_owned(),
51-
model_reasoning_effort: "max".to_owned(),
52-
..Default::default()
53-
};
54-
55-
let config = build_claude_config(&agent_cfg, &None);
56-
57-
assert_eq!(config.default_model, "claude-opus-4-8");
58-
assert_eq!(config.model_reasoning_effort, "max");
59-
}
60-
61-
#[test]
62-
fn compute_provider_key_keeps_default_claude_code_key_stable() {
63-
let agent_cfg = AgentProviderConfig {
64-
provider_type: ProviderType::ClaudeCode.as_slug().to_owned(),
65-
..Default::default()
66-
};
67-
68-
assert_eq!(compute_provider_key(&agent_cfg, &None), "claude_code");
69-
}
70-
71-
#[test]
72-
fn compute_provider_key_changes_for_claude_cli_launcher_config() {
73-
let cctty_cfg = AgentProviderConfig {
74-
provider_type: ProviderType::ClaudeCode.as_slug().to_owned(),
75-
claude_cli_mode: "cctty".to_owned(),
76-
..Default::default()
77-
};
78-
let path_cfg = AgentProviderConfig {
79-
provider_type: ProviderType::ClaudeCode.as_slug().to_owned(),
80-
claude_cli_path: "/opt/garyx/bin/custom-cctty".to_owned(),
81-
..Default::default()
82-
};
83-
84-
let cctty_key = compute_provider_key(&cctty_cfg, &None);
85-
let path_key = compute_provider_key(&path_cfg, &None);
86-
assert!(cctty_key.starts_with("claude_code:cli:cctty:"));
87-
assert!(path_key.starts_with("claude_code:cli:native:"));
88-
assert_ne!(cctty_key, path_key);
89-
}
90-
}
91-
9242
/// Build a `CodexAppServerConfig` from an agent runtime config.
9343
///
9444
/// Shared by the Codex and Traex providers: TRAE CLI (`traex`) is forked from
@@ -215,7 +165,6 @@ fn build_garyx_native_config(
215165
codex_home: agent_cfg.codex_home.clone(),
216166
max_tool_iterations: agent_cfg.max_tool_iterations,
217167
request_timeout_seconds: agent_cfg.request_timeout_seconds,
218-
..Default::default()
219168
}
220169
}
221170

@@ -341,3 +290,53 @@ pub(super) async fn create_provider(
341290
)),
342291
}
343292
}
293+
294+
#[cfg(test)]
295+
mod tests {
296+
use super::*;
297+
298+
#[test]
299+
fn build_claude_config_carries_default_model_and_reasoning_effort() {
300+
let agent_cfg = AgentProviderConfig {
301+
provider_type: ProviderType::ClaudeCode.as_slug().to_owned(),
302+
default_model: "claude-opus-4-8".to_owned(),
303+
model_reasoning_effort: "max".to_owned(),
304+
..Default::default()
305+
};
306+
307+
let config = build_claude_config(&agent_cfg, &None);
308+
309+
assert_eq!(config.default_model, "claude-opus-4-8");
310+
assert_eq!(config.model_reasoning_effort, "max");
311+
}
312+
313+
#[test]
314+
fn compute_provider_key_keeps_default_claude_code_key_stable() {
315+
let agent_cfg = AgentProviderConfig {
316+
provider_type: ProviderType::ClaudeCode.as_slug().to_owned(),
317+
..Default::default()
318+
};
319+
320+
assert_eq!(compute_provider_key(&agent_cfg, &None), "claude_code");
321+
}
322+
323+
#[test]
324+
fn compute_provider_key_changes_for_claude_cli_launcher_config() {
325+
let cctty_cfg = AgentProviderConfig {
326+
provider_type: ProviderType::ClaudeCode.as_slug().to_owned(),
327+
claude_cli_mode: "cctty".to_owned(),
328+
..Default::default()
329+
};
330+
let path_cfg = AgentProviderConfig {
331+
provider_type: ProviderType::ClaudeCode.as_slug().to_owned(),
332+
claude_cli_path: "/opt/garyx/bin/custom-cctty".to_owned(),
333+
..Default::default()
334+
};
335+
336+
let cctty_key = compute_provider_key(&cctty_cfg, &None);
337+
let path_key = compute_provider_key(&path_cfg, &None);
338+
assert!(cctty_key.starts_with("claude_code:cli:cctty:"));
339+
assert!(path_key.starts_with("claude_code:cli:native:"));
340+
assert_ne!(cctty_key, path_key);
341+
}
342+
}

garyx-bridge/src/multi_provider/run_management.rs

Lines changed: 20 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -317,12 +317,12 @@ fn forward_applied_thread_title_update(
317317
external_callback: Option<&Arc<dyn Fn(StreamEvent) + Send + Sync>>,
318318
applied_thread_title: Option<&str>,
319319
) {
320-
if let Some(title) = applied_thread_title {
321-
if let Some(callback) = external_callback {
322-
callback(StreamEvent::ThreadTitleUpdated {
323-
title: title.to_owned(),
324-
});
325-
}
320+
if let Some(title) = applied_thread_title
321+
&& let Some(callback) = external_callback
322+
{
323+
callback(StreamEvent::ThreadTitleUpdated {
324+
title: title.to_owned(),
325+
});
326326
}
327327
}
328328

@@ -1093,7 +1093,6 @@ async fn mark_task_ready_for_review_after_stopped_run(
10931093
.with_field("task_id", json!(task_id)),
10941094
)
10951095
.await;
1096-
return;
10971096
}
10981097
Ok(None) => {}
10991098
Err(error) => {
@@ -1111,7 +1110,6 @@ async fn mark_task_ready_for_review_after_stopped_run(
11111110
.with_field("error", json!(error.to_string())),
11121111
)
11131112
.await;
1114-
return;
11151113
}
11161114
}
11171115
}
@@ -1643,12 +1641,12 @@ impl MultiProviderBridge {
16431641
None
16441642
}
16451643
} else {
1646-
let _ = partial_persistence_tx.as_ref().map(|tx| {
1647-
tx.send(ThreadPersistenceCommand::Stream {
1644+
if let Some(tx) = partial_persistence_tx.as_ref() {
1645+
let _ = tx.send(ThreadPersistenceCommand::Stream {
16481646
event: event.clone(),
16491647
after_commit: None,
1650-
})
1651-
});
1648+
});
1649+
}
16521650
None
16531651
};
16541652
tokio::spawn(async move {
@@ -1751,9 +1749,9 @@ impl MultiProviderBridge {
17511749
}
17521750
};
17531751
drop(removed_persistence);
1754-
let _ = partial_persistence_tx
1755-
.as_ref()
1756-
.map(|tx| tx.send(ThreadPersistenceCommand::Finish));
1752+
if let Some(tx) = partial_persistence_tx.as_ref() {
1753+
let _ = tx.send(ThreadPersistenceCommand::Finish);
1754+
}
17571755
drop(partial_persistence_tx);
17581756
let persistence_result = if let Some(task) = partial_persistence_task {
17591757
match task.await {
@@ -2303,12 +2301,12 @@ impl MultiProviderBridge {
23032301
None
23042302
}
23052303
} else {
2306-
let _ = partial_persistence_tx.as_ref().map(|tx| {
2307-
tx.send(ThreadPersistenceCommand::Stream {
2304+
if let Some(tx) = partial_persistence_tx.as_ref() {
2305+
let _ = tx.send(ThreadPersistenceCommand::Stream {
23082306
event: event.clone(),
23092307
after_commit: None,
2310-
})
2311-
});
2308+
});
2309+
}
23122310
None
23132311
};
23142312
tokio::spawn(async move {
@@ -2399,9 +2397,9 @@ impl MultiProviderBridge {
23992397
}
24002398
};
24012399
drop(removed_persistence);
2402-
let _ = partial_persistence_tx
2403-
.as_ref()
2404-
.map(|tx| tx.send(ThreadPersistenceCommand::Finish));
2400+
if let Some(tx) = partial_persistence_tx.as_ref() {
2401+
let _ = tx.send(ThreadPersistenceCommand::Finish);
2402+
}
24052403
drop(partial_persistence_tx);
24062404
let persistence_result = if let Some(task) = partial_persistence_task {
24072405
match task.await {

garyx-channels/src/bound_fanout.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ use crate::dispatcher::{
1111
ChannelDispatcher, StreamDispatchRole, StreamingDispatchTarget, build_stream_dispatch_callback,
1212
};
1313

14+
type StreamCallback = Arc<dyn Fn(StreamEvent) + Send + Sync>;
15+
1416
fn binding_delivery_thread_id(binding_key: &str, chat_id: &str) -> Option<String> {
1517
let binding_key = binding_key.trim();
1618
let chat_id = chat_id.trim();
@@ -72,7 +74,7 @@ async fn snapshot_bound_targets(
7274

7375
#[derive(Default)]
7476
struct DeferredState {
75-
callbacks: Option<Vec<Arc<dyn Fn(StreamEvent) + Send + Sync>>>,
77+
callbacks: Option<Vec<StreamCallback>>,
7678
buffered: Vec<StreamEvent>,
7779
}
7880

0 commit comments

Comments
 (0)