v0.0.87
This release marks a significant evolution in ollama_chat, introducing robust
session management, a deeper RAG pipeline, and a suite of powerful new tools
for developers.
✨ New Features
🗄️ Advanced Session & State Management
- Sequel-Backed Storage: Transitioned to a professional database for
persistent storage of sessions, model options, favourites, and prompts. - Exclusive Locking: Implemented Vim-style session locking
(locked_by_pid) to prevent concurrent access and data corruption. - Enhanced Workflow:
- Added
/session previousfor rapid context switching. - Added
/session duplicatefor branching experiments. - Introduced directory-aware session retrieval via
working_directory. - Added the
-nstartup flag to jump straight into a new session.
- Added
🎭 Personae & Prompt Engineering
- Database Registry: System and user prompts are now managed via a database
registry rather than static files. - Character Import: Support for importing high-fidelity character profiles
from.jsonand.pngfiles (extracting data fromtEXtchunks). - Dynamic Profiles: Added variable interpolation (e.g.,
{{user}}) to
allow personae to adapt to the current user. - Management Suite: New
/charactercommand and a full set ofadd,
edit,delete,duplicate, andexportsubcommands for prompts and
personae.
📚 RAG & Document Intelligence
- Multi-Collection Support: Now supports multiple document collections. You
can specify which collection to query during retrieval. - Document Tagging: Introduced tagging for embeddings and retrieval,
including a new-tflag for the/inputcommand. - Lifecycle Management: Added the ability to update specific collections
and re-embed modified sources without wiping the entire store. - Documentrix Upgrade: Fully integrated
documentrixv0.4.0.
🛠️ Expanded Toolset
EvalRuby: Execute Ruby code in a secure, sandboxed Docker container.GenerateImage: Native integration with ComfyUI for AI image generation.GetGHR: Fetch GitHub release information directly from the chat.ComputeBMI&RollDice: Added utility tools for health calculations
and tabletop gaming.- Destructive Ops:
DeleteFileandMoveFilenow include automatic safety
backups. - Interactive Patching:
PatchFilehas been overhauled to use interactive
diff sessions (e.g.,vimdiff).
🎨 User Experience (UX)
- Reline Integration: Switched from
ReadlinetoRelinefor superior
history management and input prefilling. - Real-time Feedback: Added a streaming
infobarto provide visual
progress for long-running tasks like session summarization. - Visual Cues: Integrated a set of status emojis (
🔓,🔐,🟢,⚫️)
for clearer state and session selection. - Clipboard Power: Implemented bidirectional clipboard editing for
/copy
and/paste. - Pager Control: Added a
-pflag to/lastto bypass the pager for quick
skimming.
⚙️ Refactorings & Hardening
🛡️ Security & Stability
- Shell Injection Protection: Hardened all tool executions by switching to
array-basedsystemcalls and implementingShellwords.escape. - Symlink Protection: Enhanced
PathValidatorto prevent directory
traversal attacks usingrealpath. - Storage Migration: Moved the documents database to
OC::XDG_STATE_HOME
for better compliance with XDG standards.
🏗️ Core Improvements
- Unified I/O: Refactored
MessageListto support both JSON and JSONL
formats via a newJSONJSONLIOutility. - Stateful Selection: Refactored the
Chooserinto a stateful mixin for
more consistent UI behavior. - CI Update: Switched CI images to
debian trixieto ensure stability
across Ruby 3.2 through 4.0.