Skip to content

Releases

v0.2.1: Custom three-panel UI, 5 bugfixes

Choose a tag to compare

@ivan-hilckov ivan-hilckov released this 07 Feb 20:28

Highlights

  • Telescope removed — replaced with a custom three-panel float UI (zero external dependencies)
  • 5 UI bugfixes — fuzzy highlights, cursorline, padding, autocomplete, multiline prompts
  • 80 tests, all passing

What's New

Custom Float UI

Container frame ("BotGlue" title, model badge footer) with three borderless inner panels:

  • Filter — fuzzy search with matchfuzzypos match highlighting
  • History list — frequency-sorted, inline model tags, full-width cursorline
  • Prompt editor — multi-line, with placeholder text

Active panel indicated by yellow divider highlight. UI auto-closes on focus loss.

Bugfixes

  • Fuzzy match highlighting — correct for multi-byte UTF-8 (Cyrillic, CJK) via byteidx() conversion
  • Cursorline coverage — model tags now inline, so cursorline extends across full row
  • Symmetric padding — 1-space padding on both sides of history list entries
  • Autocomplete suppression — sets both cmp_enabled (nvim-cmp) and completion (blink.cmp) buffer vars
  • Multi-line prompts — newlines replaced with spaces in list display, preventing nvim_buf_set_lines error

Claude Interaction

  • System prompt now includes selected text for better AI context
  • _extract_result returns (result, error) tuple with graceful fallback

Requirements

Full changelog: https://github.com/heliotik/botglue.nvim/blob/main/CHANGELOG.md

v0.2.0

Choose a tag to compare

@ivan-hilckov ivan-hilckov released this 06 Feb 23:14

Major rewrite: unified inline editing assistant with extmark feedback, Telescope prompt history, and Claude Code project-level context.

Added

  • Unified :Botglue command replacing 4 separate operations
  • :BotglueCancel command for request cancellation
  • Inline progress display via extmarks (spinner + Claude activity above/below selection)
  • Telescope picker for prompt history with frequency sorting and model badges
  • Model cycling in input window (<C-s>) with visual badge
  • Prompt history with JSON persistence (~/.local/share/nvim/botglue/history.json)
  • Claude Code stream-json parsing for real-time activity display
  • Read-only tool access (Read,Grep,Glob) for project-level context
  • Configurable timeout (default 5 min), max_turns, ai_stdout_rows
  • Dynamic system prompt with file path, line range, filetype, project name
  • 60 tests (config, claude, display, history, operations, ui)

Changed

  • Single entry point M.run() replaces M.optimize/explain/refactor/translate()
  • Keymaps changed: <leader>pp (run), <leader>ps (cancel)
  • Input window now shows model badge in footer, supports pre-fill from history
  • Claude invocation uses -p with --output-format stream-json --verbose
  • Result mode is always replace (no explain/window mode in this version)

Removed

  • 4 hardcoded operations and their Russian prompt templates
  • ResultMode enum (REPLACE/WINDOW)
  • Result display window (show_result_window)
  • Spinner via nvim_echo (replaced by extmark-based display)
  • Old keymaps: <leader>po, <leader>pe, <leader>pr, <leader>pt
  • Old commands: BotglueOptimize, BotglueExplain, BotglueRefactor, BotglueTranslate

Dependencies

  • Added: telescope.nvim (required)

v0.1.0

Choose a tag to compare

@ivan-hilckov ivan-hilckov released this 05 Feb 11:36

Initial release

Features

  • Optimize prompts (po)
  • Explain code (pe)
  • Refactor code (pr)
  • Translate text (pt)

Requirements

  • Neovim 0.7+
  • Claude Code CLI