Version 1.26.0 of package Ellama has just been released in GNU ELPA. You can now find it in M-x list-packages RET.
Ellama describes itself as: ============================== Tool for interacting with LLMs ============================== More at https://elpa.gnu.org/packages/ellama.html ## Summary: ━━━━━━━━ ELLAMA ━━━━━━━━ [file:https://img.shields.io/badge/license-GPL_3-green.svg] [file:https://melpa.org/packages/ellama-badge.svg] [file:https://stable.melpa.org/packages/ellama-badge.svg] [file:https://elpa.gnu.org/packages/ellama.svg] Ellama is a tool for interacting with large language models from Emacs. It allows you to ask questions and receive responses from the LLMs. Ellama can perform various tasks such as translation, code review, summarization, enhancing grammar/spelling or wording and more through the Emacs interface. Ellama natively supports streaming output, making it effortless to use with your preferred text editor. ## Recent NEWS: 1 Version 1.26.0 ════════════════ • Auto-fix unexpected closing delimiters in file edits. When syntax validation fails due to unexpected closing delimiters (like extra `)` or `]`), the system automatically removes them and accepts the edit if the result is valid. This reduces friction for LLM-generated edits that occasionally include spurious closers. Changes include new functions `ellama-eval–remove-unexpected-closers-in-buffer` and `ellama-tools–remove-unexpected-closers-in-buffer` to scan buffers and remove closers without matching openers, `ellama-eval–try-fix-unexpected-closers` and `ellama-tools–try-fix-unexpected-closers` to attempt auto-fixing in file context with safe buffer restoration, and integration of auto-fixing into monitored-edit-file-tool and all balanced edit tools. • Add commit patch fallback for generate-commit-message. New functions `ellama–in-commit-buffer` and `ellama–commit-patch` detect git commit buffers and retrieve commit patches. Modified `ellama-generate-commit-message` to use commit patch as a fallback when no staged or unstaged diff is available, enabling proper commit message generation in git-commit-mode reword or amend scenarios. • Simplify test target in Makefile. Remove the inline test command definition and make `test` an alias for `test-detailed`, consolidating the test execution into a single target. 2 Version 1.25.0 ════════════════ • Add loop detection to `ellama-eval' harness that identifies repetitive tool call patterns indicating agents are stuck in evaluation loops. The harness returns recovery guidance on the first repeated identical tool call sequence, and falls back to hard loop detection for repeated loops after recovery. Configurable defcustoms control the behavior: `ellama-eval-loop-detection-enabled' (default: t), `ellama-eval-loop-detection-repeated-threshold' (default: 2), and `ellama-eval-loop-detection-max-traces' (default: 50). • Move loop recovery into task subagents by wrapping role tools with session-local repeated-call detection. Repeated identical tool calls return recovery guidance at the configured threshold and complete the subtask if the same consecutive chain continues. Document the new subagent loop-detection settings in README.org. • Extend evaluation cancellation with request context tracking. Store the active request context on the session for streaming, continuation, and compaction requests so that eval timeout cancellation can target the correct context directly. Cancel active eval worker requests when a run finishes with a non-completed status, and register asynchronous session compaction requests in the active request context so user cancellation and eval timeout stop the compact request itself. • Harden evaluation async buffer handling by scheduling timers from a stable internal buffer so callbacks do not inherit transient subagent buffers. Guard interactive summary rendering against stale target-window errors and fall back to display-buffer. • Render evaluation progress and final summaries into the selected window for interactive runs, keeping the existing display-buffer behavior as a fallback for noninteractive or stale-window calls. • Preserve triggering tool calls in public traces and final loop-detection results when loop detection triggers, and record recovery metadata in tool traces so recovered passing runs remain visible. Avoid false loop detection on later repeated reads by treating the repeated-call threshold as the recovery point for the current consecutive chain. 3 Version 1.24.1 ════════════════ • Added literal string matching support to `ellama-tools-grep-tool' and `ellama-tools-grep-in-file-tool' using `-F' (fixed-strings) and `-e' flags, treating the search string literally rather than as a regular expression. Added helper function `ellama-tools--grep-search-args' and corresponding unit tests. • Fixed `srt' command quoting for shell execution. Added `ellama-tools--shell-quote-command' helper and updated … …
