Skip to content

editor: restore model-visible post-save diagnostics on the chat-diff save path #2210

Open

Description

@easonLiangWorldedtech

Problem

PR #1403 (L1) makes the saveDirectly (chat-diff, PREVENT_FOCUS_DISRUPTION) path fire-and-forget its post-save diagnostics: DiffViewProvider.saveDirectly resolves immediately and the tail emits new problems only through the say("error") chat/webview channel. formatFileWriteResponse therefore no longer receives a newProblemsMessage on this path, so the model does not see the diagnostics that the diff-editor saveChanges path still reports.

This is intentional for the L1 latency goal (the save path no longer waits for the LSP settle), but it is a behavior difference between the two approval paths and should not be silent.

Proposed direction

  • Restore a model-visible signal for new problems on the chat-diff path without blocking the save: e.g. persist the tail's problems into the next tool result / a queued non-interactive message the model sees, or return a promise-backed newProblemsMessage that the tool layer can await only when a problem is likely.
  • Keep the say("error") UI row and its non-interactive semantics unchanged.
  • Add tool-layer tests for WriteToFileTool/ApplyPatchTool/EditTool covering experiments: {} with a new problem: the model-visible response must include the problems text, while the save still resolves before the LSP settle.

Context

Found in the CodeRabbit review of #1403 (DiffViewProvider.saveDirectly); the current behavior is documented in that PR/issue. This issue tracks closing the gap between the diff-editor and chat-diff approval paths.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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