From 7c8ef76d4cbcf9bd4c54e14ac65fb31e45dbfe93 Mon Sep 17 00:00:00 2001 From: Bryan Helmkamp Date: Tue, 3 Mar 2026 14:31:38 -0500 Subject: [PATCH] Use claude-haiku-4-5 alias instead of dated snapshot ID Co-Authored-By: Claude Opus 4.6 (1M context) --- crates/arc-agent/src/cli.rs | 2 +- crates/arc-agent/tests/parity_matrix.rs | 10 +++++----- crates/arc-llm/src/catalog.json | 2 +- crates/arc-llm/tests/integration.rs | 4 ++-- crates/arc-workflows/tests/integration.rs | 6 +++--- 5 files changed, 12 insertions(+), 12 deletions(-) diff --git a/crates/arc-agent/src/cli.rs b/crates/arc-agent/src/cli.rs index 54a207649..9dd12c6e9 100644 --- a/crates/arc-agent/src/cli.rs +++ b/crates/arc-agent/src/cli.rs @@ -156,7 +156,7 @@ fn summarizer_model_id(provider: Provider) -> ModelId { match provider { Provider::OpenAi => ModelId::new(Provider::OpenAi, "gpt-4o-mini"), Provider::Gemini => ModelId::new(Provider::Gemini, "gemini-2.0-flash"), - Provider::Anthropic => ModelId::new(Provider::Anthropic, "claude-haiku-4-5-20251001"), + Provider::Anthropic => ModelId::new(Provider::Anthropic, "claude-haiku-4-5"), Provider::Kimi => ModelId::new(Provider::Kimi, "kimi-k2.5"), Provider::Zai => ModelId::new(Provider::Zai, "glm-4.7"), Provider::Minimax => ModelId::new(Provider::Minimax, "minimax-m2.5"), diff --git a/crates/arc-agent/tests/parity_matrix.rs b/crates/arc-agent/tests/parity_matrix.rs index b53a74dc0..c9c35e53a 100644 --- a/crates/arc-agent/tests/parity_matrix.rs +++ b/crates/arc-agent/tests/parity_matrix.rs @@ -16,7 +16,7 @@ fn summarizer_model_id(provider: Provider) -> ModelId { | Provider::Minimax | Provider::Inception => ModelId::new(Provider::OpenAi, "gpt-4o-mini"), Provider::Gemini => ModelId::new(Provider::Gemini, "gemini-2.0-flash"), - Provider::Anthropic => ModelId::new(Provider::Anthropic, "claude-haiku-4-5-20251001"), + Provider::Anthropic => ModelId::new(Provider::Anthropic, "claude-haiku-4-5"), } } @@ -110,7 +110,7 @@ macro_rules! provider_tests { #[ignore = "requires LLM API keys"] async fn []() { let tmp = tempfile::tempdir().expect("failed to create tempdir"); - let mut session = make_session(Provider::Anthropic, "claude-haiku-4-5-20251001", tmp.path()).await; + let mut session = make_session(Provider::Anthropic, "claude-haiku-4-5", tmp.path()).await; session.initialize().await; [](&mut session, tmp.path()).await; } @@ -165,7 +165,7 @@ macro_rules! anthropic_gemini_tests { #[ignore = "requires LLM API keys"] async fn []() { let tmp = tempfile::tempdir().expect("failed to create tempdir"); - let mut session = make_session(Provider::Anthropic, "claude-haiku-4-5-20251001", tmp.path()).await; + let mut session = make_session(Provider::Anthropic, "claude-haiku-4-5", tmp.path()).await; session.initialize().await; [](&mut session, tmp.path()).await; } @@ -349,7 +349,7 @@ macro_rules! reasoning_effort_tests { reasoning_effort_tests!( Provider::Anthropic, - "claude-haiku-4-5-20251001", + "claude-haiku-4-5", anthropic_reasoning_effort ); // gpt-4o-mini does not support the reasoning.effort parameter, so no OpenAI test. @@ -399,7 +399,7 @@ macro_rules! loop_detection_tests { loop_detection_tests!( Provider::Anthropic, - "claude-haiku-4-5-20251001", + "claude-haiku-4-5", anthropic_loop_detection ); loop_detection_tests!(Provider::OpenAi, "gpt-4o-mini", openai_loop_detection); diff --git a/crates/arc-llm/src/catalog.json b/crates/arc-llm/src/catalog.json index 0aeec19c2..ef78dd387 100644 --- a/crates/arc-llm/src/catalog.json +++ b/crates/arc-llm/src/catalog.json @@ -26,7 +26,7 @@ "aliases": ["sonnet", "claude-sonnet"] }, { - "id": "claude-haiku-4-5-20251001", + "id": "claude-haiku-4-5", "provider": "anthropic", "display_name": "Claude Haiku 4.5", "context_window": 200000, diff --git a/crates/arc-llm/tests/integration.rs b/crates/arc-llm/tests/integration.rs index e7192d1ea..9c8cea15a 100644 --- a/crates/arc-llm/tests/integration.rs +++ b/crates/arc-llm/tests/integration.rs @@ -26,7 +26,7 @@ async fn anthropic_complete() { dotenvy::dotenv().ok(); let api_key = std::env::var("ANTHROPIC_API_KEY").expect("ANTHROPIC_API_KEY must be set"); let adapter = AnthropicAdapter::new(api_key); - let request = make_request("claude-haiku-4-5-20251001"); + let request = make_request("claude-haiku-4-5"); let response = adapter.complete(&request).await.unwrap(); assert!( @@ -171,7 +171,7 @@ async fn anthropic_multi_turn_cache() { dotenvy::dotenv().ok(); let api_key = std::env::var("ANTHROPIC_API_KEY").expect("ANTHROPIC_API_KEY must be set"); let adapter = AnthropicAdapter::new(api_key); - run_multi_turn_cache_test(&adapter, "claude-haiku-4-5-20251001", 0.5).await; + run_multi_turn_cache_test(&adapter, "claude-haiku-4-5", 0.5).await; } #[tokio::test] diff --git a/crates/arc-workflows/tests/integration.rs b/crates/arc-workflows/tests/integration.rs index ec5f2db91..8196c5639 100644 --- a/crates/arc-workflows/tests/integration.rs +++ b/crates/arc-workflows/tests/integration.rs @@ -5536,7 +5536,7 @@ mod real_llm { fn make_llm_backend(client: Arc) -> Box { Box::new(LlmCodergenBackend { client, - model: "claude-haiku-4-5-20251001".to_string(), + model: "claude-haiku-4-5".to_string(), }) } @@ -5958,7 +5958,7 @@ mod real_llm { ); classify.attrs.insert( "llm_model".to_string(), - AttrValue::String("claude-haiku-4-5-20251001".to_string()), + AttrValue::String("claude-haiku-4-5".to_string()), ); graph.nodes.insert("classify".to_string(), classify); @@ -7197,7 +7197,7 @@ async fn arc_e2e_with_real_llm() { validate_or_raise(&graph, &[]).expect("validation should pass"); let interviewer: Arc = Arc::new(AutoApproveInterviewer); - let model = "claude-haiku-4-5-20251001".to_string(); + let model = "claude-haiku-4-5".to_string(); let registry = default_registry(interviewer, move || { Some(Box::new(AgentApiBackend::new(