Commit 2dc443f

mo khan <mo@mokhan.ca>
2026-01-15 01:44:00
feat: render context in markdown
1 parent fdfae35
Changed files (3)
lib/elelem/agent.rb
@@ -70,7 +70,7 @@ module Elelem
         conversation.clear
         terminal.say "  → Conversation cleared"
       when "/context"
-        terminal.say conversation.dump(permissions)
+        terminal.say conversation.dump(permissions), markdown: true
       when "/shell"
         transcript = start_shell
         conversation.add(role: :user, content: transcript) unless transcript.strip.empty?
lib/elelem/conversation.rb
@@ -31,7 +31,9 @@ module Elelem
     end
 
     def dump(permissions)
-      JSON.pretty_generate(history_for(permissions))
+      history_for(permissions).map do |item|
+        "## #{item[:role].to_s.capitalize}\n\n#{item[:content]}"
+      end.join("\n\n---\n\n")
     end
 
     private
spec/elelem/conversation_spec.rb
@@ -175,14 +175,13 @@ RSpec.describe Elelem::Conversation do
   end
 
   describe "#dump" do
-    it "returns JSON representation with mode-specific prompt" do
+    it "returns markdown representation with mode-specific prompt" do
       conversation.add(role: :user, content: "test")
-      json = conversation.dump([:read])
+      result = conversation.dump([:read])
 
-      parsed = JSON.parse(json)
-      expect(parsed).to be_an(Array)
-      expect(parsed.length).to eq(2)
-      expect(parsed[0]["content"]).to include("You may read files on the system")
+      expect(result).to include("## System")
+      expect(result).to include("## User")
+      expect(result).to include("You may read files on the system")
     end
   end
 end