summaryrefslogtreecommitdiffhomepage
path: root/tasks.md
diff options
context:
space:
mode:
authorAdam Malczewski <[email protected]>2026-06-24 13:14:00 +0900
committerAdam Malczewski <[email protected]>2026-06-24 13:14:00 +0900
commitd274567893ff3283878ac0dcafd51a0b127653d7 (patch)
tree9593be8bc4a6db365159ef532408732114451b98 /tasks.md
parent5630bf177c1f45d8e35ddbe35bf7d5136dc4f244 (diff)
downloaddispatch-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.md13
1 files changed, 11 insertions, 2 deletions
diff --git a/tasks.md b/tasks.md
index d75d55b..5ac0325 100644
--- a/tasks.md
+++ b/tasks.md
@@ -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.