MCP: Add search + Displays photo - #738
Merged
Merged
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
There was a problem hiding this comment.
Pull request overview
Adds canonical search/filtering, cached page-data pipelines, synchronized virtualized viewers, and MCP image/resource support.
Changes:
- Centralizes query parsing, filtering, metadata, and route helpers.
- Refactors gallery, map, person, and thumbnail selection flows.
- Adds Streamable HTTP MCP tools with media responses and supporting tests.
Reviewed changes
Copilot reviewed 154 out of 158 changed files in this pull request and generated 7 comments.
Show a summary per file
| File | Description |
|---|---|
README.md |
Documents MCP setup. |
AGENTS.md |
Adds contributor guidance. |
.gitignore |
Updates ignored files. |
package.json |
Updates dependencies/scripts. |
package-lock.json |
Locks dependency changes. |
next.config.ts |
Enables Cache Components. |
eslint.config.mjs |
Updates lint configuration. |
vitest.setup.ts |
Adds cleanup and cache mocks. |
scripts/start.js |
Updates startup behavior. |
src/config.ts |
Adds visited-region thresholds. |
src/app-globals.tsx |
Updates global providers. |
src/__tests__/app-globals.vitest.tsx |
Tests global providers. |
src/utils/search.ts |
Exports normalized search values. |
src/utils/person-age.ts |
Extends age summaries. |
src/utils/index.ts |
Adds chronological comparators. |
src/utils/__tests__/person-age.vitest.ts |
Tests age summaries. |
src/types/pages.d.ts |
Consolidates page-data types. |
src/types/config.d.ts |
Adds configuration fields. |
src/types/common.d.ts |
Extends item/search types. |
src/models/album.ts |
Tightens album transformation. |
src/models/__tests__/album.vitest.ts |
Updates album expectations. |
src/lib/active-facets.ts |
Adds active-facet counts. |
src/lib/album.ts |
Adds cached album loading. |
src/lib/filter-items.ts |
Centralizes item filtering. |
src/lib/filter-metadata-core.ts |
Builds filter metadata. |
src/lib/filter-query.ts |
Implements canonical queries. |
src/lib/galleries.ts |
Adds cached gallery loading. |
src/lib/generate-clusters.ts |
Updates map clustering. |
src/lib/get-all-items.ts |
Builds cached all-item data. |
src/lib/monthDay.ts |
Generates Today filters and links. |
src/lib/person-item-filter.ts |
Filters items by person. |
src/lib/persons-age-summary.ts |
Recomputes scoped age summaries. |
src/lib/persons-route-filters.ts |
Parses person route filters. |
src/lib/storytelling-candidates.ts |
Updates story candidates. |
src/lib/today.ts |
Builds cached Today data. |
src/lib/visited.ts |
Re-exports visited helpers. |
src/lib/visited-core.ts |
Expands visited-place search. |
src/lib/server/cached-gallery-data.ts |
Adds cache-backed gallery data. |
src/lib/server/filter-items.ts |
Adds server filtering. |
src/lib/server/filter-metadata.ts |
Adds cached filter metadata. |
src/lib/server/page-route.ts |
Adds shared route helpers. |
src/lib/server/search-params.ts |
Normalizes route search parameters. |
src/lib/domains/index.ts |
Exports domain helpers. |
src/lib/domains/items.ts |
Adds item-domain utilities. |
src/lib/domains/visited.ts |
Adds visited-place filtering. |
src/lib/domains/persons/index.ts |
Exports person-domain helpers. |
src/lib/domains/persons/metadata.ts |
Builds person counts. |
src/lib/domains/persons/search-options.ts |
Builds person search options. |
src/lib/__tests__/active-facets.vitest.ts |
Tests facet counts. |
src/lib/__tests__/filter-items.vitest.ts |
Tests item filtering. |
src/lib/__tests__/filter-metadata-core.vitest.ts |
Tests metadata generation. |
src/lib/__tests__/filter-query.vitest.ts |
Tests query parsing. |
src/lib/__tests__/get-all-items.vitest.ts |
Tests all-item data. |
src/lib/__tests__/monthDay.vitest.ts |
Tests Today helpers. |
src/lib/__tests__/persons-age-summary.vitest.ts |
Tests scoped ages. |
src/lib/__tests__/persons-route-filters.vitest.ts |
Tests route filters. |
src/lib/__tests__/server-route-helpers.vitest.ts |
Tests server route helpers. |
src/lib/__tests__/storytelling-candidates.vitest.ts |
Tests story candidates. |
src/lib/__tests__/visited.vitest.ts |
Tests visited metadata. |
src/lib/__tests__/domains/items.vitest.ts |
Tests item-domain utilities. |
src/lib/__tests__/domains/visited.vitest.ts |
Tests visited filtering. |
src/lib/__tests__/domains/persons/metadata.vitest.ts |
Tests person metadata. |
src/lib/__tests__/domains/persons/search-options.vitest.ts |
Tests person options. |
src/hooks/selection-coordinator.ts |
Defines selection coordination. |
src/hooks/useAnimateMap.ts |
Updates map animation. |
src/hooks/useAnimatePhotoScroll.ts |
Updates photo scrolling. |
src/hooks/useAutoFocusSelected.ts |
Focuses selected thumbnails. |
src/hooks/useDrag.ts |
Handles drag navigation. |
src/hooks/useFilters.ts |
Coordinates filter state. |
src/hooks/useFullscreen.ts |
Manages fullscreen state. |
src/hooks/useHydrated.ts |
Tracks client hydration. |
src/hooks/useImageHeight.ts |
Measures image height. |
src/hooks/useKeyboard.ts |
Handles keyboard navigation. |
src/hooks/useObservedDimensions.ts |
Observes element dimensions. |
src/hooks/useOnMouseOut.ts |
Handles pointer exit. |
src/hooks/useRefreshMapSelection.ts |
Synchronizes map selection. |
src/hooks/useSearch.tsx |
Coordinates search scopes. |
src/hooks/useSelectionCoordinator.ts |
Synchronizes selected IDs/indexes. |
src/hooks/useStorytellingPanel.ts |
Updates storytelling UI state. |
src/hooks/useViewerMediaRefs.ts |
Manages viewer media refs. |
src/hooks/useViewerNavigationState.ts |
Tracks viewer navigation. |
src/hooks/useViewerSelection.ts |
Manages viewer selection. |
src/hooks/__tests__/useAnimateMap.vitest.tsx |
Tests map animation. |
src/hooks/__tests__/useAnimatePhotoScroll.vitest.tsx |
Tests photo scrolling. |
src/hooks/__tests__/useAutoFocusSelected.vitest.tsx |
Tests selected-item focus. |
src/hooks/__tests__/useDrag.vitest.tsx |
Tests drag handling. |
src/hooks/__tests__/useFilters.vitest.tsx |
Tests filter state. |
src/hooks/__tests__/useFullscreen.vitest.tsx |
Tests fullscreen behavior. |
src/hooks/__tests__/useHydrated.vitest.tsx |
Tests hydration state. |
src/hooks/__tests__/useImageHeight.vitest.tsx |
Tests image measurement. |
src/hooks/__tests__/useKeyboard.vitest.tsx |
Tests keyboard navigation. |
src/hooks/__tests__/useObservedDimensions.vitest.tsx |
Tests dimension observation. |
src/hooks/__tests__/useOnMouseOut.vitest.tsx |
Tests pointer-exit handling. |
src/hooks/__tests__/useRefreshMapSelection.vitest.tsx |
Tests map synchronization. |
src/hooks/__tests__/useSearch.vitest.tsx |
Tests search coordination. |
src/hooks/__tests__/useSelectionCoordinator.vitest.ts |
Tests selection coordination. |
src/hooks/__tests__/useViewerSelection.vitest.ts |
Tests viewer selection. |
src/components/ActiveSearchFilter/index.tsx |
Displays active filters. |
src/components/ActiveSearchFilter/__tests__/ActiveSearchFilter.vitest.tsx |
Tests active filters. |
src/components/Album/index.tsx |
Integrates searchable albums. |
src/components/Album/Item.tsx |
Updates album item rendering. |
src/components/Album/__tests__/Album.vitest.tsx |
Tests album behavior. |
src/components/Album/__tests__/AlbumItem.vitest.tsx |
Tests album items. |
src/components/AlbumList.tsx |
Updates album ordering/listing. |
src/components/All/index.tsx |
Integrates all-item filters. |
src/components/All/Items.tsx |
Adds virtualized thumbnails. |
src/components/All/AgeSelector.tsx |
Updates age selection. |
src/components/All/__tests__/All.vitest.tsx |
Tests all-item view. |
src/components/All/__tests__/Items.vitest.tsx |
Tests thumbnail items. |
src/components/Galleries.tsx |
Updates gallery navigation. |
src/components/Header.tsx |
Updates header behavior. |
src/components/Map/index.tsx |
Adds bounds-based filtering. |
src/components/Map/__tests__/Map.vitest.tsx |
Tests map behavior. |
src/components/Person/Details.tsx |
Adds person details filtering. |
src/components/Person/List.tsx |
Updates person listing. |
src/components/Person/__tests__/Details.vitest.tsx |
Tests person details. |
src/components/RootStyleRegistry.tsx |
Updates style registration. |
src/components/RootStyleRegistry.vitest.tsx |
Tests style registration. |
src/components/Search/index.tsx |
Integrates canonical search. |
src/components/Search/Popover.tsx |
Updates search options. |
src/components/Search/__tests__/Search.vitest.tsx |
Tests search behavior. |
src/components/Search/__tests__/Popover.vitest.tsx |
Tests search popover. |
src/components/SplitViewer/index.tsx |
Coordinates bounded viewer state. |
src/components/SplitViewer/ItemDetails.tsx |
Updates item details. |
src/components/SplitViewer/Map.tsx |
Synchronizes viewer map. |
src/components/SplitViewer/Photo.tsx |
Updates media rendering. |
src/components/SplitViewer/Thumbs.tsx |
Virtualizes viewer thumbnails. |
src/components/SplitViewer/__tests__/SplitViewer.vitest.tsx |
Tests split-viewer behavior. |
src/components/ThumbImg/index.tsx |
Adds thumbnail virtualization hooks. |
src/components/ThumbImg/__tests__/ThumbImg.vitest.tsx |
Tests thumbnail behavior. |
src/components/VisitedRegions/index.tsx |
Updates visited-region UI. |
src/components/VisitedRegions/Content.tsx |
Renders visited content. |
src/components/VisitedRegions/Country.tsx |
Renders country groups. |
src/components/VisitedRegions/VisistedRegion.tsx |
Renders region entries. |
src/components/VisitedRegions/__tests__/VisitedRegions.vitest.tsx |
Tests visited-region UI. |
mcp/types.ts |
Defines MCP tool types. |
mcp/client-types.ts |
Defines MCP client payloads. |
mcp/candidate-provider.ts |
Supplies storytelling candidates. |
mcp/storytelling.ts |
Implements MCP tools and media. |
mcp/index.ts |
Exports MCP server functionality. |
mcp/__tests__/types.vitest.ts |
Tests MCP types. |
mcp/__tests__/storytelling.vitest.ts |
Tests MCP storytelling. |
mcp/__tests__/mcp-app.vitest.ts |
Tests MCP App resources. |
app/layout.tsx |
Updates application layout. |
app/page.tsx |
Updates root page loading. |
app/mcp/route.ts |
Exposes MCP HTTP transport. |
app/[gallery]/page.tsx |
Updates gallery route. |
app/[gallery]/all/page.tsx |
Adds filtered all-items route. |
app/[gallery]/all/[id]/page.tsx |
Updates selected-item route. |
app/[gallery]/persons/page.tsx |
Adds person filtering. |
app/[gallery]/persons/[person]/page.tsx |
Adds person detail route data. |
app/[gallery]/today/page.tsx |
Adds searchable Today route. |
app/[gallery]/visited/page.tsx |
Adds visited search links. |
app/[gallery]/visited/[country]/page.tsx |
Updates country visit route. |
app/[gallery]/[album]/page.tsx |
Adds cached album route data. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
danactive
force-pushed
the
thumbs-cache
branch
from
August 11, 2026 04:21
1424f98 to
f48c98b
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Test plan
Manual tested