branch: externals/ellama
commit 96727b91652d6becaf2ace469e55608e5428a98d
Merge: d4927093e2 338b1234e1
Author: Sergey Kostyaev <s-kosty...@users.noreply.github.com>
Commit: GitHub <nore...@github.com>

    Merge pull request #186 from s-kostyaev/add-session-extra
    
    Add support for extra information in ellama session
---
 ellama.el | 16 ++++++++++++----
 1 file changed, 12 insertions(+), 4 deletions(-)

diff --git a/ellama.el b/ellama.el
index bb4ff801ae..827b1f49f4 100644
--- a/ellama.el
+++ b/ellama.el
@@ -581,8 +581,10 @@ FILE is a path to file contains string representation of 
this session, string.
 
 PROMPT is a variable contains last prompt in this session.
 
-CONTEXT contains context for next request."
-  id provider file prompt context)
+CONTEXT contains context for next request.
+
+EXTRA contains additional information."
+  id provider file prompt context extra)
 
 (defun ellama-get-session-buffer (id)
   "Return ellama session buffer by provided ID."
@@ -799,14 +801,20 @@ If EPHEMERAL non nil new session will not be associated 
with any file."
        (goto-char (point-max))
        (insert (ellama-get-nick-prefix-for-mode) " " ellama-user-nick ":\n")
        (save-buffer))
-      (let ((session (read session-buffer)))
+      (let* ((session (read session-buffer))
+            ;; workaround for old sessions
+            (offset (cl-struct-slot-offset 'ellama-session 'extra))
+            (extra (when (> (length session)
+                            offset)
+                     (aref session offset))))
        (setq ellama--current-session
              (make-ellama-session
               :id (ellama-session-id session)
               :provider (ellama-session-provider session)
               :file (ellama-session-file session)
               :prompt (ellama-session-prompt session)
-              :context ellama--new-session-context)))
+              :context ellama--new-session-context
+              :extra extra)))
       (setq ellama--new-session-context nil)
       (setq ellama--current-session-id (ellama-session-id 
ellama--current-session))
       (puthash (ellama-session-id ellama--current-session)

Reply via email to