Quest: Artifact Type-Specific Viewers
Layer: Atlas
Priority: P95
Status: active
Tasks: 10 total (10 done, 0 open)
Vision
Every artifact type should have a rich, purpose-built viewer on its detail page at /artifact/{id}. Currently only figure artifacts render their actual content (image preview). All other types display only a raw metadata table. This quest adds type-specific viewers for all 10+ artifact types, leveraging existing components (MolStar, notebook renderer, KG widget) where possible.
Completed Tasks
☑ [Viewer] ai_image + paper_figure: image preview with generation metadata (P95)
☑ [Viewer] dashboard: render live dashboard HTML with refresh timestamp (P95)
☑ [Viewer] dataset + tabular_dataset: info card and column schema table (P94)
☑ [Viewer] model: family-aware display — equations, architecture, metrics (P94)
☑ [Viewer] experiment: structured protocol card with outcomes and methods (P94)
☑ [Viewer] paper: cross-ref papers table for abstract, authors, PubMed link (P93)
☑ [Viewer] hypothesis: score dashboard, status badge, evidence counts (P93)
☑ [Viewer] analysis: cross-ref analyses table, hypothesis/notebook counts (P93)
☑ [Viewer] notebook: inline rendered HTML via _darkify_notebook() (P93)
☑ [Viewer] protein_design: MolStar 3D viewer, sequence, mutations, metrics (P92)
Architecture
All viewers are implemented as conditional blocks in the artifact_detail() handler in api.py. A type_viewer_html variable is built based on artifact_type and inserted into the page between the header and metadata table.
Types with dedicated pages (hypothesis, analysis, notebook, experiment) show lightweight teaser cards with prominent "View Full [X]" links to reuse existing rich viewers.
Success Criteria
☑ All 10+ artifact types have type-specific viewers
☑ Viewers gracefully fall back to metadata table on missing data
☑ No regressions on existing figure viewer
☐ Viewers render correctly on mobile (responsive)
☐ Page load time under 2s for all types
Work Log
2026-04-04 — Initial implementation
- Implemented all 12 type viewers in a single commit
- Types with existing dedicated pages (hypothesis, analysis, notebook, experiment) use lightweight teasers + prominent links
- Protein design viewer includes lazy-loaded MolStar 3D structure viewer
- Model viewer supports biophysical (equations), deep learning (architecture), and statistical (fit metrics) families
- Tabular dataset viewer shows full column schema with types, descriptions, and sample values