fix: overhaul task system — outbound sync, escalation, failed column, MCP filtering#548
Merged
fix: overhaul task system — outbound sync, escalation, failed column, MCP filtering#548
Conversation
… MCP filtering Fixes all critical and medium priority issues from task system audit: Outbound sync (H1/H2): - Create syncTaskOutbound() shared helper in github-sync-engine.ts - Wire into bulk PUT (drag-and-drop), replacing per-endpoint inline sync - Wire into task-dispatch.ts at all 5 status transition points - GNAP sync now updates on status changes (was create-only) Escalation (H3): - Add task.escalated event type to event bus - Broadcast escalation when tasks fail after max retries (dispatch, Aegis, stale) - Webhook subscribers auto-receive escalation events Failed + awaiting_owner as formal statuses (H4): - Add to validation schemas, github-label-map, gnap-sync, all Task types - New "Failed" column on task board with error display and retry button - Retry resets dispatch_attempts and moves task back to assigned MCP server filtering (M2): - mc_list_tasks now accepts: status, assigned_to, priority, search, limit - Backward compatible — no params returns all tasks Model classification (M3): - Add size heuristics: description >2000 chars or estimated_hours >=4 → opus Tests updated for new status counts and enums.
📸 Screenshot Drift CheckThis PR modifies UI source files. Please verify whether the README screenshots need refreshing:
Changed UI filesSee This comment is posted automatically and can be dismissed if no visual changes occurred. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Comprehensive task system overhaul based on a full audit. Fixes all critical and medium priority issues.
What was broken
failedstatus with no notification, no UI recovery, and no visibility.awaiting_ownerwas fake: Client-side keyword matching on every render, not a real status. Couldn't be set by agents or persisted.mc_list_tasksreturned all tasks with no filtering.Fixes
syncTaskOutbound()helper, wired into PUT handlertask.escalatedevent broadcast on max failuresawaiting_owner+failedmc_list_tasksaccepts status, assigned_to, priority, search, limitFiles changed: 26 (+193/-42)
Test plan
pnpm typecheck— passespnpm test— 892/892 pass, 74/74 filesmc_list_tasks { status: "failed" }→ returns filtered resultsawaiting_ownervia API → appears in correct column