feat: display toggles, smart session resume, fix stale transcript pane #8

Merged
adrianbonpin merged 1 commits from feat/display-preferences into prod 2026-10-03 21:22:06 +00:00
Owner

1. Two new display preferences

Preference Default Effect
Show Tool Calls on Lists the tools Lam called under each answer
Show Reasoning on Includes the model's thinking trace

Both default on, so nothing changes on upgrade — flip them in preferences to shorten replies.

2. Bug fix: new chat left the old conversation in the right pane

The pane rendered the highlighted row's transcript. Vicinae exposes no way to set the selected row (GenericListView resets or preserves selection on its own terms), so when ⌘N prepended a new chat the selection could stay where it was and the pane kept rendering the previous conversation.

The pane now derives from the active session rather than the row, so it follows the chat the user is actually in regardless of what is selected. Switching conversations stays explicit — Return on an empty search bar, or the action panel.

Side benefit: mount now reads only session summaries, not every transcript. That removes the per-mount cost of loading every conversation body.

3. Smart session resume

Start New Chat After (default 1 hour) starts a fresh chat when the command opens and the last conversation is older than the window. Never restores the always-reopen behaviour for people who want to stay in their last chat.

Old conversations are never deleted — they just sort into their recency section in the sidebar.

Also

The setup screen lists all three new values, so the current configuration is visible without opening preferences.

Verification

  • Setup screen renders Show Tool Calls: Shown, Show Reasoning: Shown, Start New Chat After: After 1 hour
  • tsc --noEmit clean, eslint . clean
  • 127 tests passing across 10 files (was 113 across 9) — added preferences.test.ts covering timeout parsing, defaults, and the display toggles
  • vici build succeeds
## 1. Two new display preferences | Preference | Default | Effect | | --- | --- | --- | | **Show Tool Calls** | on | Lists the tools Lam called under each answer | | **Show Reasoning** | on | Includes the model's thinking trace | Both default **on**, so nothing changes on upgrade — flip them in preferences to shorten replies. ## 2. Bug fix: new chat left the old conversation in the right pane The pane rendered the **highlighted row's** transcript. Vicinae exposes no way to set the selected row (`GenericListView` resets or preserves selection on its own terms), so when ⌘N prepended a new chat the selection could stay where it was and the pane kept rendering the previous conversation. The pane now derives from the **active session** rather than the row, so it follows the chat the user is actually in regardless of what is selected. Switching conversations stays explicit — Return on an empty search bar, or the action panel. Side benefit: mount now reads only session summaries, not every transcript. That removes the per-mount cost of loading every conversation body. ## 3. Smart session resume `Start New Chat After` (default **1 hour**) starts a fresh chat when the command opens and the last conversation is older than the window. `Never` restores the always-reopen behaviour for people who want to stay in their last chat. Old conversations are **never deleted** — they just sort into their recency section in the sidebar. ## Also The setup screen lists all three new values, so the current configuration is visible without opening preferences. ## Verification - Setup screen renders `Show Tool Calls: Shown`, `Show Reasoning: Shown`, `Start New Chat After: After 1 hour` - `tsc --noEmit` clean, `eslint .` clean - **127 tests passing** across 10 files (was 113 across 9) — added `preferences.test.ts` covering timeout parsing, defaults, and the display toggles - `vici build` succeeds
adrianbonpin added 1 commit 2026-10-03 21:21:52 +00:00
Three things.

1. Two new display preferences. "Show Tool Calls" and "Show Reasoning"
   control whether each answer lists the tools Lam called and the model's
   thinking trace. Both default on, so nothing changes on upgrade.

2. Fix: starting a new chat left the previous conversation in the right
   pane. The pane rendered the highlighted row's transcript, and Vicinae
   exposes no way to set the selected row, so the selection could stay put
   when cmd+N prepended a new chat. The pane now derives from the active
   session rather than the row, so it follows the chat the user is
   actually in whatever the selection happens to be. A side benefit is
   that mount now reads only session summaries, not every transcript.

3. "Start New Chat After" (default 1 hour) starts a fresh chat when the
   command opens and the last conversation is older than the window.
   "Never" restores the old always-reopen behaviour, for people who want
   to stay in their last chat. Old conversations are never deleted; they
   just sort into their recency section.

The setup screen lists all three so the current values are visible without
opening preferences.

Verified: setup renders "Show Tool Calls: Shown", "Show Reasoning: Shown",
"Start New Chat After: After 1 hour" with 17 models reachable. typecheck,
eslint, 127 tests and vici build all pass.
adrianbonpin merged commit ee96f1ee61 into prod 2026-10-03 21:22:06 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: adrianbonpin/lam-agent-vicinae#8