From 295bcf850198e690622a5ae4f51b9d57aba4c0f5 Mon Sep 17 00:00:00 2001 From: SWangHash <88996709+SWangHash@users.noreply.github.com> Date: Wed, 8 Jul 2026 09:24:50 +0800 Subject: [PATCH] refactor(core): decouple canvas-runtime from product-full to drop oxc from cli canvas-runtime (which pulls oxc 0.137.0, MSRV 1.94) was forced into the CLI build via two product-full paths: bitfun-core product-full and bitfun-services-integrations product-full. The CLI does not use canvas; only desktop does. - Remove canvas-runtime from bitfun-core and services-integrations product-full feature lists - Drop canvas-runtime from services-integrations requiredProductFullFeatures boundary rule to keep check-core-boundaries green - Add canvas-runtime explicitly to desktop's bitfun-core features so desktop keeps full canvas support This lets bitfun-cli build on Rust 1.89 (oxc no longer in its dep graph). --- scripts/core-boundaries/rules/feature-rules.mjs | 1 - src/apps/desktop/Cargo.toml | 2 +- src/crates/assembly/core/Cargo.toml | 1 - src/crates/services/services-integrations/Cargo.toml | 1 - 4 files changed, 1 insertion(+), 4 deletions(-) diff --git a/scripts/core-boundaries/rules/feature-rules.mjs b/scripts/core-boundaries/rules/feature-rules.mjs index 98f4505ad4..f43fdba649 100644 --- a/scripts/core-boundaries/rules/feature-rules.mjs +++ b/scripts/core-boundaries/rules/feature-rules.mjs @@ -172,7 +172,6 @@ export const ownerCrateFeatureAssemblyRules = [ requiredProductFullFeatures: [ 'announcement', 'browser-control', - 'canvas-runtime', 'debug-log', 'deep-research', 'file-watch', diff --git a/src/apps/desktop/Cargo.toml b/src/apps/desktop/Cargo.toml index bd125c36f0..682b90d1b4 100644 --- a/src/apps/desktop/Cargo.toml +++ b/src/apps/desktop/Cargo.toml @@ -19,7 +19,7 @@ serde_json = { workspace = true } [dependencies] # Internal crates -bitfun-core = { path = "../../crates/assembly/core", default-features = false, features = ["product-full"] } +bitfun-core = { path = "../../crates/assembly/core", default-features = false, features = ["product-full", "canvas-runtime"] } bitfun-product-domains = { path = "../../crates/contracts/product-domains", default-features = false } bitfun-services-integrations = { path = "../../crates/services/services-integrations", default-features = false, features = ["canvas-runtime"] } bitfun-agent-tools = { path = "../../crates/execution/tool-contracts" } diff --git a/src/crates/assembly/core/Cargo.toml b/src/crates/assembly/core/Cargo.toml index 2ee5122eca..b569c60880 100644 --- a/src/crates/assembly/core/Cargo.toml +++ b/src/crates/assembly/core/Cargo.toml @@ -169,7 +169,6 @@ schannel = "0.1" default = ["product-full"] product-full = [ "ai-adapter-runtime", - "canvas-runtime", "dep:chrono-tz", "dep:cron", "dep:dashmap", diff --git a/src/crates/services/services-integrations/Cargo.toml b/src/crates/services/services-integrations/Cargo.toml index 75da8aadb1..498d10e06c 100644 --- a/src/crates/services/services-integrations/Cargo.toml +++ b/src/crates/services/services-integrations/Cargo.toml @@ -191,7 +191,6 @@ web-tools = ["reqwest", "thiserror"] product-full = [ "announcement", "browser-control", - "canvas-runtime", "debug-log", "deep-research", "file-watch",