From ec9a918da92d8afbad7fe77f8bc4abbf452fd9e2 Mon Sep 17 00:00:00 2001 From: vikingowl Date: Fri, 3 Apr 2026 19:00:59 +0200 Subject: [PATCH] feat: ctrl+o toggles tool output expand, fix auto default MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - ctrl+o toggles between 10-line truncated and full tool output - Label shows "ctrl+o to expand" (lowercase) - Fixed: auto permission mode now sticks — config default was overriding flag default ("default" → "auto" in config defaults) --- internal/config/defaults.go | 2 +- internal/tui/app.go | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/internal/config/defaults.go b/internal/config/defaults.go index 2ad355a..cf5ae4c 100644 --- a/internal/config/defaults.go +++ b/internal/config/defaults.go @@ -12,7 +12,7 @@ func Defaults() Config { Endpoints: make(map[string]string), }, Permission: PermissionSection{ - Mode: "default", + Mode: "auto", }, Tools: ToolsSection{ BashTimeout: Duration(30 * time.Second), diff --git a/internal/tui/app.go b/internal/tui/app.go index d11dcfb..9826ce4 100644 --- a/internal/tui/app.go +++ b/internal/tui/app.go @@ -55,6 +55,7 @@ type Model struct { input textarea.Model mdRenderer *glamour.TermRenderer + expandOutput bool // ctrl+o toggles expanded tool output cwd string gitBranch string scrollOffset int @@ -199,6 +200,9 @@ func (m Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) { m.scrollOffset = 0 } return m, nil + case "ctrl+o": + m.expandOutput = !m.expandOutput + return m, nil case "pgup", "shift+up": m.scrollOffset += 5 return m, nil @@ -681,11 +685,14 @@ func (m Model) renderMessage(msg chatMessage) []string { case "toolresult": resultLines := strings.Split(msg.content, "\n") maxShow := 10 + if m.expandOutput { + maxShow = len(resultLines) // show all + } for i, line := range resultLines { if i >= maxShow { remaining := len(resultLines) - maxShow lines = append(lines, indent+indent+sHint.Render( - fmt.Sprintf("+%d lines (Ctrl+O to expand)", remaining))) + fmt.Sprintf("+%d lines (ctrl+o to expand)", remaining))) break } // Diff coloring for edit results