Skip to content

fix(installer): update watcher and remove archive hashing - #554

Merged
esmuellert merged 1 commit into
mainfrom
fix/watcher-installer-nvim-compat
Sep 7, 2026
Merged

fix(installer): update watcher and remove archive hashing#554
esmuellert merged 1 commit into
mainfrom
fix/watcher-installer-nvim-compat

Conversation

@esmuellert

Copy link
Copy Markdown
Owner

Summary

  • Remove the installer-side SHA-256 calculation for downloaded watcher archives.
  • Update the bundled watcher release from 0.19.0 to 0.23.2.
  • Update watcher installation and protocol fixtures.

Why

Neovim versions before 0.12 convert binary Lua strings containing NUL bytes to Blobs, while vim.fn.sha256() in those versions only accepts Strings. This caused automatic watcher installation to fail with E976 on supported Neovim versions such as 0.11.7.

The installer continues to use the fixed GitHub Release URL and retains its existing download, extraction, cleanup, and polling fallback behavior. Release-time checksum generation remains unchanged.

Closes #553

Testing

  • tests/core/watcher_install_spec.lua: 2/2 on Neovim 0.13-dev.
  • tests/core/watcher_install_spec.lua: 2/2 on Neovim 0.11.7.
  • tests/core/watcher_protocol_spec.lua: 6/6.
  • Real Neovim 0.11.7 smoke test downloaded and installed codediff-watcher v0.23.2 successfully.
  • stylua --check and git diff --check passed.
  • The full Lua suite had one unrelated local failure: ffi_integration_spec.lua found a locally built native library reporting version 3.1.1 while VERSION is 4.0.1.

@esmuellert
esmuellert requested a review from yanuoma as a code owner September 7, 2026 06:06
@esmuellert
esmuellert merged commit 3554e7c into main Sep 7, 2026
19 of 20 checks passed
@esmuellert
esmuellert deleted the fix/watcher-installer-nvim-compat branch September 7, 2026 06:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Error executing vim.schedule lua callback: Vim:E976: Using a Blob as a String

1 participant