iris
f60aab4717
frontend: shared ApiErrorPanel component, promote readApiError from credentials.js
...
Closes #3410 .
`ApiErrorPanel` renders a ProblemDetails (RFC 9457) error nicely, with a
copy button so the full text can be pasted straight into a bug report.
No truncation of `detail` — on the #3363 incident that motivated this
issue, that string was the entire diagnosis.
`readApiError`/`problemMessage`/`ProblemDetails` are promoted out of
credentials.js's original `readErrorBody` into `@hive/shared/api-error.js`
(comment rewritten: the RFC 9457 rework has already landed everywhere
except swarm-controller's status route, #3412 in flight, so the raw-text
fallback is a compat shim for that one gap, not a general transition).
credentials.js's 4 call sites switch to the shared reader (kept as
one-line messages there, its result slots are single-line aria-live
regions, not a panel context).
Wired ApiErrorPanel into OverviewPage.tsx (the issue's own worked
example) and CreateAgentPage.tsx (second real call site).
Not built on <hive-warn> despite matching its visual language — that
custom element's CSS-as-text import only works under a build with
loader: 'text' for .css (dashboard's), and silently renders unstyled
under swarm-ui's default css loader (filed separately as #3415 ).
ApiErrorPanel is a self-contained light-DOM component instead, per
mara's own suggestion to keep it independent of the old UI's shapes.
2026-08-17 23:11:11 +02:00
..
agent-menu
hivectl/dashboard: add --paused / ?paused=1 to agent start
2026-08-02 19:52:11 +02:00
builds.css
dashboard: replace <hive-jobq-graph> with a shared Preact component
2026-08-16 15:18:25 +02:00
builds.html
dashboard: replace <hive-jobq-graph> with a shared Preact component
2026-08-16 15:18:25 +02:00
builds.js
apply the same render(h(...)) simplification to JobqGraph
2026-08-16 22:08:38 +02:00
call.js
dashboard: hide forge links instead of guessing <hostname>:3000
2026-08-03 01:21:11 +02:00
colors.css
refactor(frontend): base16 theme contract in a swappable colors.css
2026-06-08 21:24:07 +02:00
common.css
frontend: unify pill/chip/badge shape into shared CSS
2026-08-12 19:25:45 +02:00
common.js
frontend: shared <hive-warn> component for inline warning banners
2026-08-03 18:34:31 +02:00
core.css
fix(core): add card styling for K3PT ST4T3 and 1NFR4 entries
2026-07-26 17:23:52 +02:00
core.html
frontend: add <hive-tab-strip>, convert logs/credentials/core/builds tabbars
2026-08-02 13:40:24 +02:00
core.js
frontend: unify pill/chip/badge shape into shared CSS
2026-08-12 19:25:45 +02:00
credentials.css
frontend: shared <hive-warn> component for inline warning banners
2026-08-03 18:34:31 +02:00
credentials.html
frontend: hive-warn — replace severity+pulse with info/warning/error levels
2026-08-03 18:34:31 +02:00
credentials.js
frontend: shared ApiErrorPanel component, promote readApiError from credentials.js
2026-08-17 23:11:11 +02:00
dashboard.css
extract build-queue rollup as a shared Preact component
2026-08-16 22:08:38 +02:00
dashboard.html
extract build-queue rollup as a shared Preact component
2026-08-16 22:08:38 +02:00
flow.css
chore(frontend): scrub pre-existing issue-tag refs from source comments
2026-06-09 00:24:49 +02:00
flow.html
refactor(frontend): extract the page-chrome into @hive/shared ( #1464 step 3)
2026-06-09 09:13:35 +02:00
flow.js
frontend: extract themed dialogs + async-form handler to shared, wire agent UI
2026-07-27 18:55:17 +02:00
home.css
dashboard(home): matrix-rain backdrop on the H0M3 page
2026-06-17 21:46:25 +02:00
home.js
dashboard: hide forge links instead of guessing <hostname>:3000
2026-08-03 01:21:11 +02:00
index.html
docs: document the OpenAPI spec + Swagger UI, add H0M3 API tile
2026-08-02 19:13:41 +02:00
logs.css
fix(logs): log output scrolls internally instead of scrolling the page
2026-07-26 17:20:48 +02:00
logs.html
frontend: add <hive-tab-strip>, convert logs/credentials/core/builds tabbars
2026-08-02 13:40:24 +02:00
logs.js
dashboard: pass kinds= on the 4 unfiltered /api/dashboard/stream subscribers
2026-08-02 22:21:24 +02:00
permissions.js
frontend: extract themed dialogs + async-form handler to shared, wire agent UI
2026-07-27 18:55:17 +02:00
schedules.js
frontend: extract themed dialogs + async-form handler to shared, wire agent UI
2026-07-27 18:55:17 +02:00
settings.css
refactor(frontend): extract the page-chrome into @hive/shared ( #1464 step 3)
2026-06-09 09:13:35 +02:00
settings.html
move terminal-verbosity toggle from agent overflow menu to /settings.html
2026-08-02 18:34:40 +02:00
settings.js
move terminal-verbosity toggle from agent overflow menu to /settings.html
2026-08-02 18:34:40 +02:00
state.js
dashboard: extract operator-inbox + approvals into call.js ( #1451 )
2026-06-16 10:22:53 +02:00
stats.css
fix(stats): move window selector into the page header tab bar
2026-07-26 17:21:21 +02:00
stats.html
add per-agent and hive-wide skill invocation stats
2026-07-27 23:53:07 +02:00
stats.js
add per-agent and hive-wide skill invocation stats
2026-07-27 23:53:07 +02:00
stream-worker.js
refactor(fe): trim >30-line comment blocks (second pass, #2077 )
2026-06-29 01:05:53 +02:00
swarm.js
drop the mountJobqRollup wrapper, render(h(...)) directly
2026-08-16 22:08:38 +02:00
system-sections.css
jobq-graph: re-add per-node cancel button
2026-08-09 17:40:39 +02:00
tabs.js
extract build-queue rollup as a shared Preact component
2026-08-16 22:08:38 +02:00
theme.css
refactor(frontend): base16 theme contract in a swappable colors.css
2026-06-08 21:24:07 +02:00
util.js
dashboard frontend: consume rfc3339 timestamps from the api
2026-07-02 22:28:30 +02:00