feat(research-lab): tier gate (beta+), 1–5 star ratings, run detail route

- Branding: research-lab registered in @mana/shared-branding with requiredTier: 'beta' + a custom flask-on-purple icon, so guest/public users are filtered out of the workbench picker.
- Backend: compare routes now return resultId alongside each CompareEntry so the frontend can wire ratings to the eval_results rows in research.*.
- Frontend: click-to-rate stars in CompareColumn (persists via POST /v1/runs/:runId/results/:resultId/rate), recent-run list rows are now buttons that navigate to /research-lab/runs/[id], and the detail route reconstructs CompareEntry shapes from eval_results + reuses CompareColumn for a full read-only view of any past run.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Till JS 2026-04-17 15:28:02 +02:00
parent bd1e273f60
commit 8f0a74b2e7
10 changed files with 358 additions and 16 deletions

View file

@ -72,6 +72,7 @@ export interface CompareResponse<T> {
success: boolean;
data?: T;
meta: ProviderMeta;
resultId?: string;
}>;
}