Files
stack/apps/orchestrator
Jason Woltje c3500783d1 feat(#66): implement tag filtering in search API endpoint
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>
2026-02-02 14:33:31 -06:00
..

Mosaic Orchestrator

Agent orchestration service for Mosaic Stack built with NestJS.

Overview

The Orchestrator is the execution plane of Mosaic Stack, responsible for:

  • Spawning and managing Claude agents
  • Task queue management (Valkey-backed)
  • Agent health monitoring and recovery
  • Git workflow automation
  • Quality gate enforcement callbacks
  • Killswitch emergency stop

Architecture

Part of the Mosaic Stack monorepo at apps/orchestrator/.

Controlled by apps/coordinator/ (Quality Coordinator). Monitored via apps/web/ (Agent Dashboard).

Development

# Install dependencies (from monorepo root)
pnpm install

# Run in dev mode (watch mode)
pnpm --filter @mosaic/orchestrator dev

# Build
pnpm --filter @mosaic/orchestrator build

# Start production
pnpm --filter @mosaic/orchestrator start:prod

# Test
pnpm --filter @mosaic/orchestrator test

# Generate module (NestJS CLI)
cd apps/orchestrator
nest generate module <name>
nest generate controller <name>
nest generate service <name>

NestJS Architecture

  • Modules: Feature-based organization (spawner, queue, monitor, etc.)
  • Controllers: HTTP endpoints (health, agents, tasks)
  • Services: Business logic
  • Providers: Dependency injection

Configuration

Environment variables loaded via @nestjs/config. See .env.example for required vars.

Documentation

  • Architecture: /docs/ORCHESTRATOR-MONOREPO-SETUP.md
  • API Contracts: /docs/M6-ISSUE-AUDIT.md
  • Milestone: M6-AgentOrchestration (0.0.6)