Add tests, sequence viewer, loading skeletons, pagination, CI pipeline#1
Merged
marcoloco23 merged 4 commits intomainfrom Mar 1, 2026
Merged
Conversation
- API tests: 42 pytest tests covering all endpoints (search, taxa, graph,
neighbors, sequences) plus MI distance unit tests
- Sequence viewer: new /taxa/{id}/sequences page with color-coded DNA bases,
composition bar chart, and expandable sequence cards
- Loading skeletons: shimmer animations for taxon detail and graph pages
replacing plain "Loading..." text
- Children pagination: /taxa/{id}/children endpoint with offset/limit,
inline limit of 100 with "load more" button on frontend
- Mobile responsive: additional breakpoints at 768px and 480px
- CI pipeline: GitHub Actions workflow for lint, typecheck, test, build
- Include sequence data in API response for viewer display
- Fix pyproject.toml build backend (hatchling.backends -> hatchling.build)
https://claude.ai/code/session_01NKQ34hreauk5SGYfSPEWFT
Documents architecture, conventions, pipeline order, testing strategy, type consistency rules, and remaining work for autonomous development. https://claude.ai/code/session_01NKQ34hreauk5SGYfSPEWFT
- Graph page: node search/filter with autocomplete dropdown and camera zoom - Pipeline tests: 11 tests for canonical selection scoring logic (53 total) - MI network endpoint: in-memory cache with 5-minute TTL - Dockerfile health checks: API, Web, PostgreSQL, Redis - docker-compose: service health checks with depends_on conditions - Fix all ruff lint warnings (unused imports, f-string, unused variable) - Fix Cytoscape type: Stylesheet → StylesheetStyle for newer @types - Update TODO.md and CLAUDE.md with current status https://claude.ai/code/session_01NKQ34hreauk5SGYfSPEWFT
Database: - Migration 002: pg_trgm GIN index for ILIKE search, composite indexes for neighbor queries (src_ott_id, distance), canonical checks (ott_id, is_canonical), pipeline selection (ott_id, marker), rank filtering - Connection pooling: 10 persistent + 20 overflow, pre-ping, 5min recycle Query optimization: - Lineage: recursive CTE replaces N+1 individual parent lookups - Subtree: recursive CTE replaces Python BFS with per-level queries - Canonical check: EXISTS subquery instead of fetching full row - Search: LIKE pattern escaping, prefix matches ranked first API: - GZip middleware compresses responses > 500 bytes - Updated MockDB to support execute() and exists() for CTE tests https://claude.ai/code/session_01NKQ34hreauk5SGYfSPEWFT
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.
neighbors, sequences) plus MI distance unit tests
composition bar chart, and expandable sequence cards
replacing plain "Loading..." text
inline limit of 100 with "load more" button on frontend
https://claude.ai/code/session_01NKQ34hreauk5SGYfSPEWFT