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

Abierto
#433 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
12/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Activo
Stack tecnológico
lua, neovim
Área
devtools

Línea de trabajo

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.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

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

Lenguaje dominante
Lua
Estrellas
3.1k
Forks
223
Merge medio
6 h 47 min
PR fusionados (30 d)
93

Preparar el entorno

Abrir en Codespaces

Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.

  • Sin Dockerfile ni archivo de Docker Compose
  • Sin plantilla de pull request
  • Sin guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de coder/claudecode.nvim

Todos los issues de coder/claudecode.nvim

Issues similares

Más issues de Lua

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.