- Implement DLP (Data Loss Prevention) layer.
- Add prompt‑injection detection and configurable output‑warning handling.
- Add SRT sandbox integration to ellama-tools.
- Remove apply_patch tool.
- Add refill-readme target. Updated AGENTS.md to include a new “Refill readme” step in the build instructions. Modified Makefile to add the target to the `.PHONY` list and to define the `refill-readme` rule, which runs Emacs in batch mode to format the `README.org` file.
- Refactor org filling for README and NEWS. Introduce a reusable `refill-org` macro that uses `org-element` to fill paragraphs to 80 columns, replacing the previous `fill-region` approach. Update `refill-news` and `refill-readme` targets to use this macro, simplifying the Makefile and ensuring consistent formatting across org files.
- Update readme formatting. Minor formatting tweaks.
- Improved new session handling in
ellama-chatby refactoring session resolution logic to conditionally create new sessions when the create-session flag is set. - Added test to verify that using the create-session flag forces creation of a new session independent of existing sessions.
- Improve ephemeral context behavior for interactive commands.
ellama-ask-about,ellama-code-review,ellama-write, andellama-code-addnow explicitly add region/buffer context as ephemeral for one request. - Add safer region replacement flow for editing commands.
ellama-streamnow accepts:replace-begand:replace-endto replace text in place, and restore buffer content on request errors.ellama-change,ellama-code-edit,ellama-code-improve, andellama-make-formatnow use this path. - Improve request cancellation handling across related buffers. Request state
is now tracked as a shared request context, so cancellation through
C-gworks consistently from both main and reasoning buffers and does not affect unrelated active requests. - Fix chat session recovery after buffer revert. Session resolution now uses
stable runtime UIDs and restores session state after
revert-buffer, improving robustness across renames and legacy session files. - Add development helper targets to the Makefile. New targets:
make format-elispfor formatting project Elisp files andmake test-detailedfor running tests with detailed ERT failure output.
- Fix compilation warnings. This change resolves compilation warnings found during building.
- Add fake streaming helpers and new stream tests. Introduce
ellama-test--fake-stream-partialsandellama-test--run-with-fake-streamingto simplify test setup for streaming LLM responses. Refactor existing tests to use these helpers. Add tests forellama-streamoutput to a log buffer and for retry logic when a fake tool‑call error is raised. These changes improve test readability and cover new streaming scenarios. - Add tests for ellama helper functions and error handling. Introduce unit tests
covering
ellama-remove-reasoning, mode-derived helpers, tool call error detection, error handler retry logic on tool errors, error handling for non-tool errors, chat-done callback behavior, and setup to use local ellama-tools. These tests validate correct behavior and edge cases. - Correct tool argument handling, enable‑by‑name, and edit‑file logic. Update
ellama-tools-wrap-with-confirmto use each argument’s plist for type resolution, prevent type removing. Guardellama-tools-enable-by-name-toolagainst adding a nil tool when the name is missing. Simplifyellama-tools-edit-file-toolto use replace-match for robust replacement. Add extensive ERT tests covering argument type preservation, enable‑by‑name nil‑check, edit‑file replacement at file start, confirmation caching, reply, and denial flows, file read/write/append/prepend/directory tree/move/line range/patch application validations, role and provider resolution logic, subagent loop step limits, task tool role fallback and priority handling. - Add test for context prompt clearing ephemerals. Introduce a new ERT test
test-ellama-context-prompt-with-context-clears-ephemeralthat verifiesellama-context-prompt-with-contextreturns the combined prompt string and clears the ellama-context-ephemeral list. The test also ensures thatellama-context-globalremains intact after the prompt is generated, confirming that ephemerals are not persisted across prompts. - Add comprehensive tests for ellama skill handling. Implemented a suite of unit tests covering skill frontmatter parsing, directory scanning with filtering of invalid or hidden skills, project directory resolution, ordering of global and local skills, and prompt generation for both empty and populated skill lists.
- Add blueprint tests. Updated the Makefile test target to run the new ellama‑blueprint tests and added tests/test-ellama-blueprint.el which exercises blueprint loading, variable handling, selection, and command execution.
- Add community prompts tests and refactor download logic. Implemented
comprehensive unit tests for community prompts, updated Makefile to run the
new test, and refactored the prompt download routine in
ellama-community-prompts.elto simplify directory handling and response processing. - Add transient tests for ellama. Introduce comprehensive tests for Ellama transient features, covering model population, provider construction, provider selection, system and prompt handling, context summary, argument forwarding, and main menu initialization.
- Add manual export tests. Add a comprehensive test suite for ellama manual export, verifying that the version macro is included, badge.svg and gif links are stripped, org-export-to-file is called with correct arguments, broken links are bound locally, and an error is raised when the version header is missing.
- Split
test-ellama.el. Move tools and context related test to separated files. - Add skills tests and update Makefile. Implemented a comprehensive test suite for Ellama skills, covering front‑matter parsing, directory scanning, project directory resolution, skill aggregation, and prompt generation.
- Add manual export instructions. Add “Export manual” entry to AGENTS.md and a
new
manualtarget to the Makefile. The target runsellama-manual-exportvia Emacs batch mode. - Documentation fixes. Minor updates to documentation for clarity and consistency.
- Refactor confirmation system architecture. Split confirmation logic into reusable internal functions and improved wrapper factory. The system now accepts explicit tool names and uses them in confirmation prompts for lambda functions. This change improves ellama confirmation and makes it easier to extend.
- Add native compilation warnings check. This adds a new check-compile-warnings Make target that allows developers to verify native compilation warnings.
- Fix duplicate system message handling in chat prompts. This change removes the
redundant
llm-chat-prompt-append-responsecall that was appending the system message on each interaction, ensuring the system message is included only once in the initial prompt context setup. - Fix bad src block replacement nil match crash that occurred when handling certain source code blocks.
- Warn LLM when reading binary content to prevent potential parsing errors and improve robustness of tool integration.
- Generalize docstring verb-form rule to apply consistently across documentation and code.
- Implement automatic retry for tool call errors. This feature adds retry logic to handle transient failures during tool usage by appending error messages to the prompt and re-invoking requests, improving overall request reliability.
- Fix stack overflow in markdown code fence conversion in
ellama--translate-markdown-to-org-filterby replacing expensive regular expressions with linear line parsing for inline fences. - Add regression test
test-ellama-md-to-org-inline-fence-long-lineto cover long lines with inline code fences and prevent this failure from returning.
- Fix result delivery for already approved async tools. Ensure results are delivered via callback function for both interactive and pre‑approved tools.
- Guard against nil project root tool result. Wrap
ellama-tools-project-root-toolresult in an and expression to prevent errors when the tool returns nil, protecting file-name-directory and expand-file-name calls.
- Add fallback for AGENTS.md search when
ellama-tools-project-root-toolreturns nil. This ensures reliable detection of the AGENTS.md file by falling back to the current directory.
- Fix bug when only single tool was available. This change fixes a duplicate
checking issue in the tool list by using
llm-tool-nameinstead ofplist-getfor proper duplicate detection. - Make
shell_commandtool async. The tool now executes commands asynchronously using a callback function for better performance. - Trim shell command output and return nil for async tools. This ensures proper return value handling for async commands to maintain compatibility with the llm library.
- Add –no-pager flag to git commands in changelog generation. This prevents output paging and ensures clean command output.
- Simplify file writing in
ellama-tools-write-file-tool. Replaced temp buffer-based file writing with write-region to simplify implementation and avoid temporary buffer overhead. - Refactor file tool parameters. Renamed
pathparameter tofile_nameacross all file operation tools to follow GNU coding convention. Updated function signatures, docstrings, and tool definitions accordingly.
- Prevent duplicate tools in ellama-tools. Added a test function to add-to-list to check if a tool with the same name already exists before adding it to ellama-tools-available. This prevents duplicate tools from being registered when enabling tools by name.
- Update changelog skill quoting style. Changed the changelog generation skill
to use org-mode quoting (
text) instead of markdown backticks (`text`). Also use “MUST” instead of “must” to pay LLM’s attention to the newline requirement.
- Normalize file path in write-file function. Added expand-file-name to properly handle both absolute and relative paths when writing files, preventing potential issues with file path resolution.
- Filter function objects from function call arguments. This prevents display of uncallable function objects in the confirmation prompt.
- Make task tool unaccessible for general subagents. This change improves security and control over tool access.
- Fix file write tool. Corrected the order of operations in ellama-tools-write-file-tool by setting the buffer file name before inserting content.
- Fix async tools confirmation. Use callback function to return result to the agent.
- Improve system message handling. Added optional MSG parameter to ellama-get-system-message to allow callers to provide custom system messages via the :system plist key. This allows sub-agents to use skills.
- Improve agent response result handling. Updated result encoding to return “done” for nil results instead of causing potential errors.
- Fix result handling in tool execution wrapper. Improved the logic for handling tool results by ensuring JSON encoding only occurs when a result exists. This change fixes async task execution.
- Improve loop control in confirmation dialog. Refactored the while loop in the confirmation prompt to use explicit t/nil returns for loop continuation instead of throw/catch. This improves code readability and maintainability while preserving all existing functionality.
- Add view and reply options to ellama-tools confirmation.
- Remove tools list tool to minimize LLMs distraction.
- Add automated NEWS formatting using
make refill-news.
- Simplify project root detection in
ellama-get-agents-md-pathto useellama-tools-project-root-tool. This refactoring eliminates potential nil returns from project-current, making the function more robust when locating the AGENTS.md file.
- Add asynchronous task delegation functionality via the new
tasktool that allows delegating descriptions to subagents with custom roles and max-steps limits. - Add configurable subagent roles with
ellama-tools-subagent-rolescustomization variable, enabling custom providers, system prompts and tool access permissions for different agent types. - Add JSON support to answer variants in the
ellama-tools-ask-user-toolto handle both list and string inputs. - Simplify tool result handling by adding nil checks before JSON encoding.
- Remove redundant tool definitions including
enable_tool,disable_tool,search_tools, andtodayto streamline the tool management system.
- Add AGENTS.md support to system message. Include the AGENTS.md file content from the current project or subproject in the system message by adding helper functions to locate and read the file from the directory tree up to the project root.
- Refine style guidelines and remove old instructions. Updated docstring formatting rules in AGENTS.md and removed legacy instructions.org file.
- Add skills system to Ellama.
- Add Agent Skills to the documentation.
- Add changelog generation skill to the project.
- Added prepend_file tool that allows prepending content to files. This expands the set of file manipulation utilities available through the ellama tools.
- Introduced customizable global and local directories for storing blueprint files. Added support for configurable file extensions and utility functions to locate, read, and load blueprints from files. This provides a flexible, project-aware mechanism for discovering and loading blueprint resources.
- Switched to backquote quoting for ellama-blueprint font-lock. This adjustment ensures the regex is evaluated correctly and the font-lock face is applied as intended.
- Remove explicit handling of numeric arguments in ellama-tools.
- Add argument processing and type wrapping to tool definitions.
- Add MCP Integration documentation.
- Refactored tool confirmation and simplified tool definitions.
- Simplified tool calling response handling.
- Use
call-processinstead ofshell-command-to-stringforgrep_in_fileandapply_patchtools. - Update tools for already running sessions.
- Add missing import statements to fix native compiler warnings.
- Fix parameter order in grep tool confirmation message.
- Fix shell command injection vulnerability in grep tools.
- Add patch application functionality.
- Add *.elc to .gitignore.
- Add AGENTS.md and Makefile.
- Add blueprint removal functionality.
- Overwrite blueprint with the same name during creation.
- Update grep tools to accept directory parameter.
- Fix content replacement in edit_file tool.
- Update changelog generation instructions.
- Added json-encode wrapping to
ellama-tools-read-file-tool,ellama-tools-grep-tool,ellama-tools-grep-in-file-toolandellama-tools-lines-range-tooloutputs for consistent JSON format.
- Added
count_linesandlines_rangetools for counting lines and retrieving file content by line range. - Introduced
grep_in_filetool with confirmation prompt and updatedellama-tools-availablelist.
- Added a new tool called “ask_user” that allows the system to pose questions to the user and receive clarifications.
- Added a new tool to append content to files, including
ellama-tools-append-file-toolandellama-tools-append-file-tool-confirm. - Registered the new append file tool in
ellama-tools-availablewith appropriate arguments and description.
- Removed redundant checks for function arguments and streamlined the execution logic in ellama-tools.el, making the code more concise and maintainable by using the apply function directly in all cases.
- Added directory tracking to sessions, including a directory path in the extra data field and setting the default directory when a session is initialized to maintain working directory context.
- Added option to allow all tools without confirmation using new
ellama-tools-allow-allvariable marked as dangerous. - Introduced
ellama-tools-allowedoption to specify a list of allowed tools that execute without user confirmation. - Updated execution logic to check for tool’s presence in the allowed list and
properly encode non-string results using
json-encode. - Added documentation for new tool access configuration options in README.org and ellama.info.
- Refactored tool functions to use new naming conventions with “-tool” suffix and confirmation wrappers with “-tool-confirm” suffix.
- Added support for processing and displaying tool uses and their results in LLM responses.
- Updated response handler function signature to accept a result-handler and filter function.
- Modified response processing logic to handle tool results and continue processing with updated prompts.
- Adjusted async and streaming request handling to pass new parameters for better tool integration.
- Added comprehensive tool support, enabling filesystem operations, shell commands, and utilities through LLM tools, including tool registration, file operations, directory tree exploration, and date/time utilities.
- Integrated tool system into
ellama.el, adding dependencies, modifying session creation, and refactoring error and response handlers. - Implemented a new transient menu for managing tools with enable/disable functionalities, accessible via the main transient interface.
- Added user confirmation system for potentially dangerous operations like file and shell command executions.
- Refactored tool confirmation logic and response handling in
ellama-tools.elandellama.elfor improved structure and JSON encoding. - Fixed directory tree function errors, ensuring proper checks and formatted output.
- Restricted template variable expansion to self-contained variables that don’t span multiple lines to avoid conflicts with code snippets.
- Created a variable for the regular expression to simplify future changes.
- Made template variable matching less aggressive to accommodate various programming languages that use {} as function markers.
- Added new
ellama-response-process-methodcustomization option to choose between streaming and async response processing methods. - Implemented async processing as an alternative to streaming for potentially lower resource usage.
- Added support for skipping every N messages in streaming responses to reduce resource usage.
- Added new static method to indicate quotes in ellama-context module.
- Enhanced ellama-transient to display richer context information including current session and context list contents.
- Adapt and improve templates.
- Use derived-mode-p instead of eq for mode checking.
- Fix code block translation in markdown to org mode conversion.
- Added
ellama-debugto documentation.
- Added
(require 'llm-ollama)toellama-get-ollama-model-namesfunction to ensure the llm-ollama module is loaded before attempting to retrieve ollama model names. This fixes error when the function is called without the module being previously required.
- Added
ellama-debugcustom variable to enable debug output. When enabled, generated text is now logged to a*ellama-debug*buffer with a separator for easier tracking of debug information. The debug output includes the raw text being processed and is appended to the end of the debug buffer each time. - Fixed issue where nested or improperly formatted code blocks were not being handled correctly during markdown to org conversion. Added logic to check for existing BEGIN_SRC markers before replacing blocks, and improved backward search handling. Also added test cases for multiple bad code blocks with good content before and after them.
- Changed
ellama--string-without-last-linefunction toellama--string-without-last-two-linesto remove last two lines instead of one. Updated the text insertion logic inellama--insertto use the new function and handle paragraph filling more robustly. Also improved the condition check for wrong character count and adjusted test cases accordingly. - Fixed test case.
- Added reproduction of duplicate lines bug. Fix this bug.
- Refactored
ellama--apply-transformationsto use markers for stability during replacements. Addedset-hard-newlineproperties to handle hard newlines during text filling. Updated test cases to include a new test for markdown list to org list conversion. - Added check for function existence to avoid errors when
llm-ollama-pis not available. - Displayed ellama instant result buffer on done instead of visible reasoning buffer.
- Added two new tests for ellama functionality:
test-ellama-lorem-ipsumverifies proper line wrapping and formatting of long text.test-ellama-duplicate-stringschecks handling of duplicate strings with markdown formatting. - Added a check to skip processing when input text is empty, preventing potential errors in subsequent operations.
- Moved
(require 'llm-ollama)from inside the function to top scope to ensure package is loaded before use.
- Use direct interfacing with Ollama’s API instead of local installation.
- Added
create-sessionoptional parameter toellama-ask-about,ellama-ask-selection,ellama-ask-line, andellama-code-reviewcommands, and added--new-sessionoption to transient commands. These changes allow creating a new session even if one is already active. - Added the ability to create an ephemeral session by adding a new
:ephemeralargument to various functions and added the--ephemeraloption to several transient commands inellama-transient.el. - Implemented ephemeral context elements that are cleared after a single LLM request. Added corresponding functions and transient suffixes to manage ephemeral context elements, updating existing functions to handle both global and ephemeral contexts.
- Set up the transient menu to ensure the Ollama model is filled if it’s empty.
- Added
use-hard-newlinesvariable and updated text insertion to use hard newlines. Ensured that text is inserted only if there is a delta, and improved the conditional logic for filling paragraphs.
- Added detailed context management documentation.
- Set default directory for new sessions.
- Added functionality to set the file name before saving a session.
- Enhanced session ID generation to prevent overwriting existing session files.
- Added manual generation functionality for Ellama, including a new .gitignore entry to exclude ellama.texi, created ellama-manual.el for exporting an info manual from the README, and added the file ellama.info.
- Added the GNU Free Documentation License (FDL) text to README.org and updated ellama-manual.el to include FDL information ensuring compliance with FDL requirements. Added GNU Free Documentation License document to the project, ensuring that manuals remain free in terms of freedom to copy, distribute, and modify.
- Refactored the marker creation logic in ellama.el to use copy-marker for both beg-marker and end-marker, reducing redundancy and improving readability.
- Fix marker handling in block processing to correctly handle block boundaries during text processing and updated tests to include inline code translation from Markdown to Org.
- Improve text processing in
ellama.elby adding markers for beginning and end of the text range to handle text transformation more accurately. Updated paragraph filling logic to avoid unwanted behavior inorg-mode. - Remove redundant group parameter from all defcustom definitions in ellama.el.
- Refactor session line update functions by removing redundant show and hide functions for header and mode lines, simplifying the update functions using a let-bound element variable.
- Removed hooks from ellama minor modes.
- Added functionality to display the current Ellama session ID in both the header line and the mode line.
- Added globalized minor modes for enabling this feature across all buffers.
- Refactored the text insertion and handling logic in
ellama.el. - Added new customization variables
ellama-show-reasoningandellama-reasoning-display-action-functionto control the display of reasoning. Updatedellama.elto use these new variables when displaying reasoning buffers. - Added
ellama-disable-scrollandellama-enable-scrollfunctions to control auto-scroll behavior. - Added a new face
ellama-key-faceto style the context line keys in bothellama-blueprint.elandellama-context.el. Updated header line formats to use this new face for better visual distinction.
- Fix support for translating inline code from markdown to org format by handling backticks.
- Updated tests to include cases with inline code.
- Added an explicit autoload form to fix non package.el installations for Emacs 28 and 29.
- Added an autoloadable alias
ellamathat points to the main menu functionellama-transient-main-menu, providing a convenient way to access the feature.
- Added
ellama-completion-providercustom variable to specify the LLM provider for completions. Updatedellama-streamcall inellama-completeto use this new provider and modified the filter function to handle prefix trimming correctly.
- Fixed a bug in session delete or kill that deletes or kills the current file or buffer when no session is selected.
- Renamed the variable
ellama-transient-systemtoellama-global-systemto reflect its broader scope and updated all references inellama.el,ellama-transient.elandellama-blueprint.el. Moved it from ellama-transient to ellama. Fix symbol’s value as variable is void bug.
- Moved transient menu-related functions and variables from
ellama.eltoellama-transient.el. - Created
ellama-context.elfor context-related functions, variables, and classes. - Moved blueprint-related code from
ellama.eltoellama-blueprint.el.
- Added system message support with new functions and variables in
ellama-blueprint.elandellama-transient.el. - Updated keybindings and transient menus to include system message options.
- Modified
ellama-streamto use the transient system message if not provided explicitly.
- Updated
ellama-summarize-prompt-templatewith new summarization instructions. - Modified
ellama-instantcalls inellama-summarizeandellama-summarize-kill-ring. - Updated translation template for better structure and added Org-mode to Markdown conversion.
- Added
ellama-fix-parensfunction to remove unnecessary parentheses after template insertion. - Refined
ellama-completefunction for more accurate response trimming.
- Added
ellama-blueprint-runfunction to run a chat with an LLM using a specified blueprint and optional pre-filled variables. - Added documentation for blueprints in the README file.
- Added a new transient prefix command
ellama-transient-blueprint-menufor managing blueprint-related commands, including creating blueprints from buffer or as new ones, and chatting with selected blueprints. - Added a main menu option for chatting with blueprints.
- Added custom variable
ellama-blueprintsto store user-defined blueprints. - Created commands
ellama-create-blueprintandellama-new-blueprintfor creating new blueprints from an existing one and from scratch.
- Fix compat dependency version.
- Ensured that the buffer
ellama--context-bufferis created if it does not exist before attempting to update and show context to prevent errors related to non-existent buffers. - Added calls to
ellama-update-context-showin both header line and mode line minor modes to ensure context is shown when these modes are toggled.
- Added fallback mechanism to use the first available Ollama chat model when no specific provider is defined for various ellama functions, ensuring that a valid provider is always used and preventing potential errors in scenarios where providers are not explicitly set.
- Refactored
ellama--scrollto accept an optional POINT argument, allowing the function to go to that specific point before scrolling. Updated the callerellama-update-bufferto pass the new point. - Refactored the
ellama-preview-context-modeby renaming the quit command key binding to use a custom functionellama-kill-current-buffer. Added a header line format that displays the quit command instruction. - Added a new function
ellama-send-buffer-to-new-chat-then-killto send the current buffer to a new chat session and then kill it. Updated the keybinding inellama-blueprint-mode-mapto use this new function instead of the old one. - Added a new function
ellama-kill-current-bufferand updated the keymap inellama-blueprint-mode-mapto use this function instead of an anonymous lambda. Also, updated the header line format to display the correct command names usingsubstitute-command-keys. - Removed redisplay call to prevent flickering.
- Ensure
llm-ollamadependency are loaded.
- Fixed the auto-scroll logic in
ellama.elto ensure it correctly sets and resetsstop-scrollbased on cursor position changes. - Added a
redisplaycall at the end ofellama--scrollto force a refresh of the window display to correctly handle auto-scroll of unfocused windows.
- Fixed a bug where users couldn’t move the cursor during generation when auto-scroll was enabled.
- Improved transient menus.
- Added ellama-session-kill functionality.
- Added community prompt collection feature.
- Refactored
ellama-context-modeto be a major mode. - Added functionality to remove context elements by name.
- Added option to always show context line in header or mode line.
- Implemented ellama context header line and mode line features.
- Added
ellama-context-header-line-mode,ellama-context-mode-line-modeand its global versions. - Session renaming functionality improvements.
- Improved session deletion.
- Renamed
ellama-session-removetoellama-session-delete. - Removed
ellama-long-lines-lengthcustomization and related usage
- Fix scroll function.
- Improve the default behavior of auto-scroll. It will now move the cursor to the end of the ellama-chat buffer and enable auto-scroll for all buffers, not just chat buffers.
- Remove default ellama provider.
- Use first available ollama chat model if ellama provider not set. Ensure
ellamais usable with zero configuration.
- Fix org to markdown conversion with broken links.
- Add
ellama-context-add-directorycommand.
- Add interactive context management in special buffer with preview.
- Fix context element ordering.
- Deprecate local session context.
- Add option to toggle posframe showing global context.
- Add instruction document for simplify help from ellama.
- Added transient suffix to load model from the current session.
- Add system message support to
ellama-stream,ellama-chatandellama-instant. - Fix think tag handling for some models.
- Provide buffer to all
kill-buffercalls. Tried to fix an unreproducible in my environment bug.
- Fix cancel current stream by pressing
C-gin buffer with active streaming.
- Improve the accuracy and reliability of the
ellama-semantic-similar-pfunction.
- Ensure unique elements in session and global contexts.
- Change default transient host and port to fix ollama provider setup.
- Deactivate ellama session on setting ellama-provider.
- Added functionality to convert Org mode content to Markdown when extracting buffer or file content for the context. This ensures that any Org mode files are properly formatted as Markdown before being processed further.
- Clear session context when resetting context to prevent unexpected behavior.
- Improve
ellama-add-selection. - Add buffer quote context element.
- Enhancing interaction with reasoning models. Thinking tags within session buffers will be collapsed by default after generation. Outside of ellama sessions reasoning will be removed from model output. This ensures a seamless experience for users interacting with reasoning models.
- Unquote symbols in
ellama-provider-list.
- Add ollama model selection to transient menu.
- Refactor ellama-code-add function for better efficiency. Remove redundant
context handling in
ellama-code-add. Simplify the prompt template by removing unnecessary context instructions. Improve function documentation for clarity. Add region selection handling outside ofellama-streamcall.
- Added
ellama-writecommand. - Added
ellama-proofreadcommand. - Added global context management, including functions to reset context.
- Add function
ellama-make-semantic-similar-p-with-contextthat return test function for checking if two provided texts are meaning the same in provided context. It can be useful for creating semantically uniq lists of strings.
- Refactor file name fixing logic. Change the regular expression for handling forbidden filename characters to improve efficiency.
- Fix adding buffer to context.
- Fixed file name generation for all operating systems.
- Fix disable paragraphs filling.
- Add
ellama-define-wordcommand to transient menu. - Add
ellama-generate-name-by-reasoning-llmfuntion to use
r1 distilled models for naming new sessions.
- Add missing requires for integration tests.
- Add function
ellama-semantic-similar-p. It can be useful for creating lists without duplicates by meaning. - Add integration tests.
- Fix defcustom validation. Remove unnecessary quote.
- Add string list extraction functions. Can be useful for creating LLM workflows.
- Refactor markdown to org translation.
- Fix bug when transformations was applied inside code blocks.
- Fix inline latex translation during markdown to org transformations.
- Add support for extra information in ellama session.
- Add command
ellama-chat-send-last-messageto compose and modify messages within the chat buffer and send them directly from there. - Add
ellama-chat-display-action-functionandellama-instant-display-action-functioncustom variables to customize display buffers behaviour.
- Provide code review in chat session.
- Improve code review prompt template.
- Add change command to transient menu.
- Fixed transient dependency version.
- Refined the code for lazy loading some dependencies.
- Add coding provider customization option.
- Fix documentation.
- Improve translation template.
- Improve commit message template.
- Add separated summarization provider customization option.
- Improve summarization prompt template.
- Add problem solving chains to transient menu.
- Fix bug when user can’t create new session with universal prefix argument.
- Add transient menu.
- Add interactive template modification for ellama-improve-* functions with universal prefix argument.
- Add ability to use sessions in other elisp packages.
- Fix ellama providers validation.
- Fix llm provider custom variables types.
- Fix commit message generation for partial commits.
- Fix issue when current window was changed after calling
ellama-generate-commit-message. - Add
ellama-generate-commit-messageto keymap.
- Allow ollama-binary to accept the executable’s base name.
- Add commit message generation.
- Add link to quoted content in a separate buffer.
- Prevent unnecessary line breaks at the end of generated text.
- Improve code templates and auto-naming.
- Fix autoscrolling for editing commands.
- Inability to use closures on stream done is fixed.
- Add function
ellama-context-add-textfor non-intercative usage.
- Refactor markdown to org conversion code. Now all transformations will be applied only outside of code blocks.
- Fix bug when translation from markdown to org syntax breaks python code blocks.
- Add
ellama-solve-domain-specific-problemcommand. It leverages the popular “act like a professional” prompt engineering method, enhanced by an automated planning step.
- Add
ellama-solve-reasoning-problemcommand that implements Absctraction of Thought technique. It uses a chain of multiple messages to LLM and help it to provide much better answers on reasoning problems. Even small LLMs like phi3-mini provides much better results on reasoning tasks using AoT.
- Transform org quote content to avoid rendering issues.
- Add file quote context elements.
- Add info node quote context elements.
- Copy context from previous session on creating new session. This is useful
when you create new session by calling
ellama-ask-aboutwith prefix argument.
- Add webpage quote context elements.
- Improve code blocks translation from markdown to org.
- Establish a fresh chat session whenever the
ellama-chatfunction is invoked with a provider different from the one currently in use.
- Improve code blocks translation from markdown to org.
- Support summarize shr url at point (eww and elfeed).
- Add ellama-chain function for chaining multiple calls to LLMs.
- Allow summarizing urls withoud doctype tag.
- Summarize url at point.
- Add summarize killring command.
- Improve context management. Make it extendable.
- Don’t insert blank line on code change actions.
- Simplify switching between org and markdown.
- Construct a local list instead of pushin to global one.
- Remove
dashdependency. - Remove function
ellama--fill-string. - Rewrite function
ellama--fill-long-linesto usefill-region. - Use
thread-lastinstead of->>fromdash.
- Fix context for chat translation.
- Refactor translations.
- Add command for current buffer translation.
- Add chat translation.
- Fix some bad markdown to org translations.
- Fix interactive local model selection for emacs 28.
- Add provider to
ellama-chatarguments.
- Improve working with context:
- Fix some
org-modelinks. - Add command for adding info nodes into context.
- Fix keybindings documentation.
- Fix some
- Fix keybindings. Keymap prefix now not set by default to prevent usage of reserved for end user customisation keys.
- Fix non-chat commands.
- Fix chat on model switching.
- Add naming scheme user option.
- Add context management.
- Apply markdown-to-org filter consistently.
- Eliminate eval call.
- Make ellama-request-mode for cancel active requests.
- Avoid advising global functions. Use minor modes instead.
- Add sessions auto save. If not set will not use named files for new sessions. Enabled by default.
ellama-major-modeused instead ofellama-instant-modeand used not only for ellama instant buffers, but also for ellama chat buffers.
- Replace / with _ in new note filenames to prevent errors.
- Improve markdown to org conversion.
- Move readme from markdown to org.
- Switch from markdown to org-mode.
- Fix bug in session management on buffer kill.
- Decrease pressure to garbage collector during text generation.
- Implement session management.
- Fix typo in predefined prompts.
- Add ellama-nick-prefix custom variable.
- Add llm name to generated ellama name.
- Add ellama-chat-done-callback.
- Support interactive switch models on remote host.
- Support cancellation.
- Make default prompt templates customizable.
- Use more meaningful buffer names.
- Eliminate aliases.
- Extract ellama-chat-done to separate function.
- Use custom-set-default in set function for custom variables.
- Add option to customize paragraphs filling behaviour.
- Fix compilation
- Add customization group.
- Call ellama-setup-keymap on prefix change.
- Call fill-region only for non-programming modes.
- Improve lines wrapping.
- Simplify scroll logic.
- Fix code trimming.
- Refactoring. Eliminate duplicated code.
- Fix minor bugs with error handling.
- Fix ellama-render interactive spec.
- Fix scrolling during generation.
- Add auto scrolling for all commands.
- Add auto scrolling. Disabled by default.
- Fix adding and completing code. Do it inline instead of end of buffer.
- Add interactive provider selection.
- Change keymap prefix to prevent default binding overwriting.
- Minor fixes in custom variables.
- Add keymap.
- Move to GNU ELPA.