v0.11.0 "Guardrails" — Review Assignment, Sprint Management & Code Review Hardening
Overview
This release adds structured review workflows and sprint management to Orcy, along with a comprehensive code review that addressed 10 critical/high-severity issues before shipping.
Features
Review Assignment System
- Review Rules: Configurable rules matching by domain, labels, and priority with 5 assignment strategies (domainexpert, roundrobin, least_loaded, random, fixed)
- Approval Gates: Multi-approval gate — tasks stay
submitted until N approvals collected. Backward compatible (no rules = legacy behavior) - Visual Rule Builder: Sortable rule cards with drag-and-drop, 10 condition types, 4 action types, data-driven config tables
- Review Panel: 3-mode panel (assigned reviewers with progress bar, legacy fallback, all-approved) with auto-advance confirmation
Sprint Management
- Sprint Lifecycle: planning → active → completed, with cancel support
- Mission Sync: Add/remove missions to planning sprints, only one active sprint per habitat
- Carry-over Policies: Configurable per habitat —
backlog, next_sprint, or none - Auto-completion: Scheduler auto-completes expired sprints every 5 minutes
- Sprint UI: Selector dropdown, planning panel drawer, dashboard with burndown chart, sprint badge
Notifications & SSE
- Email Templates: Priority change and review assignment notification templates
- Notification Preferences: New toggles for
taskReviewAssigned and taskPriorityChanged - SSE Events: 5 new cache invalidation cases for review/sprint/priority state changes
Mobile
- Mobile Table View: Card-based task list for mobile viewports with
useIsMobile() conditional rendering
MCP Integration
- Review Dispatch:
orcyreview tool with 7 actions (CRUD rules + manage reviewers) - Sprint Dispatch:
orcysprint tool with 11 actions (full sprint lifecycle + mission management)
Bug Fixes (from pre-release code review)
18 issues fixed across security, correctness, and performance:
| Category | Fixes | |----------|-------| | Security | XSS in all email templates (escapeHtml utility), missing auth on review+sprint routes, rejectTask missing reviewer check | | Correctness | Broken least_loaded strategy (function arity bug), prediction SQL wrong table alias, sprint state transitions lack transactions | | Notifications | task.rejected now includes reviewerId, task.review_assigned now includes actorId | | Performance | useTaskReview full store subscription → individual selectors, ReviewPanel confirm bypass fix | | Type Safety | API client uses proper shared input types instead of Record<string, unknown> |
Stats
- 2588 tests passing (1344 API + 1244 UI)
- 17 files changed in review fix pass
- 3 new migrations: review_rules, sprints, notification preferences expansion
- 3 new repos: reviewRule (6 methods), taskReviewer (9 methods), sprint (10 methods)