- TicketStageSteps: status-driven stepper (opsx-sec pattern, active
derived from ticket status incl. rejected/failed/cancelled/rollback
terminal states) at top of ticket detail page
- QuickReviewDialog: inline approve/reject with optional comment for
list rows and detail dialog (reject prompts reason, notes terminal
semantics); replaces fixed-comment direct calls and alert() usage
- execute now requires impact-summary confirm (instance + database +
statement count) in both list and detail dialog
- DetailTimeline action keys aligned with backend values (created/
pending_review/approve/reject/executed/execution_failed) - icons and
colors were silently falling back before
- create page: removed dead scheduled_at field (backend never accepted
it), added rollback SQL collection (backend-supported), real priority
select, approval-flow preview showing bound workflow steps and
approvers once instance selected
- empty tickets state now embeds create CTA button
- RedisDetailPage split: key detail panel extracted to feature
component (996 -> 658 lines after formatter reflow; panel 377 lines)