Skip to content

Tracking L1: async post-save diagnostics on chat-diff save path #1396

Description

@easonLiangWorldedtech

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)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions