Skip to content

refactor(features): replace flat feature list with use-case bundles#1859

Merged
bug-ops merged 5 commits intomainfrom
refactor-features-replace-flat
Mar 15, 2026
Merged

refactor(features): replace flat feature list with use-case bundles#1859
bug-ops merged 5 commits intomainfrom
refactor-features-replace-flat

Conversation

@bug-ops
Copy link
Owner

@bug-ops bug-ops commented Mar 15, 2026

Closes #1831

Summary

  • Adds six named Cargo feature bundles (desktop, ide, server, chat, ml, full) grouping individual flags by deployment scenario
  • Bundles are purely additive — all existing --features tui,scheduler builds continue to work unchanged
  • full resolves to the same 15 features as before (metal/candle/cuda remain opt-in)
  • Fixes metal and cuda to imply candle (they were broken without it)
  • Adds bundle-check CI job covering all 5 non-hardware bundles; wired into ci-status gate
  • Adds deployment mode selection step to --init wizard
  • Rewrites docs/src/reference/feature-flags.md with bundle table and updated examples

Known issue

--features ml fails with pre-existing candle/rubato compile errors on main (not introduced by this PR — reproduced on main before this branch). The bundle-check CI job for ml will fail until fixed. Tracked in #1858.

Test plan

  • cargo check --features desktop passes
  • cargo check --features ide passes
  • cargo check --features server passes
  • cargo check --features chat passes
  • cargo check --features full passes
  • cargo check --features "desktop,server" passes
  • cargo nextest run --features full --lib --bins — 5828 passed, 0 failed
  • cargo +nightly fmt --check — clean
  • cargo clippy --workspace --features full -- -D warnings — 0 warnings
  • cargo check --features ml — fails due to pre-existing fix(ml): candle/rubato compile errors with --features ml (pre-existing) #1858 (not a blocker)

…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.
@github-actions github-actions bot added documentation Improvements or additions to documentation rust Rust code changes dependencies Dependency updates ci CI/CD configuration refactor Code refactoring without functional changes size/M Medium PR (51-200 lines) labels Mar 15, 2026
@bug-ops bug-ops enabled auto-merge (squash) March 15, 2026 17:41
bug-ops added 3 commits March 15, 2026 18:51
…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.
@bug-ops bug-ops merged commit e28e6d3 into main Mar 15, 2026
24 checks passed
@bug-ops bug-ops deleted the refactor-features-replace-flat branch March 15, 2026 18:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci CI/CD configuration dependencies Dependency updates documentation Improvements or additions to documentation refactor Code refactoring without functional changes rust Rust code changes size/M Medium PR (51-200 lines)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

refactor(features): replace flat feature list with curated use-case bundles

1 participant