Skip to content

v0.1.1

Choose a tag to compare

@snonux snonux released this 07 Feb 19:48
· 541 commits to main since this release

Release v0.1.1

Release Notes

Overview

This release delivers significant quality-of-life improvements for Hexai's Language Server Protocol (LSP) and command-line (CLI) tools, along with enhanced configuration controls, additional provider support, smarter completion logic, improved logging, and a much more robust, tested core. The update focuses on providing users with a more configurable, reliable, and predictable AI coding experience, both in Helix and at the command line.


Features

Expanded LLM Provider Support

  • Ollama provider added: You can now use a local Ollama server as your LLM backend, with stream support in the CLI and full configuration options.
  • GitHub Copilot provider: Integration with Copilot’s public API is included. Provider/model, API endpoint, and temperature are all configurable.
  • Provider selection simplified: Choose OpenAI, Copilot, or Ollama via config or environment variables.

Fine-Grained Configuration

  • Per-provider temperature settings: Set a coding-friendly temperature for each backend (openai_temperature, copilot_temperature, ollama_temperature). Fine-tune output determinism and creativity for your workflow.
  • Single coding temperature knob: coding_temperature can override per-provider defaults for all LSP requests; helps optimize code completion quality.
  • XDG configuration support: Config files now auto-resolve via $XDG_CONFIG_HOME/hexai/config.json.
  • Extensive environment variable support: All config options can be overridden with HEXAI_* environment variables (including API keys).
  • Configurable completion triggers: Customize what characters invoke AI completions (e.g., ".", " ", etc.); defaults now tuned for less-noisy completions.

CLI & LSP Improvements

  • Streamed responses: The CLI streams LLM output as it arrives for OpenAI and Ollama, making outputs more responsive.
  • Split binaries: hexai is now a clean CLI; hexai-lsp is the LSP server. Both can be used independently and are fully documented.
  • Project status and documented changelog: Maintained in PROJECTSTATUS.md and deeply updated README.md.

Improvements

Smarter, Less-Intrusive Completions

  • Stricter completion triggers: Completions only trigger after sufficient typing or specific trigger characters, reducing irrelevant suggestions.
  • In-flight request guard: Prevents overlapping LLM completions, improving performance and output quality.
  • Intelligent context strategies: Choose how much surrounding code is sent to the model; configurable between minimal, window, file, and always-full.
  • Completion cache: LRU caching avoids duplicate, costly requests for recent inputs.

Code Actions & Helix Integration

  • Dedicated code actions: Rewrite selected text with instructions, resolve diagnostics, and more – all scoped tightly to Helix selections.
  • Instruction detection: Picks up prompts or comments embedded in selections, making code actions more natural and predictable.
  • Lazy and resolved code actions: Code actions now only query LLMs when explicitly resolved, reducing unnecessary completions.

Output Cleanup

  • Markdown and code fence stripping: LLM completions and code actions return clean, ready-to-use code (removes ```, backticks, and inline markers).
  • Inline prompt markers: Add ;...; prompts or comment instructions in your code – Hexai will detect them and clean up after transformation.

Logging and Telemetry

  • Configurable preview log size: Control how much LLM input/output is previewed in logs via log_preview_limit.
  • Colorized logs: Easy-to-read ANSI-colored logs for outgoing messages, responses, errors, and skipped completions.
  • LLM operation stats: Output stats (averages, per-minute) for advanced users.

Refactoring and Testing

  • Modularized codebase: LSP, CLI, and LLM logic split for improved maintainability.
  • Comprehensive unit tests: Enhanced reliability for core helpers, context logic, completion heuristics, code actions, and CLI behavior.

Bug Fixes

  • No duplicate assignment in completions: Ensures suggestions don’t redundantly repeat known code, reducing confusion.
  • Instruction/inline marker cleanup: Improved logic for identifying and removing prompt tags and inline code spans.
  • Markdown stripping bug: Completions no longer include extraneous code fences or backticks.
  • Env var precedence clarified and fixed: All environment overrides (especially API keys) are now consistently honored, with documented precedence.
  • LSP throttling fixes: Transitioned from a naive time-based throttle to an “in-flight guard” for managing concurrent LLM requests.
  • Stdin reading in CLI fixes: CLI reliably concatenates stdin and argument input per documented behavior.

Potential Breaking Changes & Migration Notes

  • Renamed CLI and LSP binaries: Use hexai (CLI) and hexai-lsp (LSP server) going forward. Update your Helix languages.toml accordingly.
  • Config spec changes: Move config to $XDG_CONFIG_HOME/hexai/config.json if not already. Many config keys have gained new options; see the updated README for details.
  • Trigger character defaults: Defaults have changed (“;” and “?” are no longer default triggers, but “ “ (space) is now included). Consider customizing for your editor to match your workflow.
  • Temperature settings: The LSP now honors coding_temperature if set, falling back to provider defaults otherwise.
  • Stricter code action handling: Code actions now always operate only on the current selection, and markers are less likely to be left behind.
  • API key preference: Env vars now strongly prefer HEXAI_OPENAI_API_KEY and HEXAI_COPILOT_API_KEY over their generic counterparts.

For Users

  • Update configuration: Review your .config/hexai/config.json and environment variables. Consider new per-provider settings and review the README for examples.
  • Update Helix configuration: Use hexai-lsp as your server command and adjust trigger characters if needed.
  • Switch provider easily: Use HEXAI_PROVIDER=ollama, HEXAI_PROVIDER=openai, or HEXAI_PROVIDER=copilot to try different backends and tune the results.
  • Enjoy smarter, faster, and less-intrusive completions – plus fine-grained control, full transparency, and a cleaner developer experience!

Thank you for using Hexai! Please see PROJECTSTATUS.md for roadmap and known issues, and the README for full usage instructions and configuration examples.