---ci---
phase: 8
milestone: v0.1
status: approval_pending
escalation:
type: prototype_approval
hook: prototype_approval
resolution: pending_owner_decision
message: >-
v0.1.8 milestone release candidate shipped and presented. UAT
staged per owner cadence (v0.1.7-uat mid-cycle, v0.1.8-uat at
gate). On recorded approval: milestone merge to main, milestone
branches deleted, v0.2 unblocked. On rejection: feedback becomes
binding decisions for a fix cycle.
requirements:
covered: [REQ-52, REQ-53, REQ-54, REQ-55, REQ-56, REQ-57, REQ-58, REQ-59, REQ-60, REQ-61, REQ-63, REQ-64, REQ-65, REQ-66, REQ-67, REQ-68]
partial: [REQ-62]
---/ci---
Ship record: PR #8 squash-merged phase/08-final-review-approval-ship →
milestone/v0.1-prototype (93a7b57), tag v0.1.8, phase branch deleted
(local+remote), Gitea release v0.1.8 created (HTTP 201), v0.1.8-uat
deployed healthy to the LXC host (gates re-run at deploy time, all
routes 200, suggestions + refine affordances served). DEPLOY-RECORD
row added; ROADMAP P8 → complete-pending-approval. Checkpoint stays
approval_pending at the REQ-62 gate — the milestone merge to main
awaits the owner's recorded decision.
ResearchX
A deep-research studio where you bring your own model, storage, and memory; choose a research methodology before a single query fires; and every claim in the final report is anchored to a visited, verified, quotable source.
Status: prototype (milestone v0.1) — UI/UX with mock data. No backend, no API keys, no network calls.
Quickstart
cd frontend
pnpm install
pnpm dev
Open http://localhost:3000 — you land on Ask, inside the app shell (left sidebar, top bar with ⌘K search and your avatar). Type a question, click Research this, pick a methodology on Choose (Deep Report is the recommended default), and press Start research.
Three clicks from cold start to initiated research.
What's in the prototype
| Screen | What it does |
|---|---|
/ask |
One question box + one optional context box — plus two opt-in helpers below and beside them: open-question suggestions (follow-ups from your past runs, one click fills the box) and the Refine question dialogue (a few clarifying answers → a composed, sharper question). Neither ever auto-starts. |
/choose |
All 8 locked methodology cards — mock ETA, cost estimate, why-recommended, and the 12 methodology dials behind each card's Advanced drawer. |
/run/[id] |
Plan & Run: approve the research plan (sub-questions, source universe, outline), watch the live trace stream, pause/resume or cancel. |
/run/[id]/report |
Reading Room: the report with page-anchored citations — hover or focus any [n] marker for the exact quoted passage — plus the citation ledger and Markdown/JSON exports. |
/library |
Stored reports filed into auto-categorized folders (sortable, links into the Reading Room), the Connections panel (shared sources ⇄, related topics →), plus v2-preview project graph and task inbox. |
/settings |
API-key status (masked, never raw), the reports storage directory, methodology defaults with the resolved 12 dials, appearance, and about/version. |
The persistent shell (every screen): sidebar nav + adapter connection-status dots, top bar with the ⌘K navigation palette (screens + stored reports) and the avatar menu (local profile, Settings, About).
All data flows through a typed ApiClient interface backed by MockApiClient — the same components will talk to the FastAPI backend via the OpenAPI-generated client in the MVP milestone, with zero rewrites.
Scripts
Run inside frontend/:
| Command | Purpose |
|---|---|
pnpm dev |
Dev server on :3000 |
pnpm build |
Production build |
pnpm lint |
ESLint (flat config) |
pnpm typecheck |
tsc --noEmit (strict) |
pnpm test |
Vitest + Testing Library (jsdom) |
Repository layout
frontend/ Next.js 15 App Router, TypeScript strict, Tailwind v4, Vitest
.ciagent/ Pipeline state (roadmap, requirements, plans, checkpoints)
Milestone v0.2 (MVP: FastAPI backend, research engine, adapter layer, trust loop) begins only after this prototype is approved.