|
115 | 115 | | [Phase 97 — Full-toolset guide, tool interpretation registry, skill generation, Ollama docs](#phase-97-—-full-toolset-guide-tool-interpretation-registry-skill-generation-ollama-docs) | 3281 | |
116 | 116 | | [Phase 98 — CLI-based AI tool backends for narrator/guide](#phase-98-—-cli-based-ai-tool-backends-for-narratorguide) | 3342 | |
117 | 117 | | [Phase 99 — `--provider ollama` for narrator/guide + Ollama model discovery](#phase-99-—-provider-ollama-for-narratorguide-ollama-model-discovery) | 3406 | |
118 | | -| [Long-Term Investments](#long-term-investments) | 3447 | |
119 | | -| [Non-goals for now (revisited later)](#non-goals-for-now-revisited-later) | 3464 | |
120 | 118 | | [Phase 100 — Persistent, registry-backed server-side repo storage](#phase-100-—-persistent-registry-backed-server-side-repo-storage) | 3472 | |
121 | 119 | | [Phases 101–103 — Pluggable storage backends & index scoping](#phases-101–103-—-pluggable-storage-backends-index-scoping) | 3540 | |
122 | 120 | | [Phase 104 — Full-toolset guide coverage, per-command `--narrate`, and a guided `gitsema setup` wizard](#phase-104-—-full-toolset-guide-coverage-per-command-narrate-and-a-guided-gitsema-setup-wizard) | 3742 | |
@@ -3457,31 +3455,6 @@ is given. |
3457 | 3455 |
|
3458 | 3456 | **Status:** ✅ complete. |
3459 | 3457 |
|
3460 | | -## Long-Term Investments |
3461 | | - |
3462 | | -| Feature | Complexity | Notes | |
3463 | | -|---------|:----------:|-------| |
3464 | | -| Plugin API for custom analysers | High | Allow third-party modules to register their own search/analysis commands | |
3465 | | - |
3466 | | -> **Note:** the "pgvector migration path for >500K blobs" item formerly listed |
3467 | | -> here was implemented by Phases 101-103 (`storage.backend=postgres\|qdrant`, |
3468 | | -> see [Phases 101-103](#phases-101–103-—-pluggable-storage-backends-index-scoping)). |
3469 | | -> SQLite remains the default for new projects. |
3470 | | -
|
3471 | | -**Scale notes (updated for v0.81.0):** |
3472 | | - |
3473 | | -- **Search memory:** auto early-cut (Phase 82) now guards the default search path — reservoir sampling kicks in at 50 K candidates without any flags. ANN path (`gitsema index build-vss`) eliminates the candidate-load entirely for large indexes. |
3474 | | -- **Indexing time:** commit-message embedding is now parallelised (Phase 83). The read/embed/store pipeline (Phase 69) + parallel commit embedding together keep both phases off the critical path. The remaining serial bottleneck is commit-graph walking itself (git rev-list) which is I/O-bound. |
3475 | | -- **Chunk/symbol candidate expansion:** when `--chunks` or `--vss` is combined with a large index the candidate pool grows 3–10× before scoring. Monitor RSS when indexing large monorepos with `--chunker function`. |
3476 | | - |
3477 | | -## Non-goals for now (revisited later) |
3478 | | - |
3479 | | -| Feature | Reasoning | |
3480 | | -|---------|:----------:|-------| |
3481 | | -| Python model server (GPU Docker) | We already have Node.js embedeer and if we want Docker+python, we can use ollama. | |
3482 | | - |
3483 | | ---- |
3484 | | - |
3485 | 3458 | ### Phase 100 — Persistent, registry-backed server-side repo storage |
3486 | 3459 |
|
3487 | 3460 | **Goal:** Make `gitsema tools serve`'s `POST /api/v1/remote/index` persist cloned |
@@ -6043,6 +6016,68 @@ detail): |
6043 | 6016 |
|
6044 | 6017 | --- |
6045 | 6018 |
|
| 6019 | +### Phase 149 — Remove `tools lsp --tcp` |
| 6020 | + |
| 6021 | +**Design:** no separate design doc — scoped directly from a `/whatnext` |
| 6022 | +audit finding: review10 §3.5 flagged `tools lsp --tcp` as an unauthenticated |
| 6023 | +network transport (raw TCP has no header to carry a Bearer token in), Phase |
| 6024 | +120 deprecated it in favor of `--websocket --key` rather than fixing it, and |
| 6025 | +Phase 120's own entry explicitly floated removal as "a separate, |
| 6026 | +explicitly-scheduled future phase once usage data/feedback suggests it's |
| 6027 | +safe." The audit confirmed no test in the suite exercises `--tcp` or |
| 6028 | +`startLspTcpServer` (`grep -rln "startLspTcpServer\|--tcp" tests/` returns |
| 6029 | +nothing), so removal is a clean cut with no test fallout to reconcile. |
| 6030 | + |
| 6031 | +**Goal:** Actually remove the `--tcp <port>` transport (not just deprecate |
| 6032 | +it further) from `gitsema tools lsp` and the legacy `gitsema lsp` alias, |
| 6033 | +closing the unauthenticated-transport gap by deleting the surface entirely |
| 6034 | +rather than continuing to carry it forward. |
| 6035 | + |
| 6036 | +**Scope:** |
| 6037 | +1. Removed the `--tcp <port>` Commander option and its handling from `tools |
| 6038 | + lsp` (`src/cli/commands/tools.ts`) and the top-level `gitsema lsp` |
| 6039 | + backward-compat alias (`src/cli/commands/lsp.ts`). |
| 6040 | +2. Removed `startLspTcpServer()` from `src/core/lsp/server.ts`, along with |
| 6041 | + the now-unused `node:net` `createServer` import that only existed to |
| 6042 | + support it. |
| 6043 | +3. Deleted the `gitsema tools lsp --tcp <port>` row from |
| 6044 | + `docs/deprecations.md` §1 (hard deprecations) per that file's own stated |
| 6045 | + policy — "delete its row only after the removal has actually shipped" — |
| 6046 | + and bumped its "Last updated" date. |
| 6047 | +4. Updated `README.md`, `docs/features.md`, `docs/parity.md`, and |
| 6048 | + `CLAUDE.md` to remove `--tcp` references: README's and features.md's |
| 6049 | + `tools lsp` command-reference rows now read `[--websocket |
| 6050 | + <bind-address>] [--key <token>] ...` with no TCP mention; |
| 6051 | + `docs/parity.md`'s §0 transport table, legend, and flag-coherence rows |
| 6052 | + for `tools lsp` drop the `--tcp` column entirely (LSP is now stdio or |
| 6053 | + `--websocket` only, matching MCP's existing stdio/`--websocket`/`--http` |
| 6054 | + pattern); `CLAUDE.md`'s "Known gaps & future phases" table entry, which |
| 6055 | + previously described `--tcp` as an open, deprecated gap, now describes |
| 6056 | + the removal instead. |
| 6057 | +5. Added `.changeset/remove-lsp-tcp-transport.md` (`minor` severity, |
| 6058 | + following this repo's established precedent of using `minor` rather than |
| 6059 | + `major` for breaking changes pre-1.0 — see `.changeset/deprecate-lsp-tcp.md` |
| 6060 | + and `.changeset/author-http-route-parity.md`). |
| 6061 | + |
| 6062 | +**Acceptance criteria:** |
| 6063 | +- `gitsema tools lsp --tcp <port>` and `gitsema lsp --tcp <port>` no longer |
| 6064 | + parse as valid invocations (Commander has no `--tcp` option registered). |
| 6065 | +- `startLspTcpServer` no longer exists anywhere in `src/`. |
| 6066 | +- `docs/deprecations.md` no longer lists `--tcp` in §1. |
| 6067 | +- `README.md`/`docs/features.md`/`docs/parity.md`/`CLAUDE.md` describe LSP |
| 6068 | + as available over stdio or `--websocket` only. |
| 6069 | +- `pnpm build && pnpm test` clean — no test referenced `--tcp` or |
| 6070 | + `startLspTcpServer` before this change, so this is a clean removal. |
| 6071 | + |
| 6072 | +**Files touched:** `src/cli/commands/tools.ts`, `src/cli/commands/lsp.ts`, |
| 6073 | +`src/core/lsp/server.ts`, `docs/deprecations.md`, `README.md`, |
| 6074 | +`docs/features.md`, `docs/parity.md`, `CLAUDE.md`, `docs/PLAN.md`, |
| 6075 | +`.changeset/remove-lsp-tcp-transport.md`. |
| 6076 | + |
| 6077 | +**Status:** ✅ complete. |
| 6078 | + |
| 6079 | +--- |
| 6080 | + |
6046 | 6081 | ## Deployment scenarios & usage envisioning |
6047 | 6082 |
|
6048 | 6083 | The architecture of gitsema supports three distinct deployment scenarios, each with different operational models and target users. This section clarifies the intended usage patterns and the infrastructure requirements for each. |
|
0 commit comments