Watch
0
0
Fork
You've already forked hyperhive
0

swarm-ui: the review classifier is a folded card on the jobs tab

The review tab is gone from the nav. Its page, unchanged inside, is a card on
/jobs that starts shut and reads nothing until opened; /review redirects to
/jobs. Docs follow.
This commit is contained in:
iris 2026-10-26 20:25:49 +01:00
commit 9ffd537aa2
4 changed files with 21 additions and 11 deletions

View file

@ -14,7 +14,6 @@ import { NotificationsPage } from "./pages/notifications/NotificationsPage.js";
import { ComponentsPage } from "./pages/ComponentsPage.js";
import { JobsPage } from "./pages/JobsPage.js";
import { IssueReportPage } from "./pages/IssueReportPage.js";
import { ReviewPage } from "./pages/review/ReviewPage.js";
import { StartPage } from "./pages/StartPage.js";
import { Panel } from "./ui/panel/Panel.js";
@ -58,7 +57,9 @@ export function App() {
</Route>
<Route path="/notifications/:flowId" component={FlowEditorPage} />
<Route path="/issues" component={IssueReportPage} />
<Route path="/review" component={ReviewPage} />
<Route path="/review">
<Redirect to="/jobs" replace />
</Route>
<Route path="/components" component={ComponentsPage} />
<Route component={NotFound} />
</Switch>

View file

@ -23,6 +23,7 @@ import { JobqGraph } from "@hive/shared/jobq-graph.js";
import { JobqRollup } from "@hive/shared/jobq-rollup.js";
import { LazyDisclosure } from "../ui/disclosure/LazyDisclosure.js";
import { BuildsCard } from "./builds/BuildsPage.js";
import { ReviewPage } from "./review/ReviewPage.js";
import {
RefreshIntervalPicker,
useRefreshInterval,
@ -65,8 +66,9 @@ function JobsBody() {
);
}
// The jobs tab holds two folded cards: the controller's job graph, and the swarm
// builder's recent builds under it. Neither reads anything until it is opened.
// The jobs tab holds three folded cards: the controller's job graph, the swarm
// builder's recent builds, and the review classifier's page. None reads
// anything until it is opened.
export function JobsPage() {
return (
<div class="ui-jobs-page">
@ -78,6 +80,13 @@ export function JobsPage() {
<JobsBody />
</LazyDisclosure>
<BuildsCard />
<LazyDisclosure
title="review"
icon="🔍"
hint="the review classifier: its recent runs, a try-out, its settings"
>
<ReviewPage />
</LazyDisclosure>
</div>
);
}

View file

@ -1,4 +1,4 @@
// <ReviewPage> — the review classifier on one page (`docs/swarm/ui.md`,
// <ReviewPage> — the review classifier, one card of the jobs tab (`docs/swarm/ui.md`,
// "Review"): the way to try a classification on a PR, the classifier's own
// settings, and the runs it has done. The first two fold, since they are
// used now and then and a folded header says what is in them; the runs are

View file

@ -56,7 +56,6 @@ const NAV_ITEMS: { href: string; label: string; accent: string }[] = [
{ href: "/messages", label: "messages", accent: "var(--purple)" },
{ href: "/notifications", label: "notifications", accent: "var(--yellow)" },
{ href: "/issues", label: "issues", accent: "var(--yellow)" },
{ href: "/review", label: "review", accent: "var(--amber)" },
{ href: "/components", label: "components", accent: "var(--blue)" },
];