Skip to content

feat(ui): complete Odin management WebUI overhaul#231

Merged
Calmingstorm merged 20 commits into
masterfrom
feat/webui-overhaul
Jul 11, 2026
Merged

feat(ui): complete Odin management WebUI overhaul#231
Calmingstorm merged 20 commits into
masterfrom
feat/webui-overhaul

Conversation

@Calmingstorm

@Calmingstorm Calmingstorm commented Jul 11, 2026

Copy link
Copy Markdown
Owner

Complete Odin management WebUI overhaul

Refreshes the full management interface into a cohesive operator console while preserving every API contract, route, legacy redirect, and URL-driven tab deep link.

Design system and foundation

  • Establishes ui/css/foundation.css as the canonical token, application-shell, and shared-component layer, with page-specific contracts retained in style.css during deliberate progressive migration.
  • Keeps Odin's restrained bronze/gold identity over deep neutral surfaces with consistent typography, spacing, radii, borders, focus rings, status colors, buttons, forms, cards, tables, empty/error states, dialogs, and toasts.
  • Uses only local assets and existing repository dependencies. No CDN or external runtime dependency was added.

Navigation and application shell

  • Introduces a professional responsive shell with grouped navigation: Workspace, Operate, Observe, and Manage.
  • Keeps Dashboard, Chat, Personality, and every existing destination reachable.
  • Preserves all hash routes, legacy redirects, command-palette destinations, non-tab query parameters, and ?tab= deep links; adds the previously missing /learned compatibility redirect.
  • Adds responsive drawer navigation, contextual topbar, command palette, skip navigation, and WAI-ARIA roving-tabindex section tabs.

Iconography and page refresh

  • Replaces emoji and text-glyph iconography with a dependency-free local SVG registry using a consistent currentColor outline language.
  • Refreshes every page and shared interaction surface without changing API behavior.
  • Preserves runtime renderer contracts for chat markdown/copy controls, session and knowledge highlights, and skill-code syntax classes.
  • Restyles and retains all bespoke modal workflows, including API-token editing and Config diff review.

Accessibility and responsive completion pass

  • Adds focus containment and trigger restoration to the shared confirmation dialog, command palette, page-local dialogs, and mobile navigation drawer.
  • Gives the mobile drawer modal semantics, makes the background inert while open, restores trigger focus, and exposes accurate open/close labels.
  • Removes the confirmation dialog's unsafe global Enter behavior; keyboard activation respects the focused action.
  • Makes expandable cards/rows, sessions, memory scopes, knowledge chunks, audit/traces, Config sections, account-label editing, and Discord override actions keyboard operable with announced state.
  • Associates form labels and names selection controls across configuration, API tokens, host access, sessions, memory, learned entries, and provider forms.
  • Contains dense tables and converts fixed desktop grids to responsive layouts; skill/agent grids now remain within narrow viewports.
  • Fixes the 390px dashboard hero so identity and actions occupy separate rows without overlap.

Preserved behavior contracts

  • Logs now acquires and restores its WebSocket subscription/callback on keep-alive activation and deactivation, so a hidden Logs tab cannot retain callback ownership.
  • Config Ctrl+Z/Y remains available at page scope without stealing native undo/redo from focused form controls.
  • LLM configuration retains its rate-limit-sensitive 500 ms trailing debounce, re-entry handling, explicit-save cancellation, and unmount cleanup.
  • Runtime FTS result classes are semantic and present in the production bundle rather than relying on dynamically generated Tailwind utilities.

Validation

  • npm run check: 38 templates, 0 failures; production build clean
  • Fresh second build: committed ui/dist/ byte-identical
  • git diff --check: clean
  • Scope relative to 8837351: ui/ only
  • Undefined CSS variables: none across 1,138 references
  • Emoji/glyph census: clean across raw pictographs, \\u{...}, \\uXXXX, variation selectors, and surrogate escapes, excluding approved typography
  • Routes/tabs: 20 legacy redirects and all 24 grouped tabs mechanically verified; redirect and tab navigation preserve query parameters
  • Renderer contracts and dynamic production classes: verified in source and built CSS
  • Modal inventory, Logs WebSocket ownership, Config undo/redo guard, and LLM debounce seams: verified
  • Keyboard runtime smoke: login renders, checkbox label activation works, Tab reaches the primary action, no unexpected browser errors
  • Responsive geometry at 390px: dashboard hero identity/actions do not overlap
  • Final-head CI required before merge

Scope

UI source and rebuilt ui/dist/ only. No Python/API changes, deployment, service restart, config mutation, or data mutation.

@Calmingstorm Calmingstorm force-pushed the feat/webui-overhaul branch from 0793014 to 0d1886a Compare July 11, 2026 03:09
@Calmingstorm Calmingstorm changed the title feat(ui): overhaul Odin management interface feat(ui): complete Odin management WebUI overhaul Jul 11, 2026
@Calmingstorm Calmingstorm merged commit 951cc75 into master Jul 11, 2026
5 checks passed
@Calmingstorm Calmingstorm deleted the feat/webui-overhaul branch July 11, 2026 04:59
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