Prechádzať zdrojové kódy

Merge remote-tracking branch 'origin/omx-issue-9201-release-ci'

# Conflicts:
#	.github/workflows/rust-ci.yml
#	rust/crates/rusty-claude-cli/src/main.rs
Yeachan-Heo 2 mesiacov pred
rodič
commit
3c73f0ffb3

+ 39 - 21
.github/workflows/rust-ci.yml

@@ -1,4 +1,4 @@
-name: rust-ci
+name: Rust CI
 
 on:
   push:
@@ -6,33 +6,51 @@ on:
       - main
       - 'gaebal/**'
       - 'omx-issue-*'
+    paths:
+      - .github/workflows/rust-ci.yml
+      - rust/**
   pull_request:
+    branches:
+      - main
+    paths:
+      - .github/workflows/rust-ci.yml
+      - rust/**
+  workflow_dispatch:
+
+concurrency:
+  group: rust-ci-${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
+  cancel-in-progress: true
+
+defaults:
+  run:
+    working-directory: rust
+
+env:
+  CARGO_TERM_COLOR: always
 
 jobs:
-  rust-ci:
+  fmt:
+    name: cargo fmt
     runs-on: ubuntu-latest
-    defaults:
-      run:
-        working-directory: rust
     steps:
-      - name: Checkout
-        uses: actions/checkout@v4
-
-      - name: Install Rust toolchain
-        uses: dtolnay/rust-toolchain@stable
+      - uses: actions/checkout@v4
+      - uses: dtolnay/rust-toolchain@stable
         with:
-          components: rustfmt, clippy
-
-      - name: Cache cargo
-        uses: Swatinem/rust-cache@v2
+          components: rustfmt
+      - uses: Swatinem/rust-cache@v2
         with:
-          workspaces: rust
-
-      - name: cargo fmt
+          workspaces: rust -> target
+      - name: Check formatting
         run: cargo fmt --all --check
 
-      - name: cargo clippy
-        run: cargo clippy -p rusty-claude-cli --bin claw --no-deps -- -D warnings
-
-      - name: cargo test
+  test-rusty-claude-cli:
+    name: cargo test -p rusty-claude-cli
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@v4
+      - uses: dtolnay/rust-toolchain@stable
+      - uses: Swatinem/rust-cache@v2
+        with:
+          workspaces: rust -> target
+      - name: Run crate tests
         run: cargo test -p rusty-claude-cli

+ 4 - 1
rust/crates/api/src/providers/anthropic.rs

@@ -322,7 +322,10 @@ impl AnthropicClient {
                     .with_property(
                         "estimated_cost_usd",
                         Value::String(format_usd(
-                            response.usage.estimated_cost_usd(&response.model).total_cost_usd(),
+                            response
+                                .usage
+                                .estimated_cost_usd(&response.model)
+                                .total_cost_usd(),
                         )),
                     ),
             );

+ 6 - 6
rust/crates/runtime/src/lib.rs

@@ -24,17 +24,17 @@ pub use compact::{
     get_compact_continuation_message, should_compact, CompactionConfig, CompactionResult,
 };
 pub use config::{
-    ConfigEntry, ConfigError, ConfigLoader, ConfigSource, McpManagedProxyServerConfig,
-    McpConfigCollection, McpOAuthConfig, McpRemoteServerConfig, McpSdkServerConfig,
+    ConfigEntry, ConfigError, ConfigLoader, ConfigSource, McpConfigCollection,
+    McpManagedProxyServerConfig, McpOAuthConfig, McpRemoteServerConfig, McpSdkServerConfig,
     McpServerConfig, McpStdioServerConfig, McpTransport, McpWebSocketServerConfig, OAuthConfig,
     ResolvedPermissionMode, RuntimeConfig, RuntimeFeatureConfig, RuntimeHookConfig,
     RuntimePermissionRuleConfig, RuntimePluginConfig, ScopedMcpServerConfig,
     CLAW_SETTINGS_SCHEMA_NAME,
 };
 pub use conversation::{
-    auto_compaction_threshold_from_env, ApiClient, ApiRequest, AssistantEvent,
-    AutoCompactionEvent, ConversationRuntime, PromptCacheEvent, RuntimeError,
-    StaticToolExecutor, ToolError, ToolExecutor, TurnSummary,
+    auto_compaction_threshold_from_env, ApiClient, ApiRequest, AssistantEvent, AutoCompactionEvent,
+    ConversationRuntime, PromptCacheEvent, RuntimeError, StaticToolExecutor, ToolError,
+    ToolExecutor, TurnSummary,
 };
 pub use file_ops::{
     edit_file, glob_search, grep_search, read_file, write_file, EditFileOutput, GlobSearchOutput,
@@ -49,7 +49,7 @@ pub use mcp::{
     scoped_mcp_config_hash, unwrap_ccr_proxy_url,
 };
 pub use mcp_client::{
-    McpManagedProxyTransport, McpClientAuth, McpClientBootstrap, McpClientTransport,
+    McpClientAuth, McpClientBootstrap, McpClientTransport, McpManagedProxyTransport,
     McpRemoteTransport, McpSdkTransport, McpStdioTransport,
 };
 pub use mcp_stdio::{

+ 4 - 6
rust/crates/runtime/src/mcp_client.rs

@@ -97,12 +97,10 @@ impl McpClientTransport {
             McpServerConfig::Sdk(config) => Self::Sdk(McpSdkTransport {
                 name: config.name.clone(),
             }),
-            McpServerConfig::ManagedProxy(config) => {
-                Self::ManagedProxy(McpManagedProxyTransport {
-                    url: config.url.clone(),
-                    id: config.id.clone(),
-                })
-            }
+            McpServerConfig::ManagedProxy(config) => Self::ManagedProxy(McpManagedProxyTransport {
+                url: config.url.clone(),
+                id: config.id.clone(),
+            }),
         }
     }
 }

+ 1 - 0
rust/crates/rusty-claude-cli/src/main.rs

@@ -876,6 +876,7 @@ impl GitWorkspaceSummary {
     }
 }
 
+#[cfg(test)]
 fn format_unknown_slash_command_message(name: &str) -> String {
     let suggestions = suggest_slash_commands(name);
     if suggestions.is_empty() {