Skip to content

Move agent chat Show settings from per-pane to per-machine#293

Merged
mattleaverton merged 23 commits intomainfrom
fix/agent-chat-per-machine-settings
Apr 10, 2026
Merged

Move agent chat Show settings from per-pane to per-machine#293
mattleaverton merged 23 commits intomainfrom
fix/agent-chat-per-machine-settings

Conversation

@danshapiro
Copy link
Copy Markdown
Owner

Summary

  • Move showThinking, showTools, and showTimecodes settings from per-pane storage (AgentChatPaneContent) to per-machine browser-local storage (LocalSettings.agentChat), with all three defaulting to off (false)
  • Add migration path for existing users: legacy per-pane values are detected and written to browser preferences on load
  • Add Workspace Settings UI toggles in a new "Agent chat" section

Commits

  1. feat: move agent chat Show settings from per-pane to per-machine browser state — Core migration: types, persistence, UI, component defaults, unit tests
  2. fix: update e2e tests and CollapsedTurn defaults for per-machine show settings — First fresheyes review fixes
  3. fix: add legacy display settings migration and fix ToolStrip JSDoc — Second fresheyes review: legacy migration, stale comment fix
  4. test: add agent-chat display settings coverage — 9 SettingsView tests + 4 browser-preferences round-trip tests

Test plan

  • 3234 tests pass across 314 files (full suite green)
  • TypeScript typecheck clean
  • New coverage: SettingsView.agent-chat.test.tsx (9 tests), browserPreferencesPersistence.test.ts (+4 tests), panesPersistence.test.ts (+4 migration tests)

Dan Shapiro added 23 commits March 31, 2026 14:38
Priority 3: Integration test for rendering coalesced tool messages
Priority 4: Edge case tests (empty content, thinking block, session not found)
Priority 5: Invariant tests (message order, model preserved, status updated)
R1 (critical): Add main(argv) function and if __name__ block to tool_coalesce.py
- Script can now be run standalone with --help and other CLI args
- Follows same pattern as smoke_freshell.py

R2 (major): Extend test 4.4 to verify coalescing with malformed lines
- Add new test 'coalesces tool messages even when malformed lines are interspersed'
- Verifies that tool-only assistant messages are still coalesced correctly
  when malformed JSON lines appear between them
Revert src/components/TerminalView.tsx to match main branch.
The handleImagePaste changes (17 lines) were from an unrelated
PR that was merged into this branch accidentally.
…ser state

Show thinking, Show tools, and Show timecodes were stored per-pane in
AgentChatPaneContent. They now live in LocalSettings (browser-local
localStorage), shared across all agent chat panes and persisted across
page loads. All three default to off (false).
… settings

E2e tests now use preloadedState with showTools: true where expanded
tools are expected. CollapsedTurn defaults updated to false. Comments
updated to reflect new per-machine defaults.
Migrate showThinking/showTools/showTimecodes from persisted agent-chat
pane content into browser-local preferences on module load, so existing
users keep their settings after the per-pane → per-machine move.
- SettingsView.agent-chat.test.tsx: 9 tests for Workspace toggles
  (defaults, preloaded state, toggle on/off, local-only persistence)
- browserPreferencesPersistence.test.ts: 4 round-trip tests for
  agentChat.showThinking/showTools/showTimecodes localStorage persistence
@mattleaverton mattleaverton merged commit 5ce79c8 into main Apr 10, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants