fix: wrap ERROR and WARN logging in vim.schedule to prevent fast event context errors #54
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Fixes #51 - Prevents "nvim_echo must not be called in a fast event context" errors that occur when TCP connection errors are triggered from timer callbacks (e.g., after laptop sleep/wake).
vim.notify
calls for ERROR and WARN levels invim.schedule()
Changes
lua/claudecode/logger.lua
to wrap ERROR and WARNvim.notify
calls invim.schedule()
tests/unit/logger_spec.lua
with comprehensive test coverage for fast event context safetyThe fix specifically addresses the error stack trace from the issue where
logger.error()
was called fromserver/tcp.lua:254
within a timer callback, which is a fast event context where direct vim API calls are not allowed.