You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Two related changes — splitting into separate commits would have
required disentangling overlapping diffs in the same files.
## Refactor: build_channels returns Channels struct
10-tuple → `struct Channels { ... }`. Same fields, just named.
build_channels returns Channels; main.rs destructures the same locals
it already used. No behavior change, but the call site is no longer a
positional 10-tuple unpacking that breaks every time we add a slot.
Doc-noted in main.rs: `compile_lsp_commands` currently ignores the
`extensions` field on per-server overrides. The claimed-extensions
list lives in the static `builtin_servers()` registry; making it
instance-overridable requires plumbing a per-session server set down
through LspManager. Follow-up; users who need new extensions today
must edit `server.rs`.
## Phase 8: feature gate
Adds `feature = "lsp"` to Cargo.toml's default set. With it off:
- `lsp` module is not compiled; `lsp-types` dep stays optional + skipped.
- `Channels.lsp_manager` field gated out (also gated out of destructure
in main.rs).
- `build_agent` / `build_agent_inner` / `run_interactive` drop their
`lsp_manager` arg via `#[cfg(feature = "lsp")]` on the param.
- Read/Write/Edit tools drop their `lsp_manager` field + integration
call.
- LspTool not registered; `--no-lsp` CLI flag not exposed.
- `LspConfig` / `LspServerConfig` types gated; `cfg.lsp` field gated.
- ACP / slash sub-rebuilds / plan-switch all use `#[cfg(feature = "lsp")]`
None args.
Verified:
- `cargo build --no-default-features --features 'loop git-worktree mcp'`
→ clean (no lsp deps pulled in).
- `cargo build` (default) → clean, all 4 LSP servers wired.
- `cargo test --no-default-features --features 'loop git-worktree mcp'`
→ 305 passing (LSP module's 121 tests correctly excluded).
- `cargo test` (default) → 426 passing.
0 commit comments