- Ensured that the buffer
ellama--context-buffer
is 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-show
in 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--scroll
to accept an optional POINT argument, allowing the function to go to that specific point before scrolling. Updated the callerellama-update-buffer
to pass the new point. - Refactored the
ellama-preview-context-mode
by 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-kill
to send the current buffer to a new chat session and then kill it. Updated the keybinding inellama-blueprint-mode-map
to use this new function instead of the old one. - Added a new function
ellama-kill-current-buffer
and updated the keymap inellama-blueprint-mode-map
to 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-ollama
dependency are loaded.
- Fixed the auto-scroll logic in
ellama.el
to ensure it correctly sets and resetsstop-scroll
based on cursor position changes. - Added a
redisplay
call at the end ofellama--scroll
to 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-mode
to 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-mode
and its global versions. - Session renaming functionality improvements.
- Improved session deletion.
- Renamed
ellama-session-remove
toellama-session-delete
. - Removed
ellama-long-lines-length
customization 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
ellama
is usable with zero configuration.
- Fix org to markdown conversion with broken links.
- Add
ellama-context-add-directory
command.
- 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-chat
andellama-instant
. - Fix think tag handling for some models.
- Provide buffer to all
kill-buffer
calls. Tried to fix an unreproducible in my environment bug.
- Fix cancel current stream by pressing
C-g
in buffer with active streaming.
- Improve the accuracy and reliability of the
ellama-semantic-similar-p
function.
- 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-stream
call.
- Added
ellama-write
command. - Added
ellama-proofread
command. - Added global context management, including functions to reset context.
- Add function
ellama-make-semantic-similar-p-with-context
that 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-word
command to transient menu. - Add
ellama-generate-name-by-reasoning-llm
funtion 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-message
to compose and modify messages within the chat buffer and send them directly from there. - Add
ellama-chat-display-action-function
andellama-instant-display-action-function
custom 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-message
to 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-text
for 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-problem
command. It leverages the popular “act like a professional” prompt engineering method, enhanced by an automated planning step.
- Add
ellama-solve-reasoning-problem
command 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-about
with prefix argument.
- Add webpage quote context elements.
- Improve code blocks translation from markdown to org.
- Establish a fresh chat session whenever the
ellama-chat
function 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
dash
dependency. - Remove function
ellama--fill-string
. - Rewrite function
ellama--fill-long-lines
to usefill-region
. - Use
thread-last
instead 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-chat
arguments.
- Improve working with context:
- Fix some
org-mode
links. - 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-mode
used instead ofellama-instant-mode
and 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.