Tracking issue for the L1 PR (branch feat/async-save-diagnostics-l1; PR to be opened after review).
Part of the file-write safety series — plan: easonLiangWorldedtech/Zoo-Code#33, epic: #1375. Item: L1 — Async post-save diagnostics. Stacked on #1395 (S3 atomic publish); to be rebased onto main once #1395 lands.
Scope
DiffViewProvider.saveDirectly no longer blocks the save result on LSP diagnostics: the write and response resolve immediately, and post-save diagnostics become an asynchronous follow-up once settled (the existing writeDelayMs moves into that tail).
- The follow-up is emitted through the existing ClineSay type
error, with text of the form New problems detected after saving file: <relPath> — no new say type, and packages/types stays untouched.
diagnosticsEnabled = false (the current saveDirectly parameter) means no diagnostics at all, exactly as today.
- Because diagnostics no longer run before the response, the tool-result JSON drops the
problems field — the information is delivered later via the follow-up event instead.
Acceptance
- Save resolves without waiting on diagnostics (post-save latency drops by the LSP-settle time); diagnostic information is still delivered, just later
- Follow-up event fires with the settled diagnostic payload when new problems exist; no event on a clean save
- No floating promises — the follow-up tail is explicitly handled
- CI green (ubuntu unit-test gate), 100% codecov patch coverage
Status
- PR: #1403 (head
13b60328c; ALL checks green incl. ubuntu+windows unit, e2e-mock, codecov/patch; CodeRabbit review complete; awaiting maintainer merge)
Tracking issue for the L1 PR (branch
feat/async-save-diagnostics-l1; PR to be opened after review).Part of the file-write safety series — plan: easonLiangWorldedtech/Zoo-Code#33, epic: #1375. Item: L1 — Async post-save diagnostics. Stacked on #1395 (S3 atomic publish); to be rebased onto
mainonce #1395 lands.Scope
DiffViewProvider.saveDirectlyno longer blocks the save result on LSP diagnostics: the write and response resolve immediately, and post-save diagnostics become an asynchronous follow-up once settled (the existingwriteDelayMsmoves into that tail).error, with text of the formNew problems detected after saving file: <relPath>— no new say type, andpackages/typesstays untouched.diagnosticsEnabled = false(the currentsaveDirectlyparameter) means no diagnostics at all, exactly as today.problemsfield — the information is delivered later via the follow-up event instead.Acceptance
Status
13b60328c; ALL checks green incl. ubuntu+windows unit, e2e-mock, codecov/patch; CodeRabbit review complete; awaiting maintainer merge)