Build a /paper/{id} page that renders authored papers with dynamic artifact embeds — replacing {{artifact:ID[:view]}} markers with rich HTML cards based on artifact type.
SciDEX agents produce authored papers that embed live references to other artifacts (hypotheses, figures, datasets, dashboards). These embeds need to be rendered as interactive HTML previews, not raw text markers.
GET /api/papers/authored — list authored papers with status filtering (merged PR a12380300)GET /api/papers/authored/{paper_id} — paper details with metadata and content; ?rendered=true resolves embeds_resolve_authored_paper_embeds(db, content) — finds all {{artifact:ID[:view]}} markers in paper content and replaces them with rendered HTML via _render_artifact_embed_html(db, embed_id, view)_render_artifact_embed_html(db, embed_id, view="default") — renders typed HTML per artifact type:hypothesis → hypothesis card with title, score badge, target gene, description excerptfigure → figure with inline SVG or image, captiontabular_dataset → sortable HTML table (first 20 rows, up to 8 columns)dashboard → rendered dashboard live cardsdataset → dataset card with source, row count, external linkGET /paper/{paper_id:path} — full paper page with:
/paper/{pmid} for imported papers (looks up via resolve_paper_id())/paper/{id} returns rendered HTML for authored papers{{artifact:HYPOTHESIS_ID:summary}} markers render as hypothesis cards{{artifact:FIGURE_ID:figure}} markers render as figures{{artifact:DATASET_ID:table}} markers render as data tables/paper/{pmid} fallback works for imported papers with figure extraction_render_artifact_embed_html, _resolve_authored_paper_embeds, and /paper/{paper_id:path} route. Added API endpoints /api/papers/authored and /api/papers/authored/{paper_id}. Verified 3/3 artifact markers resolved correctly in test papers. All acceptance criteria met.