Skip to content

Commit 59caf2e

Browse files
idoubiclaude
andcommitted
feat: turn completion verbs, brief mode, UI polish
- Show "Baked for 5s" / "Churned for 12s" when query completes - Brief mode toggle via /brief - Turn completion verbs from Claude Code (Baked, Brewed, Cogitated, etc.) - 66 slash commands, 6600+ lines Go Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 3e60476 commit 59caf2e

2 files changed

Lines changed: 21 additions & 0 deletions

File tree

internal/theme/spinners.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,17 @@ func RandomVerb() string {
7171
return SpinnerVerbs[rng.Intn(len(SpinnerVerbs))]
7272
}
7373

74+
// TurnCompletionVerbs are past-tense verbs shown when a query completes
75+
var TurnCompletionVerbs = []string{
76+
"Baked", "Brewed", "Churned", "Cogitated", "Cooked",
77+
"Crunched", "Worked", "Crafted", "Forged", "Polished",
78+
}
79+
80+
// RandomCompletionVerb returns a random completion verb
81+
func RandomCompletionVerb() string {
82+
return TurnCompletionVerbs[rng.Intn(len(TurnCompletionVerbs))]
83+
}
84+
7485
// ToolVerb returns an appropriate verb for a specific tool
7586
func ToolVerb(toolName string) string {
7687
switch toolName {

internal/tui/model.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -427,6 +427,16 @@ func (m *Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
427427
m.streamingText.Reset()
428428
m.activeTools = nil
429429
m.thinkingText = ""
430+
// Show completion message with duration
431+
if m.queryStartTime != (time.Time{}) {
432+
elapsed := time.Since(m.queryStartTime)
433+
verb := theme.RandomCompletionVerb()
434+
m.blocks = append(m.blocks, DisplayBlock{
435+
Type: "system",
436+
Content: fmt.Sprintf("%s for %s", verb, formatDuration(elapsed)),
437+
Timestamp: time.Now(),
438+
})
439+
}
430440
m.refreshViewport()
431441
m.input.Focus()
432442
// Ring terminal bell to notify user

0 commit comments

Comments
 (0)