refactor(features): replace flat feature list with use-case bundles#1859
Merged
refactor(features): replace flat feature list with use-case bundles#1859
Conversation
…1831) Add six named feature bundles (desktop, ide, server, chat, ml, full) grouping individual flags by deployment scenario. Bundles are purely additive — all existing --features tui,scheduler style builds continue to work unchanged. - Cargo.toml: add desktop/ide/server/chat/ml bundles; redefine full as union of bundles (identical resolved set as before); metal/cuda now imply candle (CRIT-01) - CI: add bundle-check matrix job; wire into ci-status gate (CRIT-02) - docs/src/reference/feature-flags.md: rewrite with bundle table and updated build examples - README.md: add one-line bundle summary with docs link - src/init.rs: add deployment mode selection step to --init wizard - CHANGELOG.md: migration note in [Unreleased] Note: --features ml fails with pre-existing candle/rubato errors on main (unrelated to this PR). Tracked in #1858.
…cfg flags DynSchedulerExecutor is only used in acp.rs, so gate it with #[cfg(feature = "acp")] to avoid dead_code errors when building --features desktop or --features server. with_refresh_tx and store are only called inside #[cfg(feature = "tui")] blocks in runner.rs, so gate them accordingly. Fixes bundle-check CI failures for desktop, server bundles.
The ml bundle (candle + pdf + stt) fails to compile due to pre-existing rubato::SincFixedIn and candle_provider type errors on main (tracked in #1858). Use continue-on-error so the bundle-check job does not block the ci-status gate until the upstream candle issues are resolved.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #1831
Summary
desktop,ide,server,chat,ml,full) grouping individual flags by deployment scenario--features tui,schedulerbuilds continue to work unchangedfullresolves to the same 15 features as before (metal/candle/cuda remain opt-in)metalandcudato implycandle(they were broken without it)bundle-checkCI job covering all 5 non-hardware bundles; wired intoci-statusgate--initwizarddocs/src/reference/feature-flags.mdwith bundle table and updated examplesKnown issue
--features mlfails with pre-existingcandle/rubatocompile errors onmain(not introduced by this PR — reproduced onmainbefore this branch). Thebundle-checkCI job formlwill fail until fixed. Tracked in #1858.Test plan
cargo check --features desktoppassescargo check --features idepassescargo check --features serverpassescargo check --features chatpassescargo check --features fullpassescargo check --features "desktop,server"passescargo nextest run --features full --lib --bins— 5828 passed, 0 failedcargo +nightly fmt --check— cleancargo clippy --workspace --features full -- -D warnings— 0 warningscargo check --features ml— fails due to pre-existing fix(ml): candle/rubato compile errors with --features ml (pre-existing) #1858 (not a blocker)