hermes-agent/web/src/pages
teknium1 6d1e08b2bc fix(dashboard): QA pass — log colors, nameless channels, config bool, UX gaps
Companion fixes from a full dashboard QA pass (every page dogfooded
live), on top of the cherry-picked #31863 header-slot fix:

- ChatPage: harden the header-slot effect further — useLayoutEffect and
  never write the slot while inactive, so the handoff commentary and
  ownership rule live next to the code.
- LogsPage: level classification used raw substring matching, so INFO
  lines carrying 'parse_errors=0' (or paths like errors.log) rendered
  red. New unit-tested classifier (web/src/lib/log-classify.ts) anchors
  on the hermes_logging level token with a word-boundary fallback.
- Channels API: plugin platforms (irc, ntfy, photon, teams, …) rendered
  as nameless title-cased cards ('Irc', 'Ntfy') with empty descriptions.
  Two root causes: (1) plugin discovery never ran in the dashboard
  server process, so plugin_entries() was empty; (2) Platform enum
  pseudo-members claimed plugin ids before the registry could attach
  labels. The catalog now discovers plugins explicitly and resolves
  plugin metadata first; added descriptions + docs links for bundled
  plugin platforms and the msgraph_webhook / whatsapp_cloud / relay
  enum members. Regression test sabotage-verified against the old
  enum-first ordering.
- Config schema: updates.refresh_cua_driver declared type 'bool'
  (schema vocabulary is 'boolean'), so the switch rendered as a text
  input holding 'true'.
- Page titles: '/mcp' rendered as 'Mcp' via the naive capitalize
  fallback; literal-label table now covers MCP/Files/Channels/Webhooks/
  Pairing/System (unit-tested).
- AuthWidget: skip the guaranteed-401 /api/auth/me probe in loopback
  mode — every dashboard load logged a console error for nothing.
- Model picker: with no filter, providers that actually have models
  float above the wall of '0 models' rows.
- Cron: empty state now carries an actionable Create button.
2026-07-26 15:17:30 -07:00
..
AnalyticsPage.tsx feat(dashboard): nous-blue theme, bulk sessions, schedule picker (#37383) 2026-06-02 12:37:40 -04:00
ChannelsPage.tsx feat(dashboard): clarify manual Telegram bot setup 2026-07-16 00:21:01 -07:00
ChatPage.tsx fix(dashboard): QA pass — log colors, nameless channels, config bool, UX gaps 2026-07-26 15:17:30 -07:00
ConfigPage.tsx fix(dashboard): keep memory.provider in the config schema so Desktop's dropdown survives (#63886) 2026-07-13 18:56:51 -07:00
CronPage.tsx fix(dashboard): QA pass — log colors, nameless channels, config bool, UX gaps 2026-07-26 15:17:30 -07:00
DocsPage.tsx fix(web): force light color-scheme on docs iframe 2026-05-07 04:55:47 -07:00
EnvPage.tsx feat(agent): add Upstage Solar as a model provider 2026-07-15 00:09:24 +05:30
FilesPage.tsx fix(dashboard): stream file uploads via multipart instead of base64 JSON (NS-501) (#47663) 2026-06-18 15:54:32 +10:00
LogsPage.tsx fix(dashboard): QA pass — log colors, nameless channels, config bool, UX gaps 2026-07-26 15:17:30 -07:00
McpPage.tsx fix(mcp): complete OAuth through hosted dashboards 2026-07-17 04:50:47 -07:00
ModelsPage.tsx fix(moa): contain failed reference details 2026-07-23 18:40:09 -07:00
PairingPage.tsx feat(dashboard): full administration panel — MCP, pairing, webhooks, credentials, memory, gateway, ops (#36704) 2026-06-01 02:58:02 -07:00
PluginsPage.tsx Add dashboard memory provider switching 2026-07-07 17:27:54 -07:00
ProfileBuilderPage.tsx fix(dashboard): add MCP auth to profile builder (#65163) 2026-07-16 02:05:04 +05:30
ProfilesPage.tsx fix(web): remove marketing backdrop stack for lighter dashboard shell 2026-06-29 12:30:24 -07:00
SessionsPage.tsx feat(dashboard): add session import flow 2026-07-13 15:41:00 +05:30
SkillsPage.tsx fix(dashboard): persist Discord toolsets to Discord platform 2026-07-16 00:20:33 -07:00
SystemPage.tsx Add dashboard memory provider switching 2026-07-07 17:27:54 -07:00
WebhooksPage.tsx fix(web): remove marketing backdrop stack for lighter dashboard shell 2026-06-29 12:30:24 -07:00