feat: Phase 5 polish — conditional LSP tools, capabilities, sidecar hooks

- ToolSide enum: documented Sidecar future variant
- StartSession.capabilities: client reports LSP availability
- Client detects LSP binaries on PATH, sends ["lsp_rust", "lsp_typescript"]
- build_tool_definitions() conditionally registers LSP tools only when
  client has LSP capability — model won't hallucinate unavailable tools
- CodeSession stores capabilities, has_lsp(), has_capability() accessors
- git_branch() reads from git for breadcrumb scoping
- ToolRegistry.gitea_client() accessor for reindex endpoint
This commit is contained in:
2026-03-24 09:54:14 +00:00
parent a11b313301
commit ec55984fd8
4 changed files with 46 additions and 11 deletions

View File

@@ -658,6 +658,7 @@ mod grpc_tests {
file_tree: vec![],
model: "mistral-medium-latest".into(),
client_tools: vec![],
capabilities: vec![],
})),
})
.await