Two CI fixes:
1. Orchestrator Dockerfile now copies apps/api/prisma schema and runs
prisma generate before build. Fixes TS2305/TS2339 errors (PrismaClient
and model properties not found) in docker-build-orchestrator step.
2. Add reflect-metadata to vitest setupFiles. Fixes class-transformer
decorator error (Reflect.getMetadata is not a function) in DTO unit tests.
Add support for filtering search results by tags in the main search endpoint.
Changes:
- Add tags parameter to SearchQueryDto (comma-separated tag slugs)
- Implement tag filtering in SearchService.search() method
- Update SQL query to join with knowledge_entry_tags when tags provided
- Entries must have ALL specified tags (AND logic)
- Add tests for tag filtering (2 controller tests, 2 service tests)
- Update endpoint documentation
- Fix non-null assertion linting error
The search endpoint now supports:
- Full-text search with ranking (ts_rank)
- Snippet generation with highlighting (ts_headline)
- Status filtering
- Tag filtering (new)
- Pagination
Example: GET /api/knowledge/search?q=api&tags=documentation,tutorial
All tests pass (25 total), type checking passes, linting passes.
Fixes#66
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>