feat(settings): reorganize settings and add chat block visibility#614
feat(settings): reorganize settings and add chat block visibility#614pascalandr wants to merge 5 commits into
Conversation
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.
|
PR builds are available as GitHub Actions artifacts: https://github.com/NeuralNomadsAI/CodeNomad/actions/runs/29740773057 Artifacts expire in 7 days.
|
1 similar comment
|
PR builds are available as GitHub Actions artifacts: https://github.com/NeuralNomadsAI/CodeNomad/actions/runs/29740773057 Artifacts expire in 7 days.
|
|
PR builds are available as GitHub Actions artifacts: https://github.com/NeuralNomadsAI/CodeNomad/actions/runs/29763710513 Artifacts expire in 7 days.
|
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
left a comment
There was a problem hiding this comment.
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
left a comment
There was a problem hiding this comment.
Gatekeeper round 1: 4 deterministic findings identified and fixed (preset migration, hidden-tool message actions, token-metric accessibility, and reused collapsed state).
pascalandr
left a comment
There was a problem hiding this comment.
Gatekeeper round 3: 2 deterministic findings identified and fixed (preset-aware command state and localized tri-state command descriptions).
pascalandr
left a comment
There was a problem hiding this comment.
Gatekeeper round 2: 2 deterministic findings identified and fixed (active hidden-tool actions and command synchronization for hidden tool output).
pascalandr
left a comment
There was a problem hiding this comment.
Gatekeeper round 4: zero findings after the hidden-tool empty-row fix.
pascalandr
left a comment
There was a problem hiding this comment.
Gatekeeper round 5: zero findings after the final hidden-message container fix.
|
PR builds are available as GitHub Actions artifacts: https://github.com/NeuralNomadsAI/CodeNomad/actions/runs/30018367065 Artifacts expire in 7 days.
|
pascalandr
left a comment
There was a problem hiding this comment.
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
left a comment
There was a problem hiding this comment.
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
left a comment
There was a problem hiding this comment.
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
left a comment
There was a problem hiding this comment.
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
left a comment
There was a problem hiding this comment.
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
left a comment
There was a problem hiding this comment.
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.
|
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. |
|
@shantur LGTM |
Summary
Pre-existing fixes included
These Provider fixes apply to both entry points because Settings and the left-panel dialog use the same
ProviderManagerModalcomponent.Validation
npm run typechecknpm run build:uigit diff --checkCloses #609