Skip to content

Make heavy integrations optional build features#313

Merged
everettjf merged 3 commits intomainfrom
feat/issue-309-optional-heavy-integrations
Apr 1, 2026
Merged

Make heavy integrations optional build features#313
everettjf merged 3 commits intomainfrom
feat/issue-309-optional-heavy-integrations

Conversation

@everettjf
Copy link
Copy Markdown
Contributor

Summary

  • make serenity, matrix-sdk, and rmcp optional dependencies
  • add channel-discord, channel-matrix, mcp, and full build features
  • gate runtime/module wiring so default builds stay smaller while --features full preserves the current integrated build
  • keep disabled-feature behavior explicit via startup warnings and a no-op MCP manager fallback
  • document the new --features full build path in the README

Validation

  • cargo check --quiet
  • cargo check --quiet --features full

Size analysis

Baseline from the current pre-split release binary on this machine:

  • target/release/microclaw: 56 MB stripped Mach-O

Largest release .rlib contributors observed before the split:

  • matrix-sdk: 62 MB
  • serenity: 56 MB
  • matrix-sdk-crypto: 39 MB
  • matrix-sdk-sqlite: 34 MB
  • teloxide_core: 33 MB
  • matrix-sdk-base: 28 MB
  • ruma_events: 25 MB
  • rmcp: 20 MB

Interpretation:

  • Matrix is the single biggest optional stack by a wide margin.
  • Discord is the next obvious heavyweight.
  • MCP is also large enough that it should not be forced into the default artifact.
  • Telegram/web remain meaningful, but the first high-yield split is Matrix + Discord + MCP.

everettjf and others added 2 commits March 30, 2026 18:25
…ional

Remove the channel-discord feature gate so Discord is always compiled in
the default build. The `full` feature now only adds `channel-matrix` and
`mcp`. Simplify the release workflow matrix by using a cross-product of
target platforms and flavor (default/full) instead of duplicating entries.

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
@everettjf everettjf merged commit 0d2b633 into main Apr 1, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant