feat(proposals): Phase 2 filter extensions, /heat and /readiness endpoints
Extend list_proposals() to accept ProposalListFilters: risk_band (score range predicates), domain (code domain via risk_score > 0), author_type (LEFT JOIN to musehub_identities), assigned_reviewer (EXISTS sub-select), and sort orders newest/oldest/risk_desc/risk_asc/merge_ready_first. Fix count query to reuse the data query's join so no Cartesian product is produced for author_type filters.
Add GET /api/repos/{id}/proposals/heat → DomainHeatResponse and GET /api/repos/{id}/proposals/readiness → MergeReadinessResponse endpoints to proposals.py. Extend the list endpoint to accept all ProposalListFilters params as query parameters.
Add 32 Tier-2 (integration) and Tier-6 (performance) tests covering state/risk_band/domain/author_type/assigned_reviewer filters, sort correctness, pagination, heat aggregation, and readiness bucketing.
0 comments
muse hub commit comment sha256:9db5457c47dc08996ac0570a4d52892b8cff20b3b8e7dbe7a303b1ebfb5d3ad9 --body "your comment"
No comments yet. Be the first to start the discussion.