Skip to content

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

@bug-ops

Description

@bug-ops

Problem

The current [features] table has 15+ individual flags (a2a, acp, acp-http, acp-unstable, compression-guidelines, discord, experiments, gateway, lsp-context, otel, pdf, scheduler, slack, stt, tui, candle, metal, cuda). A user who only wants a CLI background agent must mentally audit which flags apply to them. The gap between default = [] (bare minimum) and full (everything) gives no guidance.

Proposed bundles

Replace the flat list with small, named bundles representing coherent use cases:

Bundle Features included Use case
cli (core only, no extras) Minimal headless / scripting / pipe mode
desktop tui + scheduler + compression-guidelines Interactive TUI with scheduling
ide acp + acp-http + lsp-context IDE integration (Zed / Helix / VS Code)
server gateway + a2a + scheduler + otel Background daemon / webhook ingestion
chat discord + slack Chat platform bots
ml candle + pdf + stt Local inference + document ingestion
full all of the above CI / development

Individual low-level flags (candle, metal, cuda, acp-unstable, experiments) remain available for power users who need fine-grained control.

Acceptance criteria

  • default points to the most common single use-case bundle (e.g. cli) or remains []
  • full is redefined as the union of all bundles
  • CI matrix covers at minimum: default, desktop, ide, server, full
  • README and --init wizard updated to present bundles instead of individual flags
  • --init step: "What mode do you primarily use Zeph in?" → select bundle → auto-set features in generated config
  • CHANGELOG entry with migration note (no functional change, only Cargo.toml)

Notes

  • acp-unstable and experiments should remain individual flags (intentionally opt-in)
  • candle/metal/cuda remain individual (hardware-specific)
  • Bundles can overlap (e.g. server can include compression-guidelines)
  • Breaking change to Cargo.toml feature names: document in CHANGELOG

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions