Commit Graph

71 Commits

Author SHA1 Message Date
gsxdsm
24e0c44b4a 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
2026-05-30 15:52:46 -07:00
gsxdsm
d37bebf8bf feat(FN-5516): merge fusion/fn-5516 2026-05-22 17:24:38 -07:00
gsxdsm
ed4d021d3d fix(dashboard): keep mobile nav visible on Android landscape and during keyboard
- Broaden mobile media query to include (max-height: 480px) so landscape
  phones (which exceed 768 CSS px wide) still render the bottom nav and
  mobile board layout instead of desktop horizontally-scrollable columns.
- Guard useMobileKeyboard against pinch-zoom (vv.scale > 1) — Android
  Chrome ignores user-scalable=no, and a focused textarea + zoom was
  false-positiving keyboard-open and hiding MobileNavBar.
- Read documentElement.clientHeight instead of stale window.innerHeight
  when computing keyboard overlap (Android multi-window can leave
  innerHeight cached at a wildly different value than the actual layout
  viewport — observed 2848 while html was 797).
- Add interactive-widget=resizes-content to the viewport meta so Android
  Chrome shrinks the layout viewport with the soft keyboard, matching iOS.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-22 13:12:36 -07:00
Fusion (runfusion.ai)
b8147dd3b1 feat(FN-5405): remove broad-scope triage heuristics and UI advisory chips/b
Removes the broad-scope detection feature end-to-end: the TaskCard chip and TaskDetailModal advisory banner are gone from the dashboard, the triage heuristic that flagged tasks as broad-scope has been deleted from the engine along with its associated run-audit events, and documentation references ha

Fusion-Task-Id: FN-5405
2026-05-21 15:07:15 -07:00
Fusion (runfusion.ai)
c9ff2078b5 feat(FN-5314): add broad-scope advisory chip to TaskCard and banner to Task
Adds broad-scope advisory chips to TaskCard and banner to TaskDetailModal with comprehensive test coverage and a dashboard guide entry. TaskCard gains an inline advisory chip (with styles), TaskDetailModal gets a matching banner, and both components have dedicated test suites covering the new UI ele

Fusion-Task-Id: FN-5314

Fusion-Task-Lineage: cbc88f36-d029-4e4b-ac9c-32a77560b8b9
2026-05-20 09:42:40 -07:00
Fusion (runfusion.ai)
35112e6070 feat(FN-5210): wrap TaskCard footer chip cluster for mobile
Wraps the TaskCard footer chip cluster with CSS changes to prevent layout overflow, backed by a new regression test file and updated board-mobile tests registered in the curated dashboard test gate.

Fusion-Task-Id: FN-5210
2026-05-19 20:59:14 -07:00
gsxdsm
5761b65167 fix(dashboard): anchor TaskCard footer chip cluster via :first-of-type rule
- Add the footer row selector expected by the board-mobile layout test
- Keep the time indicator chip cluster aligned to the right edge of the card footer
2026-05-19 19:46:35 -07:00
gsxdsm
71a2ea1954 feat(FN-5162): merge fusion/fn-5162 2026-05-19 11:14:49 -07:00
Fusion (runfusion.ai)
d8a04ff5a7 feat(FN-5099): complete Step 4 — pass verification gates
Fusion-Task-Id: FN-5099
Fusion-Task-Lineage: 26353f25-da61-4b61-8fd2-69915a984cc4
2026-05-18 22:34:21 -07:00
gsxdsm
f11695311a feat(FN-5088): merge fusion/fn-5088 2026-05-18 18:38:00 -07:00
gsxdsm
ceafb0ee9f feat(FN-5080): merge fusion/fn-5080 2026-05-18 16:23:24 -07:00
gsxdsm
57eaac42bf feat(FN-5061): merge fusion/fn-5061 2026-05-18 13:16:35 -07:00
Fusion (runfusion.ai)
5fa22044cc feat(FN-5045): complete Step 1 — add chip-styled Create PR action class
Fusion-Task-Id: FN-5045
Fusion-Task-Lineage: d4b967ed-64b6-4a51-9f33-bb7a19e7739d
2026-05-18 07:04:43 -07:00
Fusion (runfusion.ai)
10d00423a4 feat(FN-4986): complete Step 2 — align footer chip cluster via first-chip anchor
Fusion-Task-Id: FN-4986
Fusion-Task-Lineage: d7a2c969-f3ea-4f93-bcdb-f86521845fce
2026-05-17 21:34:06 -07:00
gsxdsm
724f8bf908 feat(FN-4906): merge fusion/fn-4906 2026-05-17 09:56:03 -07:00
Fusion
376be6f96b feat(FN-4634): complete Step 2 — add footer modifier CSS for chip far-right
Fusion-Task-Id: FN-4634
Fusion-Task-Lineage: 87cc75e7-ba50-4cb5-bb9f-6d86f49268e0
2026-05-15 10:05:46 -07:00
Fusion
0c139a455f feat(FN-4618): add inline in-review move control with meta row
Adds an inline move-control button to the TaskCard meta row for in-review tasks, letting users move tasks directly from the board without opening the detail panel. Tests and a workflow-step allowlist entry were added alongside the CSS and component changes.

Fusion-Task-Id: FN-4618
2026-05-15 09:31:00 -07:00
Fusion
76cc596c11 feat(FN-4609): complete Step 1 — nudge footer chip label text
Fusion-Task-Id: FN-4609
Fusion-Task-Lineage: 0c692d6c-a54b-488c-accb-0b85cfaeb407
2026-05-15 08:56:09 -07:00
Fusion
d5db39c7a9 feat(FN-4607): complete Step 2 — implement footer github chip alignment
Fusion-Task-Id: FN-4607
Fusion-Task-Lineage: efd8db24-f734-49c8-8eb4-a96ae78c0afd
2026-05-15 08:16:50 -07:00
Fusion
a609888e8b feat(FN-4598): complete Step 1 — center TaskCard footer chip icon text
Fusion-Task-Id: FN-4598
Fusion-Task-Lineage: c22192f1-1f32-4aa3-b418-0f98b284ab89
2026-05-15 07:21:23 -07:00
Fusion
12489f84bb feat(FN-4573): complete Step 2 — right align task card move menu
Fusion-Task-Id: FN-4573
Fusion-Task-Lineage: 874cd700-dc35-4568-b4ba-c27719168521
2026-05-15 01:12:04 -07:00
Fusion
8e59e9600d feat(FN-4566): unify task card tracking retry timing chips
Unified the task card tracking retry timing chips in the dashboard, refactoring the display logic and styling for consistency across task states. The CSS was significantly simplified while tests were expanded to cover the new chip behavior.

Fusion-Task-Id: FN-4566
2026-05-15 00:48:45 -07:00
Fusion
4ea7aa1f8e feat(FN-4525): enforce shared chip heights across TaskCard columns
Completes Step 5 of FN-4525 by enforcing consistent chip heights in TaskCard components, adding CSS rules in both the component and global stylesheets with corresponding test coverage.

Fusion-Task-Id: FN-4525
2026-05-14 23:48:28 -07:00
Fusion
16ab408919 feat(FN-4462): complete Step 3 — emphasize retries-exhausted badge tone
Fusion-Task-Id: FN-4462
Fusion-Task-Lineage: 15fc09f5-1363-429e-b131-9c9fdabee532
2026-05-14 22:57:47 -07:00
Fusion
273fc7018a feat(FN-4452): complete Step 4 — surface stale paused review in dashboard
Fusion-Task-Id: FN-4452
Fusion-Task-Lineage: 7d8b1c13-883b-4815-94ee-fdf18ad24e5f
2026-05-14 18:35:30 -07:00
Fusion
87ca698e3c feat(FN-4540): relocate in-review move control to TaskCard
Relocated the in-review move control within TaskCard, refactoring both the component layout and styling with accompanying tests — the CSS and TSX changes indicate a significant repositioning of controls while the new test file validates the updated behavior.

Fusion-Task-Id: FN-4540
2026-05-14 16:11:56 -07:00
Fusion
652e820f7d feat(FN-4398): complete remaining dashboard visibility and docs
Fusion-Task-Id: FN-4398
Fusion-Task-Lineage: 8b898b2e-3468-4fa7-8546-b8f6ba52cf46
2026-05-14 15:25:08 -07:00
Fusion
a673718b50 feat(FN-4371): complete remaining decision-only task handling
Fusion-Task-Id: FN-4371
Fusion-Task-Lineage: 4175ba4c-b7cb-4f3a-87c5-75e51f06c0ff
2026-05-14 09:59:15 -07:00
Fusion
927a32182d feat(FN-4465): complete Step 4 — dashboard stale signal surfacing
Fusion-Task-Id: FN-4465
Fusion-Task-Lineage: 4365d4cb-ab93-4ed5-add9-3e14b26237ad
2026-05-14 05:55:16 -07:00
Fusion
cf7d727c3f feat(FN-4288): complete Step 3 — add task card stall badge
Fusion-Task-Id: FN-4288
Fusion-Task-Lineage: 09c6efc0-ea0b-443a-ab45-a89188fcf888
2026-05-13 16:29:37 -07:00
Fusion
014ede3196 feat(FN-4369): complete Step 2 — normalize badge dimensions
Fusion-Task-Id: FN-4369
Fusion-Task-Lineage: 3f08cecf-2e6c-41a6-804f-645c4b809e4a
2026-05-13 15:11:37 -07:00
Fusion
300e4e4258 fix(FN-4365): keep TaskCard header actions inline on mobile
Fusion-Task-Id: FN-4365
Fusion-Task-Lineage: e459f18e-52a3-42f8-a20d-3c726c1bbc01
2026-05-13 11:34:38 -07:00
Fusion
ac05a5049d fix(FN-4351): restore compact TaskCard secondary buttons on mobile
Fusion-Task-Id: FN-4351
Fusion-Task-Lineage: 5e13b396-c463-4203-b64d-7ef17ba9591b
2026-05-13 10:50:16 -07:00
Fusion
f61c7c7d14 fix(FN-4287): group GitHub provenance markers in task footer
- Keep adjacent GitHub provenance markers grouped at the right edge of the TaskCard footer
- Add a CSS rule that prevents later provenance chips from reapplying auto left margin
- Expand TaskCard regression coverage for imported issues with GitHub tracking links

Fusion-Task-Id: FN-4287
2026-05-13 10:21:42 -07:00
Fusion
e4d5216c0f feat(FN-4295): complete Step 5 — documentation & delivery
Fusion-Task-Id: FN-4295
Fusion-Task-Lineage: e2a47487-33f5-4077-8031-c7bb14882121
2026-05-13 10:08:30 -07:00
Fusion
9ab16f0154 feat(FN-4277): complete Step 2 — style github tracking chip
Fusion-Task-Id: FN-4277
Fusion-Task-Lineage: a017b7f5-4aa3-4fd2-a86f-9caf0efefb40
2026-05-13 09:51:13 -07:00
Fusion
569c217055 feat(FN-4311): complete Step 3 — add bottom-right tracking row styles
Fusion-Task-Id: FN-4311
Fusion-Task-Lineage: 36875958-adc8-4c22-9ff0-c0abda747b43
2026-05-13 09:06:20 -07:00
Fusion
4cd96e67b6 feat(FN-4208): complete Step 1 — fix TaskCard badge state precedence
Fusion-Task-Id: FN-4208
Fusion-Task-Lineage: a195b416-f5c2-402e-939a-5d356a17ceec
2026-05-13 06:29:35 -07:00
Fusion
cd041dbba6 fix(FN-4168): make stalled-review reason readable on narrow cards
Fusion-Task-Id: FN-4168
Fusion-Task-Lineage: 781ffc66-cb1c-42b9-85e1-e5cbe0655863
2026-05-13 06:29:35 -07:00
Fusion
be89dbce30 fix(FN-4168): surface stalled-review reason inline on task cards
Fusion-Task-Id: FN-4168
Fusion-Task-Lineage: 781ffc66-cb1c-42b9-85e1-e5cbe0655863
2026-05-13 06:29:35 -07:00
Fusion
71b6e58933 feat(FN-4168): complete Step 5 — add stalled review badge UI
Fusion-Task-Id: FN-4168
Fusion-Task-Lineage: 781ffc66-cb1c-42b9-85e1-e5cbe0655863
2026-05-13 06:29:35 -07:00
Fusion
f58208176f fix(FN-4197): resolve TaskCard provenance footer spacing
Fusion-Task-Id: FN-4197
Fusion-Task-Lineage: 27bb77e2-52a1-4b7d-8830-fe13af235b97
2026-05-13 06:29:35 -07:00
Fusion
bfa3278742 feat(FN-4144): add GitHub tracking indicator to task cards
Adds a GitHub link indicator to task cards with styling and hover behavior, accompanied by tests to cover the new icon display logic.

Fusion-Task-Id: FN-4144
2026-05-12 17:04:32 -07:00
Fusion
fd16a5d2c5 feat(FN-4122): simplify fan-out badge label, inherit count color from paren
Simplified the fan-out badge label to match the design spec and removed the now-redundant CSS overrides in TaskCard.css, inheriting the count color from the task column instead. Also stabilized verification tests and added a changeset for the patch release.

Fusion-Task-Id: FN-4122

Fusion-Task-Lineage: 7dba6f5b-5143-49e9-8edb-2f54a1e2b608
2026-05-12 17:04:32 -07:00
Fusion
e81a204a46 feat(FN-3769): align TaskCard controls with design tokens and add registrat
Adds comprehensive contract tests for registration, config flow, dashboard views, runtime availability, and workflow integration — including shared test fixtures for exec mocking and registry setup — along with a design-token alignment fix to TaskCard controls.

Fusion-Task-Id: FN-3769
2026-05-10 23:36:10 -07:00
Fusion
407ce618b7 feat(FN-3965): add mobile footer reservation and touch target fixes
Applies FN-3965 mobile UI fixes: adds bottom safe-area reservation for the mobile nav bar and enforces minimum 36px touch targets on interactive task card elements, with tests covering the responsive layout breakpoints.

Fusion-Task-Id: FN-3965
2026-05-10 23:36:10 -07:00
Fusion
2aec3474b0 feat(FN-3954): blocker staleness fanout and escalation for tasks
Merges FN-3954: adds a blocker fanout system where task staleness automatically escalates to upstream blocking tasks, with a new `blocker-fanout` core module, dashboard hooks wiring that surfaces escalation status on the board and executor status bar, and a new settings toggle to disable escalation.

Fusion-Task-Id: FN-3954
2026-05-10 23:36:10 -07:00
Fusion
e9834def83 feat(FN-3942): surface high fan-out blockers in task cards and executor sta
Adds a "high fan-out" indicator that surfaces when a task blocks an unusually large number of downstream tasks, displayed as a warning badge on TaskCards and in the ExecutorStatusBar. The feature includes core type definitions, dashboard UI updates to render the warning with appropriate styling and

Fusion-Task-Id: FN-3942
2026-05-10 15:55:09 -07:00
Fusion
309e3f91a1 feat(FN-3897): add blocker fan-out hook, badge, and detail modal section
Implemented the blocker fan-out feature across the dashboard: added a `useBlockerFanout` hook to track blocking relationships, rendered a fan-out badge on task cards, and added a blocking section to the task detail modal, with tests covering the hook and responsive modal behavior.

Fusion-Task-Id: FN-3897
2026-05-09 19:19:41 -07:00
Fusion
2278ceff31 feat(FN-3879): add chat room management in ChatView
- Add useChatRooms hook with room lifecycle state and API integration
- Wire ChatView UI for room selection/creation and update room-focused tests
- Tokenize ChatView and TaskCard color usage to align with dashboard design tokens
- Update architecture docs and include FN-3879 changesets for published CLI package

Fusion-Task-Id: FN-3879
2026-05-09 13:21:47 -07:00