diff options
| author | Adam Malczewski <[email protected]> | 2026-06-24 13:14:00 +0900 |
|---|---|---|
| committer | Adam Malczewski <[email protected]> | 2026-06-24 13:14:00 +0900 |
| commit | d274567893ff3283878ac0dcafd51a0b127653d7 (patch) | |
| tree | 9593be8bc4a6db365159ef532408732114451b98 /tasks.md | |
| parent | 5630bf177c1f45d8e35ddbe35bf7d5136dc4f244 (diff) | |
| download | dispatch-d274567893ff3283878ac0dcafd51a0b127653d7.tar.gz dispatch-d274567893ff3283878ac0dcafd51a0b127653d7.zip | |
docs(lsp): live-verify passed — broken-server recovery + configSource + shadow warning
All five live-verify checks passed against the dev stack (bin/up :24203):
configSource reaches the wire (built-in TS, 'built-in'); broken server reports
error + configSource + source-named error; recovery without restart (blocker,
error->connected after config fix); no retry storm; shadow warning logged via
host.logger when both configs declare lsp.
Diffstat (limited to 'tasks.md')
| -rw-r--r-- | tasks.md | 13 |
1 files changed, 11 insertions, 2 deletions
@@ -39,8 +39,17 @@ investigation + Wave 0 + wrote the prompt; its chat broke mid-summon — resumed - [x] Verified: `tsc -b` EXIT 0, biome clean, **1443 vitest** pass; all agents in-lane (only packages/lsp + transport-contract + transport-http touched; pre-existing uncommitted WIP in kernel/tool-shell left untouched). Zero internal mocks. -- [ ] Live-verify against the dev stack (a failed server recovers after a config edit - without a restart; `configSource` visible on `GET /conversations/:id/lsp`). +- [x] **LIVE-VERIFIED** (dev stack `bin/up` on :24203, new code via `--watch`): + (A) `configSource` reaches the wire — built-in TS server reports + `configSource:"built-in"`, `state:"connected"` (Wave 0 + transport-http pass-through + confirmed end-to-end); (B) a broken server (`.dispatch/lsp.json` → nonexistent binary) + reports `state:"error"` + `configSource:".dispatch/lsp.json"` + a source-named error + string (`broken-ts [from .dispatch/lsp.json]: Executable not found in $PATH: …`); + (C) **recovery without restart** (the blocker) — same conversation/process went + `error`→`connected` after the config was fixed (config change clears the broken key → + re-spawn → connects); (D) no retry storm — repeated `status()` with no config change + stays `error`; (E) shadow warning logged via `host.logger` (`extensionId:"lsp"`, + level `warn`) when both `.dispatch/lsp.json` and `opencode.json` declare lsp. ## Per-conversation model persistence (DONE) Bug: a chat's selected provider + model was NOT persisted per conversation. |
