Task ID: bcb62c5f-9d22-4677-a1f7-8b9a1ed27003 Layer: UI Type: recurring (every-6h)
Starting from /showcase, follow every link and verify content is substantial. Fix broken links, de-prioritize Mol* in showcase cards.
href="/figures/.../pathway_BDNF, CREB1, synaptic plasticity genes_01b02c02.svg"_url_quote(f.name, safe=', ') keeping spaces/commas unencodedsafe=', ' to safe='' in figure URL generation<details> by default). Task says to de-prioritize.SDA-2026-04-04-gap-20260404-microglial-priming-early-ad. This is a data gap;safe=', ' → safe='' in showcase figure URL generation (line 47014) so spaces/commasapi.py now requires a real rendered notebook HTML file before /showcase emits a notebook link, fixes artifact registration links from /artifact/register%stype=... to /artifact/register?type=..., removes the standalone Mol showcase highlight block, replaces walkthrough inline Mol embeds with lightweight RCSB PDB reference links, and makes empty notebook source paths non-crashing. Verification on worktree server 127.0.0.1:8011: /showcase 200 (771KB), no Mol/molstar text, no malformed registration links, no broken top5 CRISPR notebook link; representative walkthroughs 200 with no Mol/molstar embeds; extracted 142 key showcase links across artifact/notebook/walkthrough/hypothesis/debate/compare/figure routes and found 0 bad links. python3 -m py_compile api.py passed. pytest tests/test_demo_pages.py -q had 58 passed / 1 skipped and 1 unrelated failure in test_demo_origins_redirect because /origins lacks the expected analysis/hypothesis marker./showcase crawl found substantive content overall but identified actionable regressions: malformed /artifact/register%stype=... links, a showcased CRISPR notebook link resolving to a stub/no-path notebook and returning HTTP 500, and prominent Mol* viewer promotion still present in showcase/walkthrough paths despite the task instruction to de-prioritize it. Proceeding with targeted route fixes in api.py, then will re-audit rendered destinations.rendered_html_path column was NULL in the DB for all showcase notebooks. Fixed by updating DB (PostgreSQL) to set rendered_html_path for all showcase notebooks (nb-SDA-... IDs) and all associated UUID/legacy IDs. Notebooks now show real rendered content (207 jp-Cell/OutputArea elements). All showcase figure URLs properly percent-encoded. Mol* confirmed absent from showcase and walkthrough pages (already collapsed in hypothesis detail pages). No broken links found across showcase, walkthrough, notebook, debate, hypothesis, compare, entity, and wiki pages.rendered_html_path column was NULL in the DB for all showcase notebooks. Fixed by updating DB (PostgreSQL) to set rendered_html_path for all showcase notebooks (nb-SDA-... IDs) and all associated UUID/legacy IDs. Notebooks now show real rendered content (207 jp-Cell/OutputArea elements). All showcase figure URLs properly percent-encoded. Mol* confirmed absent from showcase and walkthrough pages (already collapsed in hypothesis detail pages). No broken links found across showcase, walkthrough, notebook, debate, hypothesis, compare, entity, and wiki pages.rendered_html_path was NULL again for all 4 showcase notebooks (SDA-2026-04-01, nb-SDA-2026-04-03-crispr, nb-SDA-2026-04-03-aging-mouse-brain-v3, nb-SDA-2026-04-04-microglial-priming). Root cause analysis: WAL discrepancy — ?immutable=1 read shows paths set, normal connection shows NULL, indicating the paths get reset between runs by another process (likely a CI notebook coverage task using INSERT OR REPLACE). Files confirmed present on disk (orphan_checker found 0 missing; fixed_notebook_html=0 after setting paths). Fixed: set rendered_html_path for all 4 showcase notebook IDs + set is_spotlight=1 for SDA-2026-04-01 + fixed nb-SDA-2026-04-01 (spotlight=1 record). Verification: 507 cells (SDA-2026-04-01), 209 cells each (3 others). No bad figure URLs. No Mol* viewers. All 12 hypothesis, 4 walkthrough, 4 debate, 4 compare pages = 200 OK.