[Demo] Audit ALL showcase navigation paths

← All Specs

[Demo] Audit ALL showcase navigation paths

Task ID: bcb62c5f-9d22-4677-a1f7-8b9a1ed27003 Layer: UI Type: recurring (every-6h)

Objective

Starting from /showcase, follow every link and verify content is substantial. Fix broken links, de-prioritize Mol* in showcase cards.

Audit Results (2026-04-12)

Navigation paths tested

PageStatusSize
/showcaseOK349KB
/walkthrough/SDA-2026-04-01-gap-20260401-225149OK802KB
/walkthrough/SDA-2026-04-03-gap-crispr-neurodegeneration-20260402OK697KB
/walkthrough/SDA-2026-04-03-gap-aging-mouse-brain-v3-20260402OK1039KB
/walkthrough/SDA-2026-04-04-gap-20260404-microglial-priming-early-adOK517KB
/notebook/* (all 4)OK410-950KB
/debates/* (all 4)OK87-176KB
/hypothesis/* (all 12 from showcase)OK183-299KB
/compare?ids=* (all 4)OK94-102KB
Most figure SVGsOK55-137KB

Issues found

  • Broken figure hrefs in showcase cards — CRISPR pathway figures have literal spaces/commas in href/src attributes:
  • - href="/figures/.../pathway_BDNF, CREB1, synaptic plasticity genes_01b02c02.svg"
    - Space in href breaks HTML attribute parsing in browsers; file serves OK when URL-encoded
    - Root cause: line 47014 uses _url_quote(f.name, safe=', ') keeping spaces/commas unencoded
    - Fix: change safe=', ' to safe='' in figure URL generation

  • Mol 3D viewers in walkthrough — Walkthrough pages embed up to 3 inline Mol 3D viewers
  • in the Target Proteins section (collapsed <details> by default). Task says to de-prioritize.
    - Fix: Replace inline viewer with a text link to the entity page for 3D structure
    - Removes external EBI JS/CSS dependency from walkthrough pages

  • Microglial priming walkthrough has 0 figures — No figure directory exists for
  • SDA-2026-04-04-gap-20260404-microglial-priming-early-ad. This is a data gap;
    the analysis was created 2026-04-04 but figures were not generated. Not fixable in code.

    Changes Made

  • Fixed safe=', 'safe='' in showcase figure URL generation (line 47014) so spaces/commas
  • in filenames get properly percent-encoded in href and src attributes.

  • Reduced Mol* inline viewers in walkthrough from max 3 to max 1, and made it explicitly
  • labelled as optional secondary content ("View 3D protein structure (optional)").

    Work Log

    • 2026-04-21 06:09 PDT — Slot codex:50: Implemented and verified fixes. api.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.
    • 2026-04-21 05:57 PDT — Slot codex:50: Started recurring showcase navigation audit. Read AGENTS.md, CLAUDE.md, this spec, quest_demo_spec.md, and alignment-feedback-loops.md. Live /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.
    • 2026-04-12: Full audit of all /showcase navigation paths. All major paths load with substantial content (87KB-1MB). Found 2 bugs: (1) unencoded spaces in CRISPR figure hrefs, (2) Mol* de-prioritization. Fixed both. Microglial priming figures remain absent (data gap).
    • 2026-04-12 (run 1): Full audit of all /showcase navigation paths. All major paths load with substantial content (87KB-1MB). Found 2 bugs: (1) unencoded spaces in CRISPR figure hrefs, (2) Mol* de-prioritization. Fixed both. Microglial priming figures remain absent (data gap).
    • 2026-04-12 (run 2): Re-audit confirms all 200 HTTP responses. Root cause found: all 4 showcase notebook pages showed "No Rendered Output" despite rendered HTML files existing in site/notebooks/. The 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.
    • 2026-04-12 (run 1): Full audit of all /showcase navigation paths. All major paths load with substantial content (87KB-1MB). Found 2 bugs: (1) unencoded spaces in CRISPR figure hrefs, (2) Mol* de-prioritization. Fixed both. Microglial priming figures remain absent (data gap).
    • 2026-04-12 (run 2): Re-audit confirms all 200 HTTP responses. Root cause found: all 4 showcase notebook pages showed "No Rendered Output" despite rendered HTML files existing in site/notebooks/. The 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.
    • 2026-04-13 (run 3, Cycle 44): Full re-audit. All 200 HTTP responses for 26+ showcase paths. Issue: 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.

    File: bcb62c5f_showcase_nav_audit_spec.md
    Modified: 2026-04-25 23:40
    Size: 7.3 KB