diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 028bbca96..7f5f466aa 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -198,6 +198,12 @@ jobs: - name: Check compilation run: cargo check --locked --workspace + # The installer is intentionally excluded from the root Cargo workspace, + # so the workspace check above cannot catch drift in its shared Rust APIs. + - name: Check installer compilation + if: runner.os == 'Windows' + run: cargo check --manifest-path BitFun-Installer/src-tauri/Cargo.toml + - name: Run core and desktop library tests run: cargo test --locked -p bitfun-core -p bitfun-desktop --lib diff --git a/BitFun-Installer/src-tauri/src/installer/ai_config.rs b/BitFun-Installer/src-tauri/src/installer/ai_config.rs index 675ff83f9..70e59feec 100644 --- a/BitFun-Installer/src-tauri/src/installer/ai_config.rs +++ b/BitFun-Installer/src-tauri/src/installer/ai_config.rs @@ -1,7 +1,7 @@ //! Map installer `ModelConfig` to shared AI adapter config. use crate::installer::types::ModelConfig; -use bitfun_ai_adapters::types::{resolve_request_url, AIConfig, ReasoningMode}; +use bitfun_ai_adapters::types::{resolve_request_url, AIConfig}; use log::warn; /// Build `AIConfig` for the shared AI client. @@ -47,13 +47,10 @@ pub(super) fn ai_config_from_installer_model(m: &ModelConfig) -> Result commandByStep.get('Run subscription authentication tests'), 'cargo test --locked -p bitfun-ai-adapters --features subscription-auth --lib subscription_auth', ); + const installerCheck = rustJob.steps.find( + (step) => step.name === 'Check installer compilation', + ); + assert.equal(installerCheck?.if, "runner.os == 'Windows'"); + assert.equal( + installerCheck?.run, + 'cargo check --manifest-path BitFun-Installer/src-tauri/Cargo.toml', + ); assert.equal( commandByStep.get('Run file watch contract tests'), 'cargo test --locked -p bitfun-services-integrations --no-default-features --features file-watch --test file_watch_contracts',