Skip to content

V2(ui): progressively harmonize the CodeNomad interface - #667

Open
pascalandr wants to merge 11 commits into
DEV-v2from
feat/ui-harmonization
Open

V2(ui): progressively harmonize the CodeNomad interface#667
pascalandr wants to merge 11 commits into
DEV-v2from
feat/ui-harmonization

Conversation

@pascalandr

@pascalandr pascalandr commented Aug 29, 2026

Copy link
Copy Markdown
Contributor

Goal

Progressively harmonize CodeNomad toward the serenity, consistency, and clarity without removing its multi-agent workstation identity or operational visibility.

This is intentionally one long-lived draft PR. Work lands as small reviewable commits, with visual choices validated before each harmonization phase.

Checkpoint 1: color schemes

  • Adds independent System, Light, CodeNomad Classic, Basalt, Fjord, Lichen, Velvet, Ember, and Custom schemes.
  • Preserves the current effective dark theme exactly through CodeNomad Classic.
  • Exposes ten editable Custom colors: three surfaces, border, primary and muted text, accent, success, warning, and error.
  • Derives hover, focus, selection, attachment, badge, border, and status treatments from those core colors.
  • Applies the selected scheme before app rendering and keeps SUID synchronized.
  • Persists the active scheme and Custom draft separately in server-owned UI preferences.
  • Validates strict hex input and WCAG-oriented text/accent/status contrast before saving.
  • Localizes the complete settings UI in all supported locales.

Planned checkpoints

  • Establish the visual grammar: typography, spacing, density, geometry, borders, focus, hover, disabled states, and icon rules.
  • Harmonize shared controls: buttons, fields, selectors, menus, popovers, tabs, and dialogs.
  • Harmonize workspace chrome: workspace bar, session sidebar, panel shells, and inspector.
  • Harmonize conversation UI: message rhythm, tool activity trace, timeline rail, permissions, and composer.
  • Finish secondary screens, responsive behavior, startup theme parity, and accessibility review.

Validation

  • npm run typecheck --workspace @codenomad/ui
  • npm run build --workspace @codenomad/ui
  • node --test packages/ui/src/lib/theme-scheme.test.ts
  • git diff --check
  • Browser renders for System, Fjord, Classic, Custom, invalid input, and responsive settings layout

Introduce independent System, Light, CodeNomad Classic, Basalt, Fjord, Lichen, Velvet, Ember, and Custom schemes backed by the existing server-owned UI preferences.

Apply the selected palette before rendering and propagate ten validated core colors through semantic CSS variables and SUID. Preserve the exact current dark appearance through CodeNomad Classic, keep a custom draft across preset switches, and serialize rapid persistence writes while retaining instant local feedback.

Add a square, responsive settings selector and ten-color custom editor in all supported locales. Reject malformed colors and palettes that fail text, accent, or status contrast requirements.

Validated with the UI typecheck, production UI build, focused node tests, diff checks, and browser renders for System, Fjord, Classic, and Custom states.
@pascalandr pascalandr changed the title feat(ui): progressively harmonize the CodeNomad interface V2(ui): progressively harmonize the CodeNomad interface Aug 29, 2026
@pascalandr
pascalandr marked this pull request as ready for review August 31, 2026 00:25
@github-actions

Copy link
Copy Markdown

PR builds are available as GitHub Actions artifacts:

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

Artifacts expire in 7 days.
Artifacts:

  • pr-667-c0158092c79b36daaf0b95dd19454562425aaffa-tauri-macos
  • pr-667-c0158092c79b36daaf0b95dd19454562425aaffa-tauri-windows
  • pr-667-c0158092c79b36daaf0b95dd19454562425aaffa-electron-macos
  • pr-667-c0158092c79b36daaf0b95dd19454562425aaffa-tauri-linux
  • pr-667-c0158092c79b36daaf0b95dd19454562425aaffa-electron-linux
  • pr-667-c0158092c79b36daaf0b95dd19454562425aaffa-tauri-macos-arm64
  • pr-667-c0158092c79b36daaf0b95dd19454562425aaffa-electron-windows

Unify tabs, selectors, panels, messages, tool output, timeline, notification history, and settings around the shared square-corner token and window utility layers. Keep responsive layouts usable and expose toggle, focus, timestamp, and resize state consistently to assistive technology.

Add the host-neutral Preferences renderer, native titlebar controls, contextual provider routing, serialized dirty-state confirmation, and locale-complete labels. Keep the isolated renderer outside client-state authority and hide startup-only state there.

Cover native request parsing, dirty confirmation serialization, theme migration/reactivity, model visibility, runtime context, and virtual follow behavior. Validated with the 643-test UI suite, UI typecheck, and production build.
Add singleton frameless Preferences windows to Electron and Tauri with validated section and workspace context, sender-bound window controls, scoped permissions, and authenticated renderer origins. Preserve native menus and fan out backend lifecycle events without adding Preferences to MRU, restoration, or client-state.

Guard OS close, singleton reuse, and backend navigation with renderer dirty-state approval. Keep request authority ordered across rapid opens and reloads, reset readiness per document, and retain only the authenticated origins needed through backend restart transitions.

Add Electron IPC/preload coverage and generated Tauri ACL schemas. Validated with 186 Electron native tests, 137 Rust tests, both typechecks, Electron/UI production builds, and an isolated Tauri release build.
@github-actions

Copy link
Copy Markdown

PR builds are available as GitHub Actions artifacts:

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

Artifacts expire in 7 days.
Artifacts:

  • pr-667-52b764a4edcc622bbe53001f1741f0d2d3cdb0bc-tauri-macos
  • pr-667-52b764a4edcc622bbe53001f1741f0d2d3cdb0bc-tauri-windows
  • pr-667-52b764a4edcc622bbe53001f1741f0d2d3cdb0bc-electron-macos
  • pr-667-52b764a4edcc622bbe53001f1741f0d2d3cdb0bc-tauri-macos-arm64
  • pr-667-52b764a4edcc622bbe53001f1741f0d2d3cdb0bc-electron-windows
  • pr-667-52b764a4edcc622bbe53001f1741f0d2d3cdb0bc-tauri-linux
  • pr-667-52b764a4edcc622bbe53001f1741f0d2d3cdb0bc-electron-linux

Run open_preferences_window through Tauri's asynchronous command executor so WebviewWindowBuilder can create the standalone window without blocking native IPC. This prevents fresh WebView2 profiles from stalling on about:blank and keeps later native commands responsive.

Validated with all 137 Tauri unit tests, a release build, and a cold-profile CDP check that loaded Advanced Preferences and the Developer Automation card.
@github-actions

Copy link
Copy Markdown

PR builds are available as GitHub Actions artifacts:

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

Artifacts expire in 7 days.
Artifacts:

  • pr-667-be5a165cd0423d5c15f1dedbb5f12ac69c7d3e2b-tauri-windows
  • pr-667-be5a165cd0423d5c15f1dedbb5f12ac69c7d3e2b-tauri-macos
  • pr-667-be5a165cd0423d5c15f1dedbb5f12ac69c7d3e2b-electron-macos
  • pr-667-be5a165cd0423d5c15f1dedbb5f12ac69c7d3e2b-tauri-linux
  • pr-667-be5a165cd0423d5c15f1dedbb5f12ac69c7d3e2b-electron-linux
  • pr-667-be5a165cd0423d5c15f1dedbb5f12ac69c7d3e2b-tauri-macos-arm64
  • pr-667-be5a165cd0423d5c15f1dedbb5f12ac69c7d3e2b-electron-windows

Integrate the persistent Developer Mode runtime while preserving the standalone Preferences security boundary and harmonized desktop UI. Developer Mode remains available only to trusted local windows; Preferences keeps its constrained settings authority.

Remove the superseded Developer Run APIs, retain Preferences IPC and frameless lifecycle behavior, harden closed-window identifier cleanup, and regenerate the Tauri ACL schemas from the merged capabilities.

Validated with UI and Electron typechecks, 184 Electron native tests, 135 Tauri tests, Rust formatting, and generated-schema checks.
@github-actions

Copy link
Copy Markdown

PR builds are available as GitHub Actions artifacts:

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

Artifacts expire in 7 days.
Artifacts:

  • pr-667-2ea0227091d1907310aa573307fc740c0f073757-tauri-windows
  • pr-667-2ea0227091d1907310aa573307fc740c0f073757-tauri-macos
  • pr-667-2ea0227091d1907310aa573307fc740c0f073757-tauri-macos-arm64
  • pr-667-2ea0227091d1907310aa573307fc740c0f073757-electron-macos
  • pr-667-2ea0227091d1907310aa573307fc740c0f073757-electron-windows
  • pr-667-2ea0227091d1907310aa573307fc740c0f073757-electron-linux
  • pr-667-2ea0227091d1907310aa573307fc740c0f073757-tauri-linux

Show localized File, Edit, View, Window, and Help controls in the shared frameless title bar. Each control opens the existing native submenu so Electron and Tauri retain platform accelerators, edit behavior, focus targeting, and workspace-aware enabled state.

Expose the popup bridge only to trusted local windows, keep Preferences and remote windows outside that authority, align Help menus across desktop hosts, and regenerate the Tauri ACL schemas.

Validated with UI and Electron typechecks, UI and Electron production builds, 185 Electron native tests, 136 Tauri tests, cargo check, and Rust formatting.
Position unread notification counts as compact superscripts over the notification control instead of leaving them inline beside the bell.

Keep one client pixel below the prompt input so its inset focus highlight remains visible above the frameless window boundary.

Validated with the UI typecheck and production build.
Use the standard panel border token for Status accordion separators so their brightness matches surrounding panel divisions across themes.

Render the active Yolo switch with the success color used by other enabled validation controls instead of the warning color.

Validated with the UI typecheck and production build.
Reduce card padding, metadata spacing, action spacing, and list gaps in the Status tab so multiple background shells remain scannable without consuming excessive vertical space.

All existing shell details and actions remain available.

Validated with the UI typecheck and production build.
@github-actions

Copy link
Copy Markdown

PR builds are available as GitHub Actions artifacts:

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

Artifacts expire in 7 days.
Artifacts:

  • pr-667-3e61bc05ca71322d814eb7b0c551bf72d31cfe17-tauri-macos
  • pr-667-3e61bc05ca71322d814eb7b0c551bf72d31cfe17-tauri-windows
  • pr-667-3e61bc05ca71322d814eb7b0c551bf72d31cfe17-electron-macos
  • pr-667-3e61bc05ca71322d814eb7b0c551bf72d31cfe17-tauri-macos-arm64
  • pr-667-3e61bc05ca71322d814eb7b0c551bf72d31cfe17-tauri-linux
  • pr-667-3e61bc05ca71322d814eb7b0c551bf72d31cfe17-electron-linux
  • pr-667-3e61bc05ca71322d814eb7b0c551bf72d31cfe17-electron-windows

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.

1 participant