FN-5731: require confirmation before archiving near-duplicate tasks
Stop silent near-duplicate auto-archive by routing duplicates through explicit user confirmation in API, engine, and dashboard flows. - add new near-duplicate confirmation metadata/types and preserve duplicate task rows until confirmation - update workflow routes and triage logic to return confirmation-required outcomes instead of immediate archive - add TaskCard and TaskDetailModal UI/actions plus styling and hook updates for confirming or rejecting duplicate handling - expand dashboard and engine tests and task-management docs to cover the new confirmation path Files changed: docs/task-management.md | 14 ++++- packages/core/src/types.ts | 4 ++ packages/dashboard/app/api/legacy.ts | 1 + packages/dashboard/app/components/TaskCard.css | 59 ++++++++++++++++++ packages/dashboard/app/components/TaskCard.tsx | 46 +++++++++++++- packages/dashboard/app/components/TaskDetailModal.css | 34 +++++++++++ packages/dashboard/app/components/TaskDetailModal.tsx | 71 +++++++++++++++++++++- packages/dashboard/app/components/__tests__/TaskCard.test.tsx | 71 ++++++++++++++++++++++ packages/dashboard/app/components/__tests__/TaskDetailModal.rendering.test.tsx | 68 +++++++++++++++++++++ packages/dashboard/app/hooks/useTasks.ts | 2 +- packages/dashboard/src/__tests__/routes-tasks-near-duplicate.test.ts | 45 ++++++++++++++ packages/dashboard/src/routes/register-task-workflow-routes.ts | 9 ++- packages/engine/src/__tests__/reliability-interactions/near-duplicate-intake.test.ts | 16 +++-- packages/engine/src/triage.ts | 19 +++--- 14 files changed, 433 insertions(+), 26 deletions(-) Fusion-Task-Id: FN-5731 Fusion-Task-Lineage: fa004129-7bce-4457-b8c3-ceb9fb953319
This commit is contained in:
@@ -1024,6 +1024,7 @@ export type ActivityEventType =
|
||||
| "task:duplicate-warning-overridden"
|
||||
| "task:auto-archived-deterministic-duplicate"
|
||||
| "task:auto-archived-near-duplicate"
|
||||
| "task:near-duplicate-flagged"
|
||||
| "task:auto-archived-ghost-bug"
|
||||
| "task:auto-archived-duplicate"
|
||||
| "task:merge-worktree-reacquired"
|
||||
@@ -1660,6 +1661,9 @@ export interface TaskSource {
|
||||
* Reserved metadata keys:
|
||||
* - `duplicateOfTaskIds: string[]` stores structured duplicate lineage captured
|
||||
* from triage parsing and backfills.
|
||||
* - near-duplicate markers: `nearDuplicateOf` (canonical task id),
|
||||
* `nearDuplicateScore` (number), `nearDuplicateSharedTokens` (string[]),
|
||||
* and optional `nearDuplicateDismissed` (boolean).
|
||||
*/
|
||||
sourceMetadata?: Record<string, unknown>;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user