dashboard: expand to 5 peer tiers — add Research + Loops with placeholder canvases
ci / gates (push) Successful in 6s
ci / frontend (push) Successful in 35s
ci / rust (push) Successful in 3m4s
ci / publish (push) Successful in 36s
ci / e2e (push) Failing after 29m22s

Fifth commit of the Research + Loops arc. Lights up the tier rail (both
the chip column and the top-bar crumbs) with two new peer surfaces:

  [VIZ] [RESEARCH] [LOOPS] [AGENT] [INFRA]

The stubs (ResearchList / ResearchCanvas / LoopsList / LoopsCanvas) are
self-contained placeholder components — each renders a header with a
"0 topics" / "0 loops" chip and a "coming soon" body plus a canvas hero
with the tier motif. Real functionality (topic cards, wizard, canvas
timelines, publish gate UI) arrives in the next two commits, and slots
in by replacing the stub files without touching Dashboard.tsx again.

Dashboard.tsx changes:
- `Tier` type widened to include `"research" | "loops"`.
- railIcon record grew two SVG entries — book+lens for Research, orbit
  arrows for Loops. Matches the placeholder canvas hero.
- TIER_TABS reordered as Viz → Research → Loops → Agent → Infra to
  match the mental grouping (conceptual work first, machinery second).
- Top-bar crumbs mirror the rail order.
- New isResearch / isLoops selectors used everywhere the existing tiers
  were tested; the Agents-header conditional now also skips for the new
  tiers so ResearchList and LoopsList can supply their own headers.
- Sidebar swap short-circuits to ResearchList / LoopsList; canvas swap
  short-circuits to ResearchCanvas / LoopsCanvas.
This commit is contained in:
Omar Sobh
2026-07-06 06:47:37 -07:00
parent 973eeb272e
commit 2ff00934b2
5 changed files with 333 additions and 6 deletions
@@ -0,0 +1,66 @@
"use client";
// Sidebar for the Research tier — stub for the shell-expansion commit. The
// real list (topics + status pills + `+` opens the wizard) lands in the
// next commit that also brings the API client and canvas panels.
const mono =
"ui-monospace, SFMono-Regular, SF Mono, Menlo, Monaco, Consolas, monospace";
export function ResearchList() {
return (
<>
<div
style={{
padding: "16px 16px 12px",
borderBottom: "1px solid rgba(255,255,255,.06)",
display: "flex",
alignItems: "flex-start",
gap: 8,
}}
>
<div style={{ flex: 1, minWidth: 0 }}>
<div
style={{
fontFamily: mono,
fontSize: 10,
letterSpacing: ".12em",
color: "#5a5a62",
marginBottom: 6,
}}
>
0 TOPICS
</div>
<div
style={{
fontSize: 18,
fontWeight: 700,
color: "#f3f3f5",
letterSpacing: "-.01em",
}}
>
Research
</div>
</div>
</div>
<div
style={{
flex: 1,
minHeight: 0,
display: "flex",
alignItems: "center",
justifyContent: "center",
padding: "40px 16px",
fontFamily: mono,
fontSize: 11,
color: "#5a5a62",
textAlign: "center",
lineHeight: 1.6,
}}
>
Research topic cards land in the next commit. Wizard: capture, refine
with LLM, assemble outputs.
</div>
</>
);
}