From cd0818f1c9daef441496813bee13e2beadcadbcb Mon Sep 17 00:00:00 2001 From: Levi Neely Date: Sat, 11 Apr 2026 17:37:12 +0200 Subject: [PATCH] handle user event in formatEvent; remove manual appendChat for prompt MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The 9p prompt handler no longer directly appends "user: ..." to the chat log — that now arrives via the "user" event emitted by core's Submit, which also fires for FIFO-drained queued prompts. Co-Authored-By: Claude Sonnet 4.6 --- internal/p9/server.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/internal/p9/server.go b/internal/p9/server.go index 892944f..3cce539 100644 --- a/internal/p9/server.go +++ b/internal/p9/server.go @@ -684,7 +684,6 @@ func (s *Server) handleWrite(path, input string) { sess.appendChat([]byte("user (interrupt): " + input + "\n")) return } - sess.appendChat([]byte("user: " + input + "\n")) // Clear reply before submission — documented side-effect. sess.mu.Lock() sess.reply = nil @@ -911,6 +910,8 @@ func (s *Server) killSession(id string) { // what appears in the TUI chat pane. func formatEvent(ev agent.Event) []byte { switch ev.Role { + case "user": + return []byte("user: " + ev.Content + "\n") case "assistant": return []byte(ev.Content) case "call":