Skip to content

feat: add semantic search to plot visualization#20

Merged
aGallea merged 9 commits into
masterfrom
semantic-search
Feb 25, 2026
Merged

feat: add semantic search to plot visualization#20
aGallea merged 9 commits into
masterfrom
semantic-search

Conversation

@aGallea

@aGallea aGallea commented Feb 25, 2026

Copy link
Copy Markdown
Owner

Summary

  • Backend: New /api/search endpoint supporting text and image-based semantic search across ChromaDB collections using SentenceTransformer and CLIP models
  • Frontend: SearchBar, SearchResults, and QueryMarker components integrated into PlotPage with search result highlighting in all 3D render modes (particles, sprites, spheres)
  • State: Zustand store extended with search state; TanStack Query for search API calls
  • Tests: Backend unit tests for search route + utility functions; Playwright E2E tests for search flow
  • Docs: Updated AGENTS.md and README with search feature details, added plan docs

Changes

Backend (Python/FastAPI)

  • embedding_cluster/server/routes/search.py — New search route with text/image query support
  • embedding_cluster/server/models.py — SearchRequest/SearchResponse Pydantic models
  • embedding_cluster/server/app.py — Register search router
  • embedding_cluster/utils.py — Helper updates for search functionality

Frontend (React/TypeScript)

  • New components: SearchBar, SearchResults, QueryMarker
  • Updated plot renderers (ParticleCloud, ImageSpriteCloud, InstancedSpheres) for search highlighting
  • PlotPage integration with search UI
  • plotStore extended with search state
  • API client and TypeScript types for search

Tests

  • tests/test_server_search.py — Search API tests
  • tests/test_utils.py — Utility function tests
  • frontend/e2e/search.spec.ts — E2E Playwright tests

Config

  • Playwright config added for E2E testing
  • Frontend dependencies updated

aGallea and others added 8 commits February 25, 2026 11:59
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
…egration

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
@github-actions

github-actions Bot commented Feb 25, 2026

Copy link
Copy Markdown

Tests Report 📄

Tests Succees ✅

JUnit Details

Total Tests Failures Errors Skipped Time ⏳
144 0 0 0 16.05s

Coverage Details (95% >= 90%) ✅

Diff Cover Details
FileCovered LinesMissing Lines
embedding_cluster/utils.py14/14100%
embedding_cluster/server/app.py4/4100%
embedding_cluster/server/models.py20/20100%
embedding_cluster/server/routes/search.py157/16893%31,35-39,45-48,52
Total195/20695%

@aGallea aGallea merged commit d7aba12 into master Feb 25, 2026
3 checks passed
@aGallea aGallea mentioned this pull request Feb 26, 2026
7 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant