openFile: nested write + BufWriteCmd handler can overwrite Claude's file during the acwrite step (known gap)

Đang mở
#433 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

Chưa có ai nhận issue này.

Đánh giá

Độ khó
5/5
Thời gian dự kiến
Hơn một tuần
Mức phù hợp với người mới
12/100
Loại issue
Lỗi
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
lua, neovim
Lĩnh vực
devtools

Hướng nghiên cứu

Start with the openFile paragraph of Side Effects in lua/claudecode/tools/README.md, then read earlier threads #408, #413 and #420 for the attempts already ruled out. The hard part is design: find a way to block writes of only the one buffer during the acwrite step without affecting other writes or prompts. Done means a documented, tested approach that keeps the E676 and E142 behaviour the issue describes.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

needs-triage

openFile can still write the user's unsaved text over the file Claude just changed, in one narrow case. This issue tracks it, because #413 and #420 only documented it.

When it happens. All three must hold:

  1. openFile runs its acwrite step for the buffer: the buffer was opened before its file existed, or 'eventignore' or 'eventignorewin' ignores FileChangedShell.
  2. A user autocommand with ++nested on BufEnter, BufWinEnter or BufLeave writes that buffer while openFile shows it.
  3. A user BufWriteCmd handler that matches the file (such as BufWriteCmd *) writes <afile>.

Without ++nested, or without a matching handler, the write fails with E676 and Claude's file stays. Before #408, Neovim stopped this write with E13.

What was tried.

  • Turning the global 'write' option off during the step (#413 first version) stopped the overwrite but made a common autocmd BufLeave * update autosave fail openFile with E142.
  • nowrite or nofile 'buftype' make 'modified' read as off, which loses unsaved text through other autocommands (#408 round 7).
  • readonly does not stop :w! and prompts with 'confirm'.
  • A BufWriteCmd guard of openFile's own runs after the user's BufWriteCmd *.

Where it is documented. lua/claudecode/tools/README.md, openFile paragraph of Side Effects.

A fix needs a way to block writes of this one buffer during the step without blocking or prompting other writes.


Generated with xum • Model: anthropic:claude-opus-5-5 • Thinking: high

Ngôn ngữ chính
Lua
Star
3.1k
Fork
223
Merge trung bình
6 giờ 47 phút
Pull request đã merge (30 ngày)
93

Chuẩn bị môi trường

Mở trong Codespaces

Khởi chạy dev container của dự án ngay trên trình duyệt, bằng tài khoản GitHub của bạn.

  • Không có Dockerfile hay tệp Docker Compose
  • Không có mẫu pull request
  • Không có hướng dẫn đóng góp

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của coder/claudecode.nvim

Tất cả issue của coder/claudecode.nvim

Issue tương tự

Thêm issue về Lua

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.