Sprint 277: LSP Advanced Orchestration (steps 1913-1917)

- LSPWorkspaceIndex: track open docs, URI→{languageId,content,version}
- LSPDiagnosticsAggregator: merge diagnostics from multiple LSP sources per URI
- LSPCompletionMerger: merge+deduplicate completion items from multiple sources
- LSPOrchestrator: top-level coordinator composing all three + proxy + cross-lang resolver
- Sprint277IntegrationSummary: poly-api (Go+TypeScript) end-to-end integration

26/26 tests passing (5+5+5+5+6). All new headers ≤600 lines.
LoRA recorded: sprint277-2026-03-01 (1 call, 569 tokens).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Bill
2026-03-01 20:18:23 -07:00
parent 94f61dc97c
commit 67c3c73046
12 changed files with 1026 additions and 0 deletions

25
docs/sprint277_plan.md Normal file
View File

@@ -0,0 +1,25 @@
# Sprint 277: LSP Advanced Orchestration (Steps 19131917)
## Goal
Build the workspace-level LSP infrastructure that sits above the LSP proxy:
document tracking, diagnostics aggregation, completion merging, and a top-level
orchestrator that ties them together.
## Steps
| Step | File | What |
|------|------|------|
| 1913 | `LSPWorkspaceIndex.h` | Track open documents: URI → {languageId, content, version}. open/update/close/query. |
| 1914 | `LSPDiagnosticsAggregator.h` | Collect Diagnostic records from multiple language server sources; merge by URI. |
| 1915 | `LSPCompletionMerger.h` | Collect CompletionItem lists from multiple sources; deduplicate by label. |
| 1916 | `LSPOrchestrator.h` | Top-level coordinator: workspace index + definition routing + diagnostics + completions. |
| 1917 | Sprint 277 integration | poly-api (Go+TS): open docs, aggregate diagnostics, merge completions, goto-def via orchestrator. |
## Dependencies
- Builds on: `LSPProxyServer.h`, `LanguageServerRouter.h`, `CrossLanguageDefinitionResolver.h`
- `LSPOrchestrator` owns/composes: `LSPWorkspaceIndex`, `LSPDiagnosticsAggregator`, `LSPCompletionMerger`
## Acceptance Criteria
- All 5 step tests pass (5 tests each)
- `file_limits_test` passes (all headers ≤ 600 lines)
- Integration: poly-api project routes Go→TS completion + diagnostics through orchestrator