Skip to content

Conversation

@github-actions
Copy link

🤖 I have created a release beep boop

1.0.0 (2026-01-30)

⚠ BREAKING CHANGES

  • permissions: upgrade to opencode v1.1.1 breaking API change
  • operator
  • events: scope autocmd by type, scope opts, allow disabling entirely
  • select: nest section config under opts.select.sections
  • config: more intuitive organization for ask and select opts
  • config: remove deprecated terminal, on_opencode_not_found, on_send
  • use more robust Promise to chain callbacks
  • client: migrate to opencode v1.0.0+ API
  • command: migrate to opencode v1.0.0 commands
  • provider: add opts.provider to better integrate custom opencode management
  • prompt for permission requests
  • context: store prompt-context in object, remove description
  • config: remove add_ prefixes from built-in prompts
  • config: rename opts.on_submit to opts.on_send - it's called more broadly now
  • prompts: merge prompt opts to top-level Prompt fields
  • OpencodePrompt: replace OpencodeAdd with more powerful OpencodePrompt
  • prompt: make clear and submit opt-in rather than default for simplicity
  • remove deprecated setup()
  • context: remove default @diagnostic
  • rename opts.on_send to opts.on_submit for consistency with prompt.opts
  • select: support designating any opts.prompt item to open ask
  • api: simplify prompt functions into one, with opts to control
  • generalize embedded cmd to opts.terminal.cmd
  • select_prompt -> select
  • config: rename options to opts for consistency
  • config: move opencode.Config type to opencode.Opts
  • remove automatic input fallback, but add bypass instructions
  • replace opts.auto_fallback_to_embedded with more powerful opts.on_opencode_not_found
  • highlight: leverage input()-highlight for snacks.input highlighting
  • keymaps: move out of config/setup and into user-land
  • rename opts.context to opts.contexts
  • context: add documentation to context completions
  • context: rename files to buffers
  • send to tui instead of server
  • remove single-use opts
  • call arbitrary external opencode process - remove embedded terminal

Features

  • :[range]OpencodeAdd (877daf3)
  • add agent_cycle command (b0d5afa)
  • add opts.model (#39) (f84122b)
  • add blink.cmp integration for context placeholders (3e9d4c4)
  • add built-in prompt to review git diff (f982ef8)
  • add completion to opencode.ask (880cad3)
  • add create_session to API, with notifications (aab01d7)
  • add current line diagnostic context (d13ed3c)
  • add diff context (7929eaa)
  • add opts.auto_fallback_to_embedded, show embedded upon prompt (6860f4b)
  • add opts.input and opts.terminal (2904e5e)
  • add quickfix context (f4bd33c)
  • add title to vim.notify's (18a4ac3)
  • add tmux provider (#69) (d815c31)
  • add toggle embedded terminal function for convenience (b7fa29c)
  • api: expose separate clear/append/submit_prompt functions (92b6db4)
  • api: simplify prompt functions into one, with opts to control (ed0aaf3)
  • apply opts.auto_fallback_to_embedded to commands (049cdab)
  • ask: built-in completion for built-in vim.ui.select! (06cdf1d)
  • ask: fallback to vim.ui.input when snacks.nvim not available (ad2fda6)
  • ask: highlight context value in completion documentation window (8f65cf5)
  • ask: highlight multi-line buffers (d58149e)
  • ask: highlight placeholders (147a55e)
  • ask: leverage snacks vim.ui.input shim so its easier to bypass (c18dfed)
  • ask: position input directly above cursor (4a55c67)
  • ask: remove icon trailing space (33930af)
  • ask: support passing opencode.prompt.Opts (f27e0d4)
  • automatically set system theme in embedded terminal (2969a00)
  • blink: auto-register configurable sources at runtime for convenience (b2589d8)
  • blink: show context values in completion docs (033141b)
  • call arbitrary external opencode process - remove embedded terminal (3f5d920)
  • call opts.on_opencode_not_found and poll even when using opts.port (9a99594)
  • client: migrate to opencode v1.0.0+ API (9e30400)
  • command: migrate to opencode v1.0.0 commands (d0593a0)
  • commands: add input_clear (9ab9bc5)
  • commands: add prompt.submit and prompt.clear to defaults (fe5211c)
  • commands: add messages copy, undo, redo (8aac510)
  • command: select menu when nil passed (ac6f4a2)
  • command: type the available, useful commands (e213c66)
  • config: allow removing default prompts and contexts by setting them to false (a0acf45)
  • config: bubble up errors from opts.on_opencode_not_found and opts.on_send (a7142e2)
  • config: default terminal enter to false (edf96dd)
  • config: move input highlight and on_buf to config so it can be overridden (90ccc00)
  • config: pass options via vim.g.opencode_opts instead of setup() for near-instant startup time (2c0606d)
  • config: type vim.g.opencode_opts for better UX (a9536f6)
  • configure port (5f6b508)
  • context: [@marks](https://github.com/marks) (e83a9eb)
  • context: add [@this](https://github.com/this), combining [@cursor](https://github.com/cursor) and [@selection](https://github.com/selection) for convenience (4ef53ae)
  • context: add documentation to context completions (72b8b6e)
  • context: add visible_text (c8e40fd)
  • context: include file contents in prompts for faster responses (9c3f883)
  • context: only compute context when found in prompt (bc91098)
  • context: refactor to render, and highlight prompt previews (7860159)
  • context: remove default [@diagnostic](https://github.com/diagnostic) (522ba41)
  • context: remove L and C labels from locations (155baf7)
  • context: replace placeholders even when not followed by spaces (6512d6c)
  • context: replace placeholders with empty string when no context (01d2e66)
  • context: send relative paths instead of absolute (e53afe3)
  • create new session if none exist (e8bee94)
  • embedded: default to custom filetype for easier targeting and to prevent accidental targeting (5bdfbfd)
  • enable auto_reload by default for better discoverability (4ba9f51)
  • ensure we always choose most recent session (df3bdb7)
  • events: scope autocmd by type, scope opts, allow disabling entirely (a01fe4f)
  • exit visual mode after injecting context (f1e46dd)
  • fetch subagents and custom commands to show in ask and select respectively (5206966)
  • fire event upon opencode response, and immediately reload buffer/changes (6846c66)
  • forward opencode SSEs and use them to reload edited buffers immediately (b0fdbc8)
  • generalize embedded cmd to opts.terminal.cmd (98e1767)
  • gracefully handle missing snacks.nvim without user action (fc8fcf2)
  • health: add nvim version and curl availability (03f6fcb)
  • health: add commit hash (bf1781b)
  • health: check auto reload (f1a02ad)
  • health: check blink and snacks.terminal (162e2af)
  • health: check major version now that opencode v1.0.0 is out (fa7b538)
  • health: log opts (65a627f)
  • health: print OS, use vim.health.info where appropriate (4be26ab)
  • helpful error msg when lsof not available to find opencode server (820e4b0)
  • highlight opencode subagents (217d363)
  • highlight visual selection while prompting (b985ecf)
  • immediately subscribe to SSEs when started via provider (#72) (7a52426), closes #54
  • inline requires to load 3ms faster (f3dcf58)
  • launch embedded opencode with configured port (c3d52be)
  • more granular logging when finding opencode server (ccbbf79)
  • move show_if_exists() to opts.on_send so it can be overridden (39b876f)
  • OpencodePrompt: replace OpencodeAdd with more powerful OpencodePrompt (10e5955)
  • operator (39a246b)
  • permissions: shorten prompt title (8b737e4)
  • permissions: wait for idle, add opts for enabled and delay (6b760c3)
  • prioritize embedded opencode when multiple open (e6a0805)
  • prompt for permission requests (fe3b397)
  • prompt: call opts.on_submit in prompt even when not submitting (fc9be97)
  • prompt: resolve prompts referenced by name (80a364b)
  • prompts: "implement [@this](https://github.com/this)" (dfe8048)
  • prompts: ask -> ask_this (905ebd6)
  • prompts: make description optional (91c8f7d)
  • provider: add kitty provider (#77) (81ac51f)
  • provider: add opts.provider to better integrate custom opencode management (9184323)
  • provider: add stop, improve abstraction with name and health() (8fc1689)
  • provider: add wezterm (#86) (dfcbe2b)
  • provider: add basic built-in terminal (aba9e8c)
  • provider: more obvious, helpful errors when unavailable (9851bd3)
  • providers: remove show(), operate only on self-started opencodes (963fad7)
  • register highlights JIT to setup faster (04ab9f0)
  • remove automatic input fallback, but add bypass instructions (243e1c2)
  • replace opts.auto_fallback_to_embedded with more powerful opts.on_opencode_not_found (35f7787)
  • resume visual selection when ask or select are cancelled (fef07f3)
  • selectable prompts (bfd08c8)
  • select: add commands and provider items - now exposes all plugin functionality :D (69c94dc)
  • select: add option to include ask item (dead0f8)
  • select: always hide provider section when unavailable (2518b11)
  • select: always show all prompts regardless of mode and content (bcbfca0)
  • select: enable selectable prompts to append without submitting (014e64e)
  • select: expose opts.select (8158412)
  • select: filter prompts by visual mode (b761998)
  • select: filter prompts' selection usage by their value, not key (0a8e01d)
  • select: highlight placeholders in line item (890c8cf)
  • select: highlight prompt name in snacks (837cb52)
  • select: preview prompts when using snacks.nvim (e82aefc)
  • select: replace prompts.description with its key, and display it (a37e7b8)
  • select: sort alphabetically for consistency (33ef451)
  • select: support designating any opts.prompt item to open ask (6baa78c)
  • send to tui instead of server (03676f2)
  • server: detect opencode servers on Windows (#87) (9dad7da)
  • sessions: select session (#139) (0f85a44)
  • setup auto_reload JIT for faster initial load (e33cb72)
  • show all completions when no word started (9c2b7f1)
  • show input relative to cursor by default (8cbd308)
  • simplify context prompts to ask_append in select. remove [@cursor](https://github.com/cursor) and [@selection](https://github.com/selection) in favor of just [@this](https://github.com/this) (2e7d8b0)
  • state 'lsof' dependency more clearly when finding opencode, and opts.port fallback (5851ee0)
  • status: disconnect when provider stops or heartbeat disappears (502d5fe)
  • statusline: add rudimentary statusline component (2e66ef8)
  • support :checkhealth opencode (4393e41)
  • terminal: default to auto_insert (49074aa)
  • terminal: don't override user's snacks.terminal interactive options (25e4cdb)
  • terminal: expose cmd to make it easier to use your own terminal plugin (3d05bf6)
  • terminal: hide title by default (52b4e30)
  • use snacks.input for ask for better UX (144fad0)

Bug Fixes

  • accidentally broke setup (1bf294b)
  • always return numeric ports, never resolve special ones to service names (59822d4)
  • ask: crash when no opts passed, and use opts from select when available (01daf61)
  • ask: highlighting overlapping placeholders (5df80d3)
  • ask: prefixing multiple @s to subagents in blink (87cda19)
  • blink: broken documentation codeblock when context starts or ends with backtick (45663b6)
  • calling create_session directly with nil opts (8a0e054)
  • change handle_sse and handle_json to properly parse streaming vim.fn.jobstart on_stdout calls (#89) (0457708)
  • client: Fix conditional logic to avoid unintended fallback when handle_sse returns nil or false (#37) (b63066a)
  • client: Fix nil parameter in create_session function error (#31) (9ed84e9)
  • client: only one SSE subscription should be active at a time (f87e18f)
  • client: use vim.fn.jobstart for more reliable SSE streaming (#142) (7ae1f9a)
  • config: add provider.wezterm defaults (e772fce)
  • config: eager loading as soon as opencode.lua is loaded (728ff4b)
  • config: make prompts and contexts fields non-nullable (6430b97)
  • context: [@visible](https://github.com/visible) included invalid wins (934f126)
  • context: add back L and C location labels (efd3c29)
  • context: also swap cols when backwards line selection is swapped (03398b5)
  • context: clear highlight when ask and select are cancelled (68c4bcf)
  • context: error when highlighting range in char or block mode (#107) (0b64c9c)
  • context: maxcol passed from linewise visual mode (e6a9751)
  • context: multiple file references in diagnostics context, and improve format (#67) (c7594f8)
  • context: omit columns when actively in linewise selection (9cda2f2)
  • context: remove prefixed @ to not confuse the LLM. match CWD exactly. (4be20c5)
  • detect opencode process when running via Bun or Nix (#90) (9566e58)
  • determining child processes, and improve errors (482ca08)
  • don't error on missing grapple (cfc1955)
  • don't expect buffer to be loaded to add it to context (#115) (5707270)
  • don't restore visual mode when ask/select are cancelled w/o range (#110) (e235528)
  • don't show all completions after space (84a54bc)
  • don't show occasional error when opencode quit normally (2f87f7d)
  • embedded: always default auto_close to true (63a6ebc)
  • embedded: finding opencode when using fish shell (b9eac81)
  • expose opencode server so we can find it (17d0aad)
  • find opencode processes started with flags (e6b0a83)
  • handle special chars in CWD (#8) (ac103f7)
  • health: compare opencode minor and patch version using less than (bdb807a)
  • health: detecting if snacks.input is enabled (f627d2e)
  • health: error when lsof or pgrep are missing and port isn't set (9356782)
  • health: error when vim.g.opencode_opts is nil (990c062)
  • highlight: always hling line 1 (57cf87c)
  • highlight: create hl group immediately, once, to respect user overrides (465fb5a)
  • highlight: fix linked hl possibly not existing yet if plugin not lazy-loaded (684f1b4)
  • highlight: link to more built-in highlight group (0182e39)
  • kitty: interpret command correctly (c83f7ee)
  • kitty: share editor's env with opencode (8959566)
  • log error when already-open embedded not found (c5659b5)
  • on_opencode_not_found: better error message when it doesn't start. no need to return true/false (cce33eb)
  • only return matching placeholders for native cmdline completion (4354946)
  • permissions: display general title (5b2c9f9)
  • port: better error message (ad75564)
  • provider: call show when toggle was previously called (3d534e2)
  • reload: schedule reload to hopefully avoid blocking + dropping events (ea7de21)
  • remove leftover log (c327509)
  • response decode race condition (#103) (dfca5bb)
  • select: error upon selecting ask (eddd0ce)
  • select: include [@this](https://github.com/this) contexts when in visual mode (6fdccd4)
  • select: update snacks.picker config to latest syntax for showing preview (0665982)
  • select: update snacks.picker config to latest format to show preview (1661a97)
  • select: using [@this](https://github.com/this) (cb35fe2)
  • server: opts.port testing and auto-add --port flag to terminal.cmd (#63) (de5b146)
  • server: harmless error when starting opencode + polling (#82) (fda7eed)
  • server: increase delay to reduce chance of calling too soon after startup (9d9cea7)
  • server: increase portability of finding pid (3e719b0)
  • server: more cross-platform pgrep usage (364c733)
  • server: oops wasn't closing timer after polling for opencode (5f592fd)
  • server: skip invalid processes when discovering opencode servers (#98) (86020e9)
  • server: suppress lsof warnings (05c52d1)
  • server: suppress warnings in other lsof use (6b98a39)
  • simplify finding opencode and bypass unreliable ps (08bf33d)
  • snacks: launching embedded when previously started, then closed, then external opencode launched (344580e)
  • sse: follow SSE spec to fix parsing edge cases (#15) (23a739a)
  • sse: handle opencode restarting on a different port while running (736c625)
  • sse: occasionally dropping quick events (a7840c5)
  • sse: properly decode long SSEs split across multiple lines (866378c)
  • support visual selection with new OpencodePrompt/ask (66fdcb3)
  • terminal: fix empty columns on right side (#129) (f0eabda)
  • this: clear stored mode at correct time (ff34876)
  • this: reset was_visual_mode when select or ask cancelled (3c53b89)
  • this: visual selection (cf83b7c)
  • tmux: add config options to prevent OSC response leak into Neovim buffer (#144) (849a5f6), closes #148
  • typo when finding already-open opencode (96cf9c2)
  • wezterm: track pane_id as opposed to tracking title, and remove dependency on jq (#93) (c7bb7dd)

Performance Improvements

  • server: pre-filter opencode processes by --port argument (#128) (d849ba9)

Code Refactoring

  • select_prompt -> select (f631557)
  • config: more intuitive organization for ask and select opts (ecbf1dc)
  • config: move opencode.Config type to opencode.Opts (ddb6de0)
  • config: remove add_ prefixes from built-in prompts (51a70b8)
  • config: remove deprecated terminal, on_opencode_not_found, on_send (0c293ee)
  • config: rename opts.on_submit to opts.on_send - it's called more broadly now (0bdc7a1)
  • config: rename options to opts for consistency (b2a8902)
  • context: rename files to buffers (a90a954)
  • context: store prompt-context in object, remove description (2282e87)
  • highlight: leverage input()-highlight for snacks.input highlighting (8a55935)
  • keymaps: move out of config/setup and into user-land (187d547)
  • permissions: upgrade to opencode v1.1.1 breaking API change (c840698)
  • prompt: make clear and submit opt-in rather than default for simplicity (8e01fd7)
  • prompts: merge prompt opts to top-level Prompt fields (e724e61)
  • remove deprecated setup() (1bc6520)
  • remove single-use opts (4ede32c)
  • rename opts.on_send to opts.on_submit for consistency with prompt.opts (37dbd12)
  • rename opts.context to opts.contexts (a395d6f)
  • select: nest section config under opts.select.sections (add4f1d)
  • use more robust Promise to chain callbacks (510eb5a)

This PR was generated with Release Please. See documentation.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

bug: Plugin sends some strange charcodes feature: register for SSEs without prompt()

1 participant