Skip to content

feat(settings): reorganize settings and add chat block visibility#614

Open
pascalandr wants to merge 5 commits into
NeuralNomadsAI:devfrom
pascalandr:fix/settings-ui-repartition
Open

feat(settings): reorganize settings and add chat block visibility#614
pascalandr wants to merge 5 commits into
NeuralNomadsAI:devfrom
pascalandr:fix/settings-ui-repartition

Conversation

@pascalandr

@pascalandr pascalandr commented Jul 20, 2026

Copy link
Copy Markdown
Contributor

Summary

  • reorganize Settings into more sections : General, Chat, Notifications, Speech, Remote Access, OpenCode, Providers, Sidecars, Config files, Advanced, and Info
  • move environment, session cleanup, sub-agent idle markers, and Tauri transport controls in Advanced
  • add five independently configurable items to the Chat block list: Thinking, Tool output, Diagnostics, Tool inputs, and Token usage
  • let every Chat block item be expanded, collapsed, or hidden; hidden blocks are no longer rendered, while active permission and question requests remain visible
  • preserve Chat presets and migrate their existing visibility choices to the new three-state controls
  • embed the shared Provider manager directly in Settings while retaining the same dialog from the model selector in the left panel

Pre-existing fixes included

  • harden the shared Provider manager against stale async loads and auth operations when instances or clients change
  • clean up OAuth callbacks and popups, preserve failed disconnect state, and prevent conflicting auth/disconnect actions
  • improve Provider workflow accessibility with focus management and live status/error announcements

These Provider fixes apply to both entry points because Settings and the left-panel dialog use the same ProviderManagerModal component.

Validation

  • npm run typecheck
  • npm run build:ui
  • 144/144 runnable UI tests
  • git diff --check
  • Gatekeeper round 11: zero findings after independent full-diff, Provider, and accessibility reviews

Closes #609

Replace the broad settings groups with General, Chat, Notifications, Voice, Connections, Runtime, Advanced, and About so preferences are easier to find. Keep general interaction controls in General, speech input in Voice, and desktop transport configuration in Advanced.

Reuse shared behavior rows, locale selection, and remote-server workflows while preserving existing preference keys and dirty-state guards. Provider management now identifies the exact ready instance, and remote-server removal controls expose server-specific accessible names.

Validated with the UI typecheck, production UI build, diff checks, final review, and a Tauri release build without bundling.
Let the four chat presets control thinking visibility, timeline tool calls, diagnostics expansion, tool-input visibility, and usage metrics alongside the existing tool expansion defaults. Balanced retains the current default behavior while Minimal, Detailed, and Everything provide progressively richer transcript detail.

Move diff layout and long-reply follow behavior to General, remove the redundant outer Chat card, and localize the visible preset heading and description.

Validated with the UI typecheck, production UI build, diff checks, focused review, and a Tauri release build without bundling.
@github-actions

Copy link
Copy Markdown

PR builds are available as GitHub Actions artifacts:

https://github.com/NeuralNomadsAI/CodeNomad/actions/runs/29740773057

Artifacts expire in 7 days.
Artifacts:

  • pr-614-0b0b4e68e3eb8670c66e3f1d772c1da7ba2d7be5-electron-macos
  • pr-614-0b0b4e68e3eb8670c66e3f1d772c1da7ba2d7be5-tauri-macos
  • pr-614-0b0b4e68e3eb8670c66e3f1d772c1da7ba2d7be5-tauri-windows
  • pr-614-0b0b4e68e3eb8670c66e3f1d772c1da7ba2d7be5-tauri-macos-arm64
  • pr-614-0b0b4e68e3eb8670c66e3f1d772c1da7ba2d7be5-tauri-linux
  • pr-614-0b0b4e68e3eb8670c66e3f1d772c1da7ba2d7be5-electron-linux
  • pr-614-0b0b4e68e3eb8670c66e3f1d772c1da7ba2d7be5-electron-windows

1 similar comment
@github-actions

Copy link
Copy Markdown

PR builds are available as GitHub Actions artifacts:

https://github.com/NeuralNomadsAI/CodeNomad/actions/runs/29740773057

Artifacts expire in 7 days.
Artifacts:

  • pr-614-0b0b4e68e3eb8670c66e3f1d772c1da7ba2d7be5-electron-macos
  • pr-614-0b0b4e68e3eb8670c66e3f1d772c1da7ba2d7be5-tauri-macos
  • pr-614-0b0b4e68e3eb8670c66e3f1d772c1da7ba2d7be5-tauri-windows
  • pr-614-0b0b4e68e3eb8670c66e3f1d772c1da7ba2d7be5-tauri-macos-arm64
  • pr-614-0b0b4e68e3eb8670c66e3f1d772c1da7ba2d7be5-tauri-linux
  • pr-614-0b0b4e68e3eb8670c66e3f1d772c1da7ba2d7be5-electron-linux
  • pr-614-0b0b4e68e3eb8670c66e3f1d772c1da7ba2d7be5-electron-windows

@github-actions

Copy link
Copy Markdown

PR builds are available as GitHub Actions artifacts:

https://github.com/NeuralNomadsAI/CodeNomad/actions/runs/29763710513

Artifacts expire in 7 days.
Artifacts:

  • pr-614-0b0b4e68e3eb8670c66e3f1d772c1da7ba2d7be5-tauri-macos
  • pr-614-0b0b4e68e3eb8670c66e3f1d772c1da7ba2d7be5-tauri-windows
  • pr-614-0b0b4e68e3eb8670c66e3f1d772c1da7ba2d7be5-tauri-macos-arm64
  • pr-614-0b0b4e68e3eb8670c66e3f1d772c1da7ba2d7be5-tauri-linux
  • pr-614-0b0b4e68e3eb8670c66e3f1d772c1da7ba2d7be5-electron-macos
  • pr-614-0b0b4e68e3eb8670c66e3f1d772c1da7ba2d7be5-electron-linux
  • pr-614-0b0b4e68e3eb8670c66e3f1d772c1da7ba2d7be5-electron-windows

Return independent controls for thinking visibility, timeline tools, diagnostics expansion, tool input visibility, and usage metrics while keeping the broader transcript presets as convenient defaults. Custom combinations remain available and continue to mark the active preset as custom.

Restore the Chat section card used by the other settings groups and remove only the redundant expansion-table frame. Validate with the workspace typecheck, UI production build, 144 runnable UI tests, gatekeeper review, and a Tauri release build launched on Windows.

@pascalandr pascalandr left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Gatekeeper review after settings restoration: zero findings.

Verified that the five independent Chat detail controls are rendered again, broad presets remain available, custom combinations remain supported, the outer section card is restored, and only the redundant expansion-table frame is removed. Workspace typecheck, UI build, 144 runnable UI tests, and the Windows Tauri release build pass. Manual visual confirmation in the launched Tauri executable remains pending.

Consolidate chat transcript controls into one tri-state visibility list for thinking, tool output, diagnostics, tool inputs, and token metrics. Move timeline tool entries into General settings and preserve preset-aware migration behavior.

Implement true hidden tool rendering while keeping active permission and question requests visible. Add a compact token summary that can expand to reasoning and cache details, with localized accessible labels.

Validated with workspace typechecks, 144 UI behavior tests, the server config schema test, UI production builds, and a Tauri release build. The existing Windows-only git-worktrees fixture failure remains unrelated.

@pascalandr pascalandr left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Gatekeeper round 1: 4 deterministic findings identified and fixed (preset migration, hidden-tool message actions, token-metric accessibility, and reused collapsed state).

@pascalandr pascalandr left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Gatekeeper round 3: 2 deterministic findings identified and fixed (preset-aware command state and localized tri-state command descriptions).

@pascalandr pascalandr left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Gatekeeper round 2: 2 deterministic findings identified and fixed (active hidden-tool actions and command synchronization for hidden tool output).

@pascalandr pascalandr left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Gatekeeper round 4: zero findings after the hidden-tool empty-row fix.

@pascalandr pascalandr left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Gatekeeper round 5: zero findings after the final hidden-message container fix.

@github-actions

Copy link
Copy Markdown

PR builds are available as GitHub Actions artifacts:

https://github.com/NeuralNomadsAI/CodeNomad/actions/runs/30018367065

Artifacts expire in 7 days.
Artifacts:

  • pr-614-35a0b9eb3934c0fe3580d96fbc37d41d2f024610-tauri-macos
  • pr-614-35a0b9eb3934c0fe3580d96fbc37d41d2f024610-tauri-windows
  • pr-614-35a0b9eb3934c0fe3580d96fbc37d41d2f024610-tauri-macos-arm64
  • pr-614-35a0b9eb3934c0fe3580d96fbc37d41d2f024610-electron-macos
  • pr-614-35a0b9eb3934c0fe3580d96fbc37d41d2f024610-tauri-linux
  • pr-614-35a0b9eb3934c0fe3580d96fbc37d41d2f024610-electron-linux
  • pr-614-35a0b9eb3934c0fe3580d96fbc37d41d2f024610-electron-windows

@pascalandr pascalandr left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Gatekeeper round 6 (local follow-up diff, pending commit): 3 deterministic findings identified: provider state/load races when the active instance changes, embedded OAuth work surviving unmount, and the expanded desktop settings navigation being clipped on short viewports. Corrections are in progress.

@pascalandr pascalandr left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Gatekeeper round 7 (local follow-up diff, pending commit): 3 deterministic findings remain after round 6 fixes: same-ID client replacement can let stale provider work win, a pending OAuth authorize call can resume after close/unmount, and the desktop nav parent still prevents short-viewport scrolling. Corrections are in progress.

@pascalandr pascalandr left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Gatekeeper round 8 (local follow-up diff, pending commit): 3 deterministic findings remain: auth method changes are possible during active OAuth, disconnect can supersede OAuth without disposing it, and the scrollable settings nav can clip focus outlines/create horizontal overflow. Corrections are in progress.

@pascalandr pascalandr left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Gatekeeper round 9 (local follow-up diff, pending commit): 5 deterministic findings remain: disconnect failures hide the error and lock all provider cards; Sidecars form/delete controls lack accessible names; the active desktop settings item lacks aria-current; provider async status/error updates are not announced; and Config files has no accessible section heading when the shared mobile heading is hidden. Corrections are in progress.

@pascalandr pascalandr left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Gatekeeper round 10 (local follow-up diff, pending commit): 2 in-scope accessibility findings remain in Providers: focus is not moved to the OAuth code input when that stage appears, and dynamic unsupported/no-prompt messages are not announced. The Sidecars accessibility item from round 9 was pre-existing and out of scope; those Sidecars edits were reverted.

@pascalandr pascalandr left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Gatekeeper round 11 (local follow-up diff, pending commit): zero findings after independent provider, full-diff, and in-scope accessibility rechecks. Sidecars content is unchanged from 35a0b9e; only its placement in the repartitioned settings navigation remains. Final validation: root typecheck passes, UI production build passes, 144/144 runnable UI tests pass, and git diff --check passes.

@pascalandr

Copy link
Copy Markdown
Contributor Author

Gatekeeper scope clarification: the Provider manager is a shared component used both by the model selector dialog in the left panel and by the new embedded Settings section. Most Provider findings fixed during rounds 6-10 were pre-existing issues in that shared manager (async response/operation invalidation, OAuth cleanup/focus/live announcements, and disconnect failure handling), corrected opportunistically; therefore those fixes apply to both entry points. Settings-specific changes are limited to embedded rendering, its heading/layout, and settings navigation. The pre-existing Sidecars findings were not retained, so Sidecars content remains unchanged.

@pascalandr

Copy link
Copy Markdown
Contributor Author

@shantur LGTM

@pascalandr pascalandr changed the title feat(settings): reorganize preferences by workflow feat(settings): reorganize settings and add chat block visibility Jul 24, 2026
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.

better split and repartition for the settings UI

2 participants