CHRON-0038: Unified search, directory cleanup, and timeline imagery return
What Happened
The public search surface was reopened as a single cross-library search instead
of an episode-only funnel. /search now searches across episodes, concepts,
figures, sources, timeline entries, and imagery in one pass, with result-type
filters on the page instead of forcing the user to guess which section to
browse first.
At the same time, the main browse surfaces were normalized. Concepts, Figures, and Imagery now share the same search-first control pattern instead of three different layouts and browse cues. Concepts and Figures were rebuilt as clearer alphabetical directories, while Imagery gained a real directory surface with search plus category and tradition filters.
Timeline imagery also came back. Timeline entries were still carrying
imagery.primary in the KB, but the site loader and timeline page were no
longer threading that field through to the rendered cards. The loader now
preserves it again and the page renders the related image when one is present.
Later in the same work session, the imagery loader was tightened to a stricter Blob-only policy. The site no longer treats metadata-local file paths as public image URLs. If an image is not in Blob storage, the public site now treats it as unavailable rather than attempting a local fallback route.
Site Impact
/searchis now a genuine public unified search surface./exploregraph search is public again instead of inheriting the older sign-in gate./conceptsand/figuresare easier to scan as straightforward topic/person directories./imageryis no longer just a category dump./timelineregains visual anchors for entries that already have associated imagery.- The public site now enforces Blob-backed imagery instead of serving local-only image metadata as if it were public media.
Files and Commits
site/lib/unified-search.tssite/app/api/search/route.tssite/app/api/kb/search/route.tssite/lib/kb-search.tssite/app/search/page.tsxsite/app/components/DirectoryControls.tsxsite/app/concepts/ConceptsList.tsxsite/app/figures/FiguresList.tsxsite/app/imagery/ImageryDirectory.tsxsite/app/imagery/page.tsxsite/lib/kb.tssite/app/timeline/page.tsxsite/app/explore/page.tsxsite/app/explore/ExploreClient.tsxsite/app/components/FeatureLockNotice.tsx
Follow-Up
- The unified search is lexical and cross-surface by default; if the semantic layer remains valuable, it can be kept as a ranking enhancement rather than a user-visible gate.
- Timeline entries still link back to the shared
/timelinepage rather than dedicated event detail pages. - If the team wants even tighter browse consistency, Sources is the next obvious surface to bring into the same directory pattern.