chore(release): 0.4.0#279
Open
github-actions[bot] wants to merge 1 commit into
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
The next claudecode.nvim release. Merging this PR creates the release tag and GitHub Release, then starts Communique GitHub Release note generation.
[0.4.0] - 2026-06-15
Added
:checkhealth claudecodehealth check that verifies your setup end to end: Neovim version,setup()invocation, Claude CLI resolution and version, terminal provider sanity, WebSocket server/port, lock file presence, and live client connection state (#275).:ClaudeCodeSendText {text}command (andrequire("claudecode.terminal").send_to_terminal(text, opts)) to send arbitrary text to the open Claude terminal as if typed at the prompt, submitting by default;:ClaudeCodeSendText!inserts without submitting. Multi-line text is sent via bracketed paste. Works with the in-editornative/snacksproviders only (#197, #272).:ClaudeCodeCloseAllDiffscommand to close all pending Claude diffs at once. Diffs already accepted but not yet written are preserved (#248, #261).User ClaudeCodeSendCompleteautocmd, fired once per file when a send is accepted while Claude is connected, withdata = { file_path, start_line, end_line, context }. Lets you run post-send logic such as focusing a Claude session running outside Neovim (#228, #265).User ClaudeCodeDiffOpened/ClaudeCodeDiffClosedautocmds carrying a data payload, so configs can react to diffs opening and closing without monkey-patching internals (#270).terminal.diff_split_width_percentageto set a distinct terminal width while a diff is open, anddiff_opts.auto_resize_terminal(defaulttrue) to opt out of width changes entirely so you can own the layout (#270).<leader>asin a netrw buffer adds marked files (or the file under the cursor) to Claude's context (#62).:ClaudeCodeTreeAdd/:ClaudeCodeSend: with a snacks picker list focused, add the selected/highlighted file(s) to Claude's context (#192, #269).Changed
:ClaudeCodeSelectModelpicker with evergreen, version-free labels (Claude Opus (Latest),Claude Sonnet (Latest),Claude Haiku (Latest)), added 1M-context variants (opus[1m],sonnet[1m]) and aDefault (account recommended)entry (#256).Fixed
[ ](the 1M variants) were passed to the shell and aborted withzsh: no matches found. The Snacks provider now launches Claude via an argv list with no shell interpretation (#256).vertical_splitandopen_in_current_tabwere silently ignored due to merge order; they now map correctly tolayout/open_in_new_tab(#142).getDiagnosticsnow returns grouped URI-based payloads with editor-native ranges and severity names; the server no longer advertises an unsupported resources capability; background file opens preserve focus and return target-buffer metadata (#274).getDiagnosticsno longer errors when Claude passes a bare file path instead of afile://URI (#163)./dev/urandom), the lock file is written atomically with mode0600, and the IDE directory is created with mode0700(previously world-readable). Handshake auth comparison is now constant-time (#259).on_disconnectfor EOF, read errors, protocol errors, CLOSE frames, and keepalive timeouts, fixing phantom/stale client entries (#176, #170).no_proxy/NO_PROXY, so a configured proxy no longer tunnels Claude'sws://127.0.0.1IDE connection and times out @ mentions; existing exclusions are preserved (#70, #268).terminal.fix_streamed_paste("auto"by default) (#252).:q(or:close/<C-w>c/closing the tab) now resolves it as rejected via a newWinClosedhandler (#266).BufEnterso switching buffers updates Claude even without cursor movement (#159), and theprovider = "none"fallback now matches the Claude terminal name as a substring (#160).closeAllDiffTabsalso resolves the diff module's tracked state (#248, #261).snacks_layout_box) and snacks pickers (snacks_picker_list) are now excluded from main-editor-window detection, so diffs no longer open into or corrupt the explorer (#236, #255, #165).diff_opts.keep_terminal_focus = truenow works for floating Claude terminals (#150, #178).open_in_new_tabdiff setup are closed (#155, #175, #264).focus_after_send = truenow emits a one-time warning at setup with thenone/externalproviders (which run Claude outside Neovim and cannot be focused), pointing to theUser ClaudeCodeSendCompleteautocmd (#228, #265).Documentation
cmd = { ... }so:ClaudeCodeloads on demand from a cold start (#239, #263).provider = "none"(#157).Maintained by the release-please workflow. CHANGELOG.md and the release PR body are regenerated by Communique on every push to main, so manual edits to this PR are overwritten.