.omo/evidence/20260716-fix-6131/qa-summary.md
Date: 2026-07-16. Host: Windows 11, bun 1.3.14, node 24 (fnm). Workspace off OneDrive.
packages/lsp-core/src/lsp/client.ts diagnostics() waits for fresh push diagnostics when
diagnostic pull is unsupported. A server that (a) never advertised diagnosticProvider
(or rejected textDocument/diagnostic with -32601) and (b) never publishes
textDocument/publishDiagnostics for a clean file — marksman's observed behavior in the
issue's protocol probe — leaves the wait with no possible satisfying event, so every
lsp_diagnostics call on a clean file ends as freshness_timeout.
Pre-regression contract (git show cf65a63ab^:packages/lsp-core/src/lsp/client.ts, lines
125-145): pull attempt swallowed unsupported errors and fell back to
return { items: this.getStoredDiagnostics(uri) } — an empty, non-error result. The
freshness hardening in cf65a63ab (PR #6097 chain) did not carry that terminal fallback for
the never-published + pull-unsupported case.
lsp_symbols
works; live repro shows initialize + didOpen round-trips succeed.client.ts deadline branch in the push-fallback path: when
!this.isDiagnosticPullSupported() && snapshot.publishGeneration === 0, return the stored
(empty) diagnostics instead of freshness_timeout. 10 product lines (comment included).
Stale-publish and hung-pull behavior unchanged (publishGeneration > 0 / pull still
"supported" keep the timeout), full freshness window still honored before resolving clean.
red.txt — new integration test on unmodified dev product code: FAILS for the
behavioral reason (result carries freshness_timeout transientError). exit=1green.txt — same test on fixed head: 1 pass / 0 fail. exit=0negative-control.txt — product fix stashed, test re-run: fails again. exit=1typecheck.txt — bun run typecheck (includes lsp-core): exit=0related-suites-dev-baseline.txt — full bun test packages/lsp-core on unmodified dev:
89 tests, 0 failrelated-suites-head.txt — first full-package run on head: 2 unrelated
workspace-mutation-lease tests failed (subprocess-timing flake on this Windows host)related-suites-head-rerun.txt — immediate rerun on identical head: 90 tests, 0 fail —
confirms the two lease failures were host-timing flakes, not diff-causedlive-mcp-driver.mts — driver spawning the production omo-lsp mcp stdio entry
(packages/lsp-tools-mcp/src/cli.ts mcp) with real marksman 2026-02-08, isolated temp
workspace + isolated LSP_TOOLS_MCP_USER_CONFIGlive-before-fix.txt — REAL surface, unfixed dev: isError: true, "Timed out waiting
for fresh diagnostics ... within 3000ms", errorKind: freshness_timeout — the issue's
exact user-visible symptomlive-after-fix.txt — REAL surface, fixed head: isError: false, "No diagnostics
found" for the same clean README.md