gsxdsm
2367918fdf
FN-6650: add Overview analytics charts
...
Add graph-rich Overview visuals to the Command Center using existing analytics data.
- Add tokens-by-model, tool-category, and daily activity chart cards to the Overview tab.
- Style the chart section with responsive dashboard-token layouts and reduced-motion safeguards.
- Cover populated, partial, edge-case, and mobile-scroll chart rendering in tests.
- Document the Overview charts and add a patch changeset for the published CLI package.
Files changed:
.../fn-6650-command-center-overview-charts.md | 5 +
docs/dashboard-guide.md | 2 +-
.../components/command-center/CommandCenter.css | 111 +++++++++++++++++++++
.../components/command-center/CommandCenter.tsx | 73 +++++++++++++-
.../__tests__/CommandCenter.mobile-scroll.test.tsx | 73 +++++++++++++-
.../__tests__/CommandCenter.test.tsx | 58 +++++++++++
6 files changed, 313 insertions(+), 9 deletions(-)
Fusion-Task-Id: FN-6650
Fusion-Task-Lineage: 227f5809-ed71-42fb-8847-b137dbef6ac7
2026-06-18 14:38:07 -07:00
gsxdsm
16b6e5decb
FN-6638: stabilize mobile terminal font metrics
...
Stabilize terminal font metric remeasurement across mobile and attach surfaces.
- Add a shared terminal font metric wait helper that falls back from full font stacks to concrete individual font families before remeasurement.
- Reapply font options, refit, resize, and refresh SessionTerminal after font metrics settle to cover attached CLI terminals.
- Pin text-size adjustment on xterm measurement subtrees so mobile WebKit cannot inflate ASCII cell metrics.
- Extend terminal preference and rendering tests, documentation, and changeset coverage for the recurrence.
Files changed:
.changeset/fn-6638-terminal-render.md | 5 +
.../xterm-async-font-remeasure-paste-dedupe.md | 20 +++-
.../dashboard/app/__tests__/terminal-input.test.ts | 26 +++++
.../dashboard/app/components/SessionTerminal.css | 10 ++
.../dashboard/app/components/SessionTerminal.tsx | 29 ++++++
.../dashboard/app/components/TerminalModal.css | 10 ++
.../dashboard/app/components/TerminalModal.tsx | 24 ++---
.../components/__tests__/SessionTerminal.test.tsx | 41 +++++++-
.../components/__tests__/TerminalModal.test.tsx | 38 ++++++++
.../utils/__tests__/terminalPreferences.test.ts | 29 +++++-
.../dashboard/app/utils/terminalPreferences.ts | 107 +++++++++++++++++++++
11 files changed, 319 insertions(+), 20 deletions(-)
Fusion-Task-Id: FN-6638
Fusion-Task-Lineage: edbf071d-a0c1-4955-95ff-83e6996f4674
2026-06-18 13:19:43 -07:00
gsxdsm
b1e57d38a0
FN-6645: add workflow PUT validation regressions
...
Strengthen workflow route regression coverage for invalid selection requests.
- Verify malformed and non-string workflowId bodies return 400 without clearing the existing task selection.
- Assert unknown and uncompilable workflow selections preserve state, return the expected errors, and do not emit SSE.
- Cover successful select and clear mutations emitting exactly one workflow:updated event.
Files changed:
.../src/__tests__/workflow-routes.test.ts | 72 +++++++++++++++++++++-
1 file changed, 70 insertions(+), 2 deletions(-)
Fusion-Task-Id: FN-6645
Fusion-Task-Lineage: 5f7e6ef9-d0d7-44d0-8422-8ce3d29d32b9
2026-06-18 11:12:00 -07:00
gsxdsm
b480699e06
FN-6642: rescue dashboard flaky test coverage
...
Rescue the dashboard quarantine candidates by restoring stable shared mocks and refreshing quarantine evidence.
- Remove QuickEntryBox and chat-routes from the dashboard quarantine config and ledger.
- Add iterable chat task document tool mocks across dashboard session test helpers.
- Refresh the test velocity baseline and history with zero quarantined tests.
Files changed:
docs/test-velocity-baseline.md | 20 ++--
.../src/__tests__/session-error-recovery.test.ts | 2 +
.../session-persistence-roundtrip.test.ts | 2 +
.../src/__tests__/session-reconnect.test.ts | 2 +
.../src/__tests__/session-resume-history.test.ts | 2 +
packages/dashboard/src/test/mockCoreEngine.ts | 6 ++
packages/dashboard/vitest.config.ts | 13 ++-
scripts/lib/test-quarantine.json | 10 --
scripts/test-velocity-history.json | 111 +++++++++++++++++++++
9 files changed, 144 insertions(+), 24 deletions(-)
Fusion-Task-Id: FN-6642
Fusion-Task-Lineage: 76e51d76-ce9a-4e68-9aa0-ad83cdf351a9
2026-06-18 09:16:32 -07:00
gsxdsm
0ed46d9007
FN-6640: expose planning task document tools
...
Expose planning-lane task document tools with chat-style explicit task targeting.
- Add task document read/write tools to both planning agent creation paths.
- Cover non-streaming and streaming planning tool assembly plus explicit task_id document behavior.
- Update agent docs and generated skill tool references for chat/planning parity.
- Add a patch changeset for the published CLI package.
Files changed:
.changeset/fn-6640-planning-document-tools.md | 5 +
docs/agents.md | 2 +-
.../cli/skill/fusion/references/engine-tools.md | 4 +-
.../planning-document-tools-exposure.test.ts | 139 +++++++++++++++++++++
packages/dashboard/src/planning.ts | 7 ++
5 files changed, 154 insertions(+), 3 deletions(-)
Fusion-Task-Id: FN-6640
Fusion-Task-Lineage: 6a9225cf-fbe7-4a87-8927-e01355a38e92
2026-06-18 07:23:02 -07:00
gsxdsm
b1a2aeebf2
FN-6635: expose task document tools to chat agents
...
Expose task document read/write tools to dashboard chat agents with explicit task targeting.
- Add chat-specific fn_task_document_write/read factories that require task_id and reuse task document read behavior.
- Wire dashboard chat custom tools to include task document tools when a scoped task store is available.
- Cover chat document tool exposure and explicit-task document operations with engine and dashboard tests.
- Document chat availability and add a published package changeset.
Files changed:
.changeset/fn-6635-chat-task-documents.md | 5 +
docs/agents.md | 1 +
.../cli/skill/fusion/references/engine-tools.md | 4 +-
.../dashboard/src/__tests__/chat-manager.test.ts | 78 +++++++++++
packages/dashboard/src/chat.ts | 15 ++-
.../src/__tests__/agent-document-tools.test.ts | 108 +++++++++++++++
packages/engine/src/agent-tools.ts | 145 ++++++++++++++++-----
packages/engine/src/index.ts | 3 +
8 files changed, 318 insertions(+), 41 deletions(-)
Fusion-Task-Id: FN-6635
Fusion-Task-Lineage: 25e701d4-7670-470b-9dea-df49884f7b21
2026-06-18 07:06:00 -07:00
gsxdsm
d6415bfc41
FN-6639: enlarge task chat send icon
...
Increase the task detail chat send glyph so it fills the mobile button more clearly.
- Raise the task chat send button icon token from 24px to 32px on desktop and mobile.
- Add regression coverage that checks the icon-to-button fill ratio stays at least 75%.
Files changed:
packages/dashboard/app/components/TaskChatTab.css | 7 +++++--
.../app/components/__tests__/TaskChatTab.test.tsx | 17 +++++++++++++++--
2 files changed, 20 insertions(+), 4 deletions(-)
Fusion-Task-Id: FN-6639
Fusion-Task-Lineage: fcd83c46-b408-4561-82e1-631e329459b8
2026-06-18 07:00:54 -07:00
gsxdsm
a76ebdf781
FN-6637: align chat multipart 400 regression test
...
Keep the chat route regression test focused on missing multipart content without adding attachments.\n\n- Update the multipart 400-path test to send an empty multipart request.\n- Document why attachment-only multipart requests remain valid for chat sends.\n\nFiles changed:\n packages/dashboard/src/__tests__/chat-routes.test.ts | 13 +++++--------\n 1 file changed, 5 insertions(+), 8 deletions(-)
Fusion-Task-Id: FN-6637
Fusion-Task-Lineage: 63145e30-1a72-4fdd-8b60-e4eba65bb7aa
2026-06-18 06:46:57 -07:00
gsxdsm
3d28b3b212
FN-6632: preserve reattached chat stream chunks
...
Seed streaming accumulators from durable in-flight snapshots so reattached chat bubbles keep prior chunks.
- Add initial text, thinking, and tool-call snapshots to chat stream handlers.
- Wire main chat and QuickChat reattach flows to seed handler accumulators before replayed deltas arrive.
- Cover text, thinking, and tool-call continuation across shared handler, main chat, and QuickChat tests.
- Document the reattach accumulator invariant and add a published package changeset.
Files changed:
.changeset/fn-6632-chat-stream-reattach.md | 5 +
docs/architecture.md | 2 +-
docs/dashboard-guide.md | 2 +-
.../__tests__/createChatStreamHandlers.test.ts | 63 +++++++
.../dashboard/app/hooks/__tests__/useChat.test.ts | 182 +++++++++++++++++++++
.../app/hooks/__tests__/useQuickChat.test.ts | 147 +++++++++++++++++
.../app/hooks/createChatStreamHandlers.ts | 19 ++-
packages/dashboard/app/hooks/useChat.ts | 7 +
packages/dashboard/app/hooks/useQuickChat.ts | 7 +
9 files changed, 429 insertions(+), 5 deletions(-)
Fusion-Task-Id: FN-6632
Fusion-Task-Lineage: e2f2eb42-08aa-4bae-a79f-60cfc9fb03d4
2026-06-18 06:36:03 -07:00
gsxdsm
dae0bde6f1
FN-6633: guide chat agents to ask questions for options
...
Encourage dashboard chat agents to turn option sets into selectable ask-question cards.
- Expand chat-lane prompt guidance so options, choices, and alternatives use `fn_ask_question` instead of prose-only lists.
- Cover the guidance in chat manager tests and assert the prompt is passed to resolved sessions.
- Record the patch changeset and quarantine unrelated flaky dashboard tests observed during verification.
Files changed:
.changeset/fn-6633-chat-question-guidance.md | 5 +++++
packages/dashboard/src/__tests__/chat-manager.test.ts | 14 +++++++++++++-
packages/dashboard/src/chat.ts | 5 ++++-
packages/dashboard/vitest.config.ts | 9 ++++++++-
scripts/lib/test-quarantine.json | 10 ++++++++++
5 files changed, 40 insertions(+), 3 deletions(-)
Fusion-Task-Id: FN-6633
Fusion-Task-Lineage: e59371d3-b198-4fe8-a70c-b94994060c59
2026-06-18 06:31:26 -07:00
gsxdsm
58a34e9cf0
FN-6631: fix Command Center completion gauges
...
Fix Command Center completion analytics and add futuristic activity visualizations.
- Compute SDLC completion rate as a triage cohort conversion capped between zero and one.
- Add a radial completion gauge plus a live activity strip with compact throughput sparkline styling.
- Cover the analytics and chart behavior with targeted tests, docs, and a patch changeset.
Files changed:
.changeset/fn-6631-command-center-rate-gauge.md | 5 +
docs/dashboard-guide.md | 4 +-
.../core/src/__tests__/activity-analytics.test.ts | 32 +++++-
packages/core/src/activity-analytics.ts | 23 +++-
.../components/command-center/CommandCenter.css | 128 ++++++++++++++++++++-
.../components/command-center/CommandCenter.tsx | 45 +++++++-
.../app/components/command-center/SdlcFunnel.tsx | 17 ++-
.../__tests__/CommandCenter.test.tsx | 12 +-
.../command-center/__tests__/SdlcFunnel.test.tsx | 2 +
.../command-center/__tests__/charts.test.tsx | 26 ++++-
.../command-center/charts/RadialGauge.tsx | 50 ++++++++
.../components/command-center/charts/charts.css | 83 +++++++++++++
.../vitest.config.ts | 2 +
scripts/lib/test-quarantine.json | 8 +-
14 files changed, 402 insertions(+), 35 deletions(-)
Fusion-Task-Id: FN-6631
Fusion-Task-Lineage: 0d09f18a-5f93-4dc8-8786-889f32eb63e8
2026-06-18 06:25:08 -07:00
gsxdsm
4929198b5a
FN-6629: Lower task-list text budget
...
Keep fn_task_list responses below host text imageification thresholds.\n\n- Lower the shared task-list text clamp to a 3,000 character host-safe budget.\n- Reuse the shared budget in CLI, dashboard, and engine fallback formatters.\n- Cover realistic column-filtered fn_task_list outputs and fallback budget behavior with regression tests.\n- Add a patch changeset for the published Fusion package.\n\nFiles changed:\n .changeset/fn-6629-task-list-budget.md | 5 ++\n packages/cli/src/__tests__/extension.test.ts | 88 ++++++++++++++++++++++\n packages/cli/src/extension.ts | 7 +-\n .../core/src/__tests__/task-list-format.test.ts | 25 ++++++\n packages/core/src/task-list-format.ts | 5 +-\n .../src/__tests__/planning-board-tools.test.ts | 4 +-\n packages/dashboard/src/planning-board-tools.ts | 8 +-\n packages/engine/src/__tests__/triage.test.ts | 4 +-\n packages/engine/src/triage.ts | 7 +-\n 9 files changed, 144 insertions(+), 9 deletions(-)
Fusion-Task-Id: FN-6629
Fusion-Task-Lineage: 6ec7cd33-d4e5-4c12-8512-c3823a9dfb3e
2026-06-18 03:24:57 -07:00
gsxdsm
cdadac1662
FN-6622: wire dashboard interviews to session skills
...
Dashboard interview lanes now request the same role-fallback and enabled plugin skills as agent-acting sessions.
- Add skillSelection to agent onboarding and milestone/slice interview agent creation.
- Thread the plugin runner through mission interview and onboarding routes.
- Cover enabled and disabled plugin skill selection behavior in dashboard tests.
- Document the newly covered dashboard interview lanes and add a minor changeset.
Files changed:
.../fn-6622-session-skill-interview-lanes.md | 5 ++
docs/agents.md | 2 +-
.../src/__tests__/agent-onboarding.test.ts | 68 ++++++++++++++++++++++
.../__tests__/milestone-slice-interview.test.ts | 66 +++++++++++++++++++++
packages/dashboard/src/agent-onboarding.ts | 10 +++-
.../dashboard/src/milestone-slice-interview.ts | 39 ++++++++++---
packages/dashboard/src/mission-routes.ts | 10 ++--
...gister-agent-import-export-generation-routes.ts | 3 +-
8 files changed, 187 insertions(+), 16 deletions(-)
Fusion-Task-Id: FN-6622
Fusion-Task-Lineage: 5e3dded1-1866-4b76-8302-253e5b3867fa
2026-06-17 22:21:34 -07:00
gsxdsm
ae3e57572f
FN-6618: consolidate dashboard relative-time formatting
...
Centralize duplicated dashboard relative-time bucket logic while preserving surface-specific copy.
- Route activity log, mailbox, git manager, project card, and task detail timestamps through the shared relative-time helper.
- Keep specialized freshness labels local where seconds granularity or prefixed sync/check status copy differs from the generic helper.
- Extend component tests to cover the preserved timestamp wording and invalid/future-date behavior.
Files changed:
.../dashboard/app/components/ActivityLogModal.tsx | 36 ++++++++++------
.../app/components/AgentReflectionsTab.tsx | 7 ++-
.../dashboard/app/components/GitManagerModal.tsx | 34 ++++++++++-----
packages/dashboard/app/components/MailboxModal.tsx | 38 ++++++++++------
packages/dashboard/app/components/MailboxView.tsx | 38 ++++++++++------
packages/dashboard/app/components/PrChecksList.tsx | 4 ++
packages/dashboard/app/components/ProjectCard.tsx | 35 ++++++++++-----
packages/dashboard/app/components/RoutineCard.tsx | 3 ++
.../dashboard/app/components/TaskDetailModal.tsx | 37 ++++++++++------
.../components/__tests__/ActivityLogModal.test.tsx | 41 +++++++++++++++++-
.../components/__tests__/GitManagerModal.test.tsx | 36 +++++++++++++++-
.../app/components/__tests__/MailboxModal.test.tsx | 35 ++++++++++++++-
.../app/components/__tests__/MailboxView.test.tsx | 35 ++++++++++++++-
.../app/components/__tests__/ProjectCard.test.tsx | 50 +++++++++++++++++++++-
.../__tests__/TaskDetailModal.rendering.test.tsx | 44 +++++++++++++++++++
.../dashboard/app/hooks/useNodeSettingsSync.ts | 3 ++
16 files changed, 398 insertions(+), 78 deletions(-)
Fusion-Task-Id: FN-6618
Fusion-Task-Lineage: ac24de7c-3333-43f7-83c1-aa4c2a3dbe31
2026-06-17 21:37:18 -07:00
gsxdsm
cee24b8b8d
FN-6619: wire overview to analytics
...
Command Center Overview now reports live analytics instead of placeholder empty data.
- Fetch token, tool, activity, and best-effort signal analytics for the overview cards.
- Show loading and error states around the core overview metrics while preserving the throughput section.
- Cover populated, empty, error, date-range, and mobile overview behavior in tests.
Files changed:
.../components/command-center/CommandCenter.tsx | 154 ++++++++++----
.../__tests__/CommandCenter.mobile-scroll.test.tsx | 64 +++++-
.../__tests__/CommandCenter.test.tsx | 233 ++++++++++++++++++++-
3 files changed, 408 insertions(+), 43 deletions(-)
Fusion-Task-Id: FN-6619
Fusion-Task-Lineage: 603bcbd1-7913-4014-aea7-9a941e16e29a
2026-06-17 21:29:50 -07:00
gsxdsm
0453a65bf1
FN-6613: inject skills into agent session lanes
...
Ensure every agent-acting session lane requests available agent and plugin skills.\n\n- Add skill selection context to planning, mission interview, workflow design, memory insight, and cron automation sessions.\n- Thread plugin runners through dashboard session creation, retry, reconnect, and route registration paths.\n- Cover skill injection behavior with dashboard and cron runner regression tests.\n- Document which agent session lanes request skills and which utility-only lanes remain exempt.\n- Add a minor changeset for the published CLI package.\n\nFiles changed:\n .changeset/fn-6613-session-skill-lanes.md | 5 +\n docs/agents.md | 1 +\n .../src/__tests__/mission-interview.test.ts | 55 ++++++\n .../src/__tests__/planning-skill-selection.test.ts | 130 +++++++++++++\n .../src/__tests__/session-error-recovery.test.ts | 6 +\n .../session-persistence-roundtrip.test.ts | 6 +\n .../src/__tests__/session-reconnect.test.ts | 6 +\n .../src/__tests__/session-resume-history.test.ts | 6 +\n packages/dashboard/src/mission-interview.ts | 23 ++-\n packages/dashboard/src/mission-routes.ts | 4 +-\n packages/dashboard/src/planning.ts | 32 +++-\n .../register-settings-memory-worktrunk.test.ts | 203 ++++++++++++++++++++-\n .../routes/__tests__/workflow-design-route.test.ts | 56 +++++-\n .../src/routes/register-integrated-routers.ts | 2 +-\n .../src/routes/register-planning-subtask-routes.ts | 5 +\n .../src/routes/register-settings-memory-routes.ts | 33 +++-\n .../src/routes/register-workflow-routes.ts | 16 +-\n packages/dashboard/src/test/mockCoreEngine.ts | 9 +\n packages/engine/src/__tests__/cron-runner.test.ts | 17 ++\n packages/engine/src/cron-runner.ts | 7 +\n 20 files changed, 599 insertions(+), 23 deletions(-)
Fusion-Task-Id: FN-6613
Fusion-Task-Lineage: 985fa9fb-0381-4abf-930f-b547a475c4ed
2026-06-17 21:12:53 -07:00
gsxdsm
5c0c162a2b
FN-6609: fix command center CSS token hygiene
...
Command Center styles now rely on canonical muted text and shadow tokens.
- Replace deprecated --text-secondary usages in command center styles with --text-muted.
- Remove the raw rgba fallback from the date range popover shadow token.
- Document the command-center styling token requirements with FNXC comments.
Files changed:
.../app/components/command-center/CommandCenter.css | 13 +++++++++----
.../app/components/command-center/DateRangePicker.css | 8 ++++++--
.../components/command-center/MissionControlPanel.css | 11 ++++++++---
.../app/components/command-center/areas/areas.css | 19 ++++++++++++-------
.../app/components/command-center/charts/charts.css | 11 ++++++++---
5 files changed, 43 insertions(+), 19 deletions(-)
Fusion-Task-Id: FN-6609
Fusion-Task-Lineage: 8a02f4a3-a881-4db6-893e-363b74cbfba8
2026-06-17 18:54:24 -07:00
gsxdsm
1bd8f6de6f
FN-6603: fix mobile terminal font measurement
...
Stabilize terminal glyph measurement by keeping monospace text fonts ahead of symbols fallbacks.
- Move the Fusion Terminal Nerd Font Symbols face behind real monospace fonts in the shared xterm font stack and terminal presets.
- Document the mobile WebKit cell-measurement hazard and keep SessionTerminal aligned with the shared preference path.
- Add regression coverage for mobile wide-glyph spacing, preference presets, and terminal input rendering.
- Add a patch changeset for the published CLI bundle.
Files changed:
.changeset/fn-6603-terminal-render.md | 5 +++
.../xterm-symbols-nerd-font-unicode-range.md | 17 ++++++---
.../dashboard/app/__tests__/terminal-input.test.ts | 42 ++++++++++++++++++++--
.../dashboard/app/components/SessionTerminal.tsx | 3 ++
.../dashboard/app/components/TerminalModal.css | 5 ++-
.../__tests__/SessionTerminal.mobile.test.tsx | 22 +++++++++++-
.../components/__tests__/SessionTerminal.test.tsx | 23 ++++++++++--
.../dashboard/app/utils/terminalPreferences.ts | 14 +++++---
8 files changed, 115 insertions(+), 16 deletions(-)
Fusion-Task-Id: FN-6603
Fusion-Task-Lineage: b5d90064-1bfd-4da9-8d89-c95cf6fcec0c
2026-06-17 18:48:53 -07:00
gsxdsm
19aac38c51
FN-6605: load chat skill slash commands
...
Load dashboard chat slash-command skill requests into model-loop sessions.
- Parse /skill:{name} tokens in main chat, QuickChat, and room responders.
- Merge typed skill requests with existing agent and plugin skill selection while preserving normal filters.
- Strip slash-command tokens from model prompts without mutating persisted chat history.
- Cover slash-command parsing, deduplication, prompt stripping, and room responder skill selection.
- Document dashboard chat skill command behavior and add a published package changeset.
Files changed:
.changeset/fn-6605-chat-skill-slash-command.md | 5 +
docs/agents.md | 1 +
docs/dashboard-guide.md | 1 +
.../dashboard/src/__tests__/chat-manager.test.ts | 158 +++++++++++++++++++++
.../dashboard/src/__tests__/chat.rooms.test.ts | 46 ++++++
packages/dashboard/src/chat.ts | 100 ++++++++++++-
6 files changed, 307 insertions(+), 4 deletions(-)
Fusion-Task-Id: FN-6605
Fusion-Task-Lineage: 4ad2e015-30a5-4608-b69c-e42e46166f0e
2026-06-17 18:37:01 -07:00
gsxdsm
076ab9fed0
FN-6604: increase task chat send icon size
...
Increase the Task Detail chat send glyph so it is visibly larger on mobile without changing the touch target.
- Switch the task chat send button icon token from space-lg to space-xl for desktop and mobile rules.
- Add CSS token resolution coverage so the task chat send glyph must exceed the default medium icon size.
- Keep desktop and mobile send button touch target sizing unchanged.
Files changed:
packages/dashboard/app/components/TaskChatTab.css | 7 ++--
.../app/components/__tests__/TaskChatTab.test.tsx | 37 +++++++++++++++++++---
2 files changed, 38 insertions(+), 6 deletions(-)
Fusion-Task-Id: FN-6604
Fusion-Task-Lineage: d1708d43-fe1b-4eb2-ab6a-c5954ff00a87
2026-06-17 18:18:56 -07:00
gsxdsm
1d76e9d02c
FN-6602: delay scripted terminal input until PTY readiness
...
Wait for new terminal sessions to become ready before injecting saved-script commands.
- Add PTY readiness tracking with first-output, quiet-window, timeout, and cleanup resolution paths.
- Wait for readiness before messaging script routes write generated command input.
- Cover readiness timing, cleanup behavior, and route-level delayed write behavior with tests.
Files changed:
.../src/__tests__/scripts-routes.routes.test.ts | 54 ++++++++
.../src/__tests__/terminal-service.test.ts | 143 ++++++++++++++++++++-
.../src/routes/register-messaging-scripts.ts | 5 +
packages/dashboard/src/terminal-service.ts | 91 +++++++++++++
4 files changed, 292 insertions(+), 1 deletion(-)
Fusion-Task-Id: FN-6602
Fusion-Task-Lineage: a38a7222-ecb7-4567-9d47-946678088076
2026-06-17 18:08:55 -07:00
gsxdsm
ca14a12b94
FN-6601: consolidate relative-time bucket formatting
...
Consolidate dashboard relative-time calculations behind a shared bucket helper while preserving each surface's display behavior.
- Add getRelativeTimeBucket to centralize parsing, boundary math, and bucket metadata.
- Route ActivityFeed, AgentLogViewer, MissionManager, and PlanningModeModal timestamp labels through the shared helper.
- Extend unit coverage for bucket boundaries plus surface-specific just-now and future timestamp behavior.
Files changed:
packages/dashboard/app/components/ActivityFeed.tsx | 36 ++++++----
.../dashboard/app/components/AgentLogViewer.tsx | 36 ++++++----
.../dashboard/app/components/MissionManager.tsx | 32 +++++----
.../dashboard/app/components/PlanningModeModal.tsx | 35 ++++++----
.../app/components/__tests__/ActivityFeed.test.tsx | 8 +++
.../components/__tests__/AgentLogViewer.test.tsx | 8 +++
.../app/utils/__tests__/relativeTimeAgo.test.ts | 77 +++++++++++++++++++++-
packages/dashboard/app/utils/relativeTimeAgo.ts | 66 +++++++++++++++----
8 files changed, 236 insertions(+), 62 deletions(-)
Fusion-Task-Id: FN-6601
Fusion-Task-Lineage: 3521afa0-f3ce-49a4-8861-efd4f64f9a69
2026-06-17 17:57:19 -07:00
gsxdsm
5b9ff047d3
FN-6599: preserve chat thread during streaming attach
...
Keep existing chat history visible when attaching to an in-flight streaming response.
- Commit attach-triggered message loads for the streaming session before active session refs settle.
- Avoid clearing cached main chat messages on attach cache misses while fetching prior thread history.
- Add regression coverage for main chat and QuickChat streaming thread visibility, plus quarantine ledger updates.
Files changed:
.changeset/fn-6599-chat-streaming-thread.md | 5 +
docs/architecture.md | 1 +
docs/dashboard-guide.md | 2 +-
packages/core/vitest.config.ts | 1 +
.../__tests__/ChatView.streaming-thread.test.tsx | 168 +++++++++++++++++++++
.../dashboard/app/hooks/__tests__/useChat.test.ts | 51 +++++++
.../app/hooks/__tests__/useQuickChat.test.ts | 39 +++++
packages/dashboard/app/hooks/useChat.ts | 37 +++--
packages/dashboard/app/hooks/useQuickChat.ts | 27 ++--
scripts/lib/test-quarantine.json | 5 +
10 files changed, 307 insertions(+), 29 deletions(-)
Fusion-Task-Id: FN-6599
Fusion-Task-Lineage: b2c94391-6a5b-4048-836d-e4bc56e16786
2026-06-17 17:49:20 -07:00
gsxdsm
48da420414
FN-6593: delete unresolved flaky test quarantines
...
Delete unresolved quarantined flaky tests under the deletion ratchet while preserving newer active quarantines.
- Remove four flaky test files that were not rescued before the ratchet follow-up.
- Drop their matching Vitest excludes and quarantine ledger entries.
- Preserve later sync, work-bridge, and core quarantine records from main.
Files changed:
.../src/__tests__/github-tracking-hook.test.ts | 592 ---------------------
packages/dashboard/vitest.config.ts | 8 +-
.../src/__tests__/cli-agent-executor.test.ts | 404 --------------
packages/engine/vitest.config.ts | 5 +-
.../src/__tests__/orchestrator-flow.test.ts | 156 ------
.../src/__tests__/skill-wiring.test.ts | 101 ----
.../vitest.config.ts | 6 +-
scripts/lib/test-quarantine.json | 20 -
8 files changed, 13 insertions(+), 1279 deletions(-)
Fusion-Task-Id: FN-6593
Fusion-Task-Lineage: 1165ba24-894a-4cc9-b678-50ae1625ba6b
2026-06-17 17:37:08 -07:00
gsxdsm
822d5d1872
fix(FN-6587): stabilize test lanes under production env
...
Normalize spawned Vitest processes to NODE_ENV=test so React/jsdom lanes do not inherit release-shell production mode. Split the compound-engineering plugin Vitest projects so Node-only setup and teardown only run in Node lanes, and quarantine the remaining broad-lane CE timeout flakes under the deletion ratchet.
2026-06-17 17:13:13 -07:00
gsxdsm
01b80db603
FN-6589: add structured ask-question chat tool
...
Add a native chat-agent tool for presenting structured questions to dashboard users.
- Register `fn_ask_question` for dashboard chat sessions with prompt guidance to wait for user replies.
- Reuse the existing structured question card parser by recognizing the new tool name.
- Validate ask-question parameters in engine tooling and cover chat/parser behavior with tests.
- Document the dashboard chat question flow and add a patch changeset.
Files changed:
.changeset/fn-6589-chat-ask-question.md | 5 ++
docs/dashboard-guide.md | 3 +-
.../utils/__tests__/parseQuestionToolCall.test.ts | 19 +++++
.../dashboard/app/utils/parseQuestionToolCall.ts | 3 +-
.../dashboard/src/__tests__/chat-manager.test.ts | 10 ++-
packages/dashboard/src/chat.ts | 10 ++-
.../src/__tests__/agent-tools-ask-question.test.ts | 51 ++++++++++++
packages/engine/src/agent-tools.ts | 94 ++++++++++++++++++++++
packages/engine/src/index.ts | 2 +
9 files changed, 190 insertions(+), 7 deletions(-)
Fusion-Task-Id: FN-6589
Fusion-Task-Lineage: 3f416010-ed2f-40b3-a899-7a9f4a6ed265
2026-06-17 16:53:29 -07:00
gsxdsm
c261217ac1
FN-6597: add task chat timestamps
...
Show compact relative timestamps in task chat without adding live polling.
- Add a shared relative-time formatter for chat timestamps.
- Render muted timestamps on user message headers and agent group metadata.
- Cover timestamp formatting and chat header rendering with dashboard tests.
- Document task chat timestamp behavior in the dashboard guide.
Files changed:
docs/dashboard-guide.md | 2 +-
packages/dashboard/app/components/TaskChatTab.css | 19 +++++
packages/dashboard/app/components/TaskChatTab.tsx | 23 ++++-
.../app/components/__tests__/TaskChatTab.test.tsx | 97 +++++++++++++++++++++-
.../app/utils/__tests__/relativeTimeAgo.test.ts | 32 +++++++
packages/dashboard/app/utils/relativeTimeAgo.ts | 23 +++++
6 files changed, 192 insertions(+), 4 deletions(-)
Fusion-Task-Id: FN-6597
Fusion-Task-Lineage: 52c54a9e-6d00-4df1-a454-2218a935ebda
2026-06-17 16:21:54 -07:00
gsxdsm
98baddc3b6
FN-6595: fix mobile Command Center scrolling
...
Keep Command Center content scrollable inside the mobile dashboard shell.
- Let the Command Center fill the flex parent without forcing the page taller than the viewport.
- Make the tab panel the vertical scroll owner while keeping the header and tabs pinned.
- Add regression coverage for the scroll-owner contract across mobile and non-mobile breakpoints.
Files changed:
.../components/command-center/CommandCenter.css | 20 ++++++
.../__tests__/CommandCenter.mobile-scroll.test.tsx | 78 ++++++++++++++++++++++
2 files changed, 98 insertions(+)
Fusion-Task-Id: FN-6595
Fusion-Task-Lineage: 1d069dff-60af-4756-9ad4-27a48dad0e86
2026-06-17 15:49:06 -07:00
gsxdsm
e064becba5
FN-6583: reject dangling workflow edges
...
Workflow validation now rejects unresolved graph endpoints before editor evidence can miss fail-closed gaps.
- Validate every top-level workflow edge source and target against declared nodes.
- Cover dangling source and target endpoints while preserving valid linear and rework-region edges.
- Add desktop compact-graph cycle rejection coverage for the workflow editor toast path.
Files changed:
packages/core/src/__tests__/workflow-ir.test.ts | 80 ++++++++++++++++++++++
packages/core/src/workflow-ir.ts | 17 +++++
.../__tests__/WorkflowNodeEditor.test.tsx | 22 ++++++
3 files changed, 119 insertions(+)
Fusion-Task-Id: FN-6583
Fusion-Task-Lineage: 24bcb426-1c98-408d-9a50-562911143231
2026-06-17 14:56:07 -07:00
gsxdsm
9eff4d424e
FN-6574: repair TaskDetailModal definition test lanes
...
Repair TaskDetailModal tests so Definition-surface assertions remain valid after Chat became the default tab.
- Add regression coverage for explicitly opening the Definition tab while the default tab remains Chat.
- Set definition-focused TaskDetailModal test renders to use initialTab="definition" across the split dashboard lanes.
- Document why Definition-only assertions opt into the Definition tab after the Chat-default-tab change.
Files changed:
.../TaskDetailModal.attachments-and-tabs.test.tsx | 33 +++++++++
...TaskDetailModal.github-tracking-header.test.tsx | 5 ++
.../TaskDetailModal.github-tracking-stale.test.tsx | 11 +++
...lModal.inline-editing-and-integrations.test.tsx | 83 ++++++++++++++++++++++
...skDetailModal.models-progress-workflow.test.tsx | 33 +++++++++
.../__tests__/TaskDetailModal.rendering.test.tsx | 73 +++++++++++++++++++
...etailModal.responsive-and-dependencies.test.tsx | 37 ++++++++++
.../components/__tests__/TaskDetailModal.test.tsx | 17 +++++
8 files changed, 292 insertions(+)
Fusion-Task-Id: FN-6574
Fusion-Task-Lineage: f8d5e038-058a-4d12-8384-2ef603988e3a
2026-06-17 14:52:56 -07:00
gsxdsm
c94fb194c4
FN-6584: keep title summarizer out of workflow lanes
...
Clarify that title summarization remains project/global-scoped instead of a workflow model lane.
- Remove title summarizer entries from the workflow model lane catalog and display grouping.
- Add regression coverage for dashboard workflow settings and core built-in workflow setting parity.
- Update settings documentation to point title summarizer configuration at Project Models.
Files changed:
docs/settings-reference.md | 29 +++++++++++++--------
.../core/src/__tests__/settings-parity.test.ts | 6 +++++
.../app/components/WorkflowSettingsPanel.tsx | 22 +++++-----------
.../__tests__/WorkflowSettingsPanel.test.tsx | 30 +++++++++++++++++++++-
.../__tests__/workflow-setting-display.test.ts | 24 +++++++++++++++++
.../app/components/workflow-setting-display.ts | 12 +++------
6 files changed, 87 insertions(+), 36 deletions(-)
Fusion-Task-Id: FN-6584
Fusion-Task-Lineage: 2246213d-8775-4074-ae8e-04b9afe28f96
2026-06-17 14:52:56 -07:00
gsxdsm
484f016334
FN-6576: align chat send touch dedupe
...
Align the direct and room chat mobile send controls around the same pointer/touch dedupe contract.
- Add a per-gesture touch action latch separate from the trailing synthetic-click latch.
- Apply the two-latch handling to direct send, room send, and send-to-stop transitions.
- Cover repeated iOS taps, pointer/touch/click dedupe, and stop-button swap behavior in ChatView tests.
- Document the shared mobile send dedupe behavior for direct and room chat.
Files changed:
docs/dashboard-guide.md | 2 +-
packages/dashboard/app/components/ChatView.tsx | 70 ++++++++---
.../components/__tests__/ChatView.rooms.test.tsx | 30 +++++
.../app/components/__tests__/ChatView.test.tsx | 132 +++++++++++++++++++++
4 files changed, 215 insertions(+), 19 deletions(-)
Fusion-Task-Id: FN-6576
Fusion-Task-Lineage: b8ef427f-99f0-48d8-8cb8-d72ac352bdeb
2026-06-17 14:52:55 -07:00
gsxdsm
9cfa6d8176
FN-6578: keep sent chat messages at transcript tail
...
Ensure task-detail chat places newly sent user steering immediately after current transcript output and before later agent replies.
- Clamp optimistic user message timestamps after the latest transcript entry to handle client/server clock skew.
- Preserve the clamped display timestamp when reconciling persisted steering comments to avoid jumps or duplicates.
- Cover in-progress, in-review, done/refinement, desktop, mobile, and persisted reconciliation chat ordering cases.
Files changed:
packages/dashboard/app/components/TaskChatTab.tsx | 28 +++--
.../app/components/__tests__/TaskChatTab.test.tsx | 117 +++++++++++++++++++++
2 files changed, 138 insertions(+), 7 deletions(-)
Fusion-Task-Id: FN-6578
Fusion-Task-Lineage: d9ba03c7-e151-41b6-9b00-87d5732f2fab
2026-06-17 14:52:55 -07:00
gsxdsm
593ebac85c
FN-6573: guard task-list formatter resolution
...
Make fn_task_list surfaces tolerate stale core runtimes without crashing.
- Resolve formatTaskListText from the runtime @fusion/core namespace with a typeof guard.
- Add bounded inline fallback formatting for CLI, dashboard planning-board, and engine triage task-list tools.
- Cover missing formatter exports with regression tests and add a published package changeset.
Files changed:
.changeset/fn-6573-task-list-format-resolve-fix.md | 5 +++
packages/cli/src/__tests__/extension.test.ts | 25 +++++++++------
packages/cli/src/extension.ts | 36 ++++++++++++++++++++--
.../src/__tests__/planning-board-tools.test.ts | 27 +++++++++++++++-
packages/dashboard/src/planning-board-tools.ts | 36 ++++++++++++++++++++--
packages/engine/src/__tests__/triage.test.ts | 25 +++++++++++++++
packages/engine/src/triage.ts | 36 ++++++++++++++++++++--
7 files changed, 174 insertions(+), 16 deletions(-)
Fusion-Task-Id: FN-6573
Fusion-Task-Lineage: 64577f09-5ca5-426e-a453-a91e6c2c3aee
2026-06-17 14:52:55 -07:00
gsxdsm
265d9ec4d3
FN-6572: refresh boards after workflow changes
...
Workflow changes now notify open task views to re-home cards across workflow lanes promptly.
- Emit workflow update SSE events when selecting or clearing a task workflow.
- Refresh task detail board data for any workflow reconciliation result, including preserved columns.
- Cover board, list, route, and workflow results behavior with regression tests.
- Add a patch changeset for the published Fusion package.
Files changed:
.changeset/FN-6572-workflow-switch-lane-move.md | 5 ++
.../app/components/WorkflowResultsTab.tsx | 14 ++--
.../app/components/__tests__/Board.test.tsx | 50 ++++++++++++++
.../app/components/__tests__/ListView.test.tsx | 62 ++++++++++++++++++
.../__tests__/WorkflowResultsTab.test.tsx | 72 +++++++++++++++-----
.../src/__tests__/workflow-routes.test.ts | 76 +++++++++++++++++++++-
.../src/routes/register-workflow-routes.ts | 8 ++-
7 files changed, 260 insertions(+), 27 deletions(-)
Fusion-Task-Id: FN-6572
Fusion-Task-Lineage: c2a9d5a8-6aba-4bce-991f-4a36b941a56f
2026-06-17 14:52:55 -07:00
gsxdsm
8037ef15a3
Merge main into feature/factory-view: reconcile lazy-view inventory to 23
...
Resolves conflicts in the lazy-loaded heavy-views inventory. main independently
grew the curated list to 22 (adding AppModals lazy modals); this branch added the
Command Center view. Combined count is 23 — updated the AGENTS.md prose/inventory
and the lazy-loaded-views-docs test contract (count + length assertions) to 23,
keeping main's richer "App-level and AppModals" wording.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-17 11:46:31 -07:00
gsxdsm
a84a8e1793
FN-6570: guard task list formatting fallback
...
Prevent fn_task_list surfaces from crashing when the runtime core namespace lacks the clamp export.
- Add a shared defensive task-list formatter with a bounded fallback clamp.
- Route CLI, dashboard planning-board, and engine triage fn_task_list output through the formatter.
- Cover missing, throwing, and non-string clamp behavior in core and CLI tests.
- Document the resilient task-list formatting behavior and add a patch changeset.
Files changed:
.changeset/fn-6570-task-list-resolve-fix.md | 5 ++
docs/cli-reference.md | 2 +-
packages/cli/src/__tests__/extension.test.ts | 57 +++++++++++++++++++++-
packages/cli/src/extension.ts | 8 ++-
.../core/src/__tests__/task-list-format.test.ts | 49 ++++++++++++++++++-
packages/core/src/index.ts | 2 +-
packages/core/src/task-list-format.ts | 35 +++++++++++++
packages/dashboard/src/planning-board-tools.ts | 8 ++-
packages/engine/src/triage.ts | 8 ++-
9 files changed, 164 insertions(+), 10 deletions(-)
Fusion-Task-Id: FN-6570
Fusion-Task-Lineage: 455f38a8-5e4f-4643-a3ce-088ef0c92b01
2026-06-17 06:14:10 -07:00
gsxdsm
e2a3a37b26
FN-6569: make auto-merge retry cap configurable
...
Adds a project setting that controls how many auto-merge conflict retries run before recovery paths give up.
- Add maxAutoMergeRetries to project settings defaults, schema, types, and dashboard controls.
- Resolve the retry cap in engine merge handling, self-healing recovery, stall detection, and blocker fanout logic.
- Cover custom retry caps with core, dashboard, and engine regression tests.
Files changed:
.changeset/fn-6569-max-auto-merge-retries.md | 5 ++
docs/architecture.md | 2 +-
docs/settings-reference.md | 1 +
.../core/src/__tests__/settings-defaults.test.ts | 12 ++++
packages/core/src/in-review-stall.ts | 16 ++++-
packages/core/src/index.ts | 1 +
packages/core/src/settings-schema.ts | 6 ++
packages/core/src/task-priority.ts | 4 +-
packages/core/src/types.ts | 8 +++
.../dashboard/app/components/SettingsModal.tsx | 8 +++
.../components/settings/sections/MergeSection.tsx | 26 +++++++
.../app/hooks/__tests__/useBlockerFanout.test.ts | 5 +-
packages/dashboard/app/hooks/useBlockerFanout.ts | 3 +-
.../auto-merge-retry-cap-settings.test.ts | 79 ++++++++++++++++++++++
packages/engine/src/project-engine.ts | 77 +++++++++++++--------
packages/engine/src/self-healing.ts | 30 +++++---
16 files changed, 236 insertions(+), 47 deletions(-)
Fusion-Task-Id: FN-6569
Fusion-Task-Lineage: 42242d6a-68bc-41f1-b2d9-af2e6f168eed
2026-06-17 04:51:31 -07:00
gsxdsm
4f5c83e09b
FN-6526: add start node entry column inspector
...
Expose the workflow start node's editable entry column through the node inspector.
- Allow the workflow editor inspector to open for start nodes while keeping end nodes structural-only.
- Add a localized entry-column selector and explanatory copy for start nodes.
- Cover start-node inspector behavior and IR column mapping with regression tests.
- Update dashboard workflow editor documentation for start-node editing.
Files changed:
docs/dashboard-guide.md | 2 +-
.../app/components/WorkflowNodeEditor.tsx | 57 ++++++++---
.../__tests__/WorkflowNodeEditor.test.tsx | 106 ++++++++++++++++++++-
.../__tests__/workflow-flow-mapping.test.ts | 13 +++
packages/i18n/locales/en/app.json | 3 +
packages/i18n/locales/es/app.json | 3 +
packages/i18n/locales/fr/app.json | 3 +
packages/i18n/locales/ko/app.json | 3 +
packages/i18n/locales/zh-CN/app.json | 3 +
packages/i18n/locales/zh-TW/app.json | 3 +
10 files changed, 178 insertions(+), 18 deletions(-)
Fusion-Task-Id: FN-6526
Fusion-Task-Lineage: 0195e29b-9cd2-4663-8ad4-30805313ac5f
2026-06-17 03:53:51 -07:00
gsxdsm
257f636642
FN-6537: launch quick scripts in dedicated tabs
...
Quick script runs now open isolated terminal sessions before executing commands.
- Track quick-script invocation generations so rerunning the same command dispatches again.
- Create a fresh terminal tab for every initial command instead of reusing the active shell.
- Cover fresh-open, already-open, same-command rerun, multi-tab, and reopen flows with tests.
- Document that saved scripts launch in dedicated terminal tabs.
Files changed:
packages/dashboard/README.md | 4 +-
packages/dashboard/app/components/AppModals.tsx | 1 +
.../dashboard/app/components/TerminalModal.tsx | 46 ++-
.../app/components/__tests__/AppModals.test.tsx | 1 +
.../components/__tests__/TerminalModal.test.tsx | 339 +++++++++++++++++----
.../app/hooks/__tests__/useModalManager.test.ts | 9 +
packages/dashboard/app/hooks/useModalManager.ts | 4 +
7 files changed, 321 insertions(+), 83 deletions(-)
Fusion-Task-Id: FN-6537
Fusion-Task-Lineage: 7abd60f9-626d-4867-a846-04a444e6d415
2026-06-17 03:47:42 -07:00
gsxdsm
4bfb6b46ad
FN-6528: add selection comments for new tasks
...
Adds a text-selection comment flow that opens New Task with source context.
- Add a reusable selection comment hook and popover for editor/document text selections.
- Thread selected-file and line-range context into the New Task modal.
- Enable comment-on-selection entry points in file editor, browser, documents, and memory surfaces.
- Cover the selection flow with focused component and hook tests, plus docs and copy updates.
Files changed:
docs/dashboard-guide.md | 6 +-
packages/dashboard/app/App.tsx | 7 +-
packages/dashboard/app/components/AppModals.tsx | 2 +
.../dashboard/app/components/DocumentsView.tsx | 25 ++-
.../dashboard/app/components/FileBrowserModal.tsx | 3 +
packages/dashboard/app/components/FileEditor.tsx | 35 +++-
packages/dashboard/app/components/MemoryView.tsx | 5 +-
packages/dashboard/app/components/NewTaskModal.tsx | 15 +-
.../app/components/SelectionCommentPopover.css | 73 +++++++++
.../app/components/SelectionCommentPopover.tsx | 181 +++++++++++++++++++++
.../components/__tests__/DocumentsView.test.tsx | 59 +++++++
.../components/__tests__/FileBrowserModal.test.tsx | 79 +++++++++
.../app/components/__tests__/FileEditor.test.tsx | 60 +++++++
.../app/components/__tests__/MemoryView.test.tsx | 48 +++++-
.../app/components/__tests__/NewTaskModal.test.tsx | 17 ++
.../__tests__/SelectionCommentPopover.test.tsx | 75 +++++++++
.../app/hooks/__tests__/useModalManager.test.ts | 29 ++++
.../hooks/__tests__/useSelectionComment.test.ts | 140 ++++++++++++++++
packages/dashboard/app/hooks/useModalManager.ts | 19 ++-
.../dashboard/app/hooks/useSelectionComment.ts | 95 +++++++++++
packages/i18n/locales/en/app.json | 11 ++
21 files changed, 973 insertions(+), 11 deletions(-)
Fusion-Task-Id: FN-6528
Fusion-Task-Lineage: ef79e450-e69f-497b-97cd-f82d3c832fdf
2026-06-17 03:29:39 -07:00
gsxdsm
66be2624fd
FN-6563: align room send tap dedupe
...
Align the chat room composer send button with direct chat's mobile tap handling.
- Dispatch room sends from touch pointer/touchstart paths when mobile browsers suppress click events.
- Consume duplicate synthetic click events so touch gestures send exactly once while desktop clicks still work.
- Cover iOS, Android, desktop, and room-to-direct routing parity in room chat tests.
- Document the mobile room composer send-button dedupe contract.
Files changed:
docs/dashboard-guide.md | 1 +
packages/dashboard/app/components/ChatView.tsx | 21 +++--
.../components/__tests__/ChatView.rooms.test.tsx | 90 ++++++++++++++++++++++
3 files changed, 104 insertions(+), 8 deletions(-)
Fusion-Task-Id: FN-6563
Fusion-Task-Lineage: 9abd1e29-1b25-4105-9326-5e479f5cb5e5
2026-06-17 03:23:47 -07:00
gsxdsm
7b3c628fba
FN-6524: add simple editor step reordering
...
Enable custom workflow authors to reorder simple editor steps from the mobile graph outline.
- Add move up/down controls for editable outline rows while keeping built-in workflows read-only.
- Swap sibling React Flow positions within columns or template parents so persisted order follows existing graph ordering.
- Cover reorder availability, behavior, styling, and documentation updates.
Files changed:
docs/dashboard-guide.md | 2 +-
.../app/components/MobileWorkflowGraphView.css | 17 ++-
.../app/components/MobileWorkflowGraphView.tsx | 134 +++++++++++++++------
.../app/components/WorkflowNodeEditor.tsx | 20 ++-
.../__tests__/MobileWorkflowGraphView.css.test.ts | 8 +-
.../__tests__/MobileWorkflowGraphView.test.tsx | 123 ++++++++++++++++++-
.../__tests__/workflow-mobile-graph.test.ts | 75 +++++++++++-
.../app/components/workflow-mobile-graph.ts | 41 +++++++
8 files changed, 372 insertions(+), 48 deletions(-)
Fusion-Task-Id: FN-6524
Fusion-Task-Lineage: 25ffa5aa-bdfb-4ee3-9365-07029f5bbbf6
2026-06-17 03:12:16 -07:00
gsxdsm
550715d10c
FN-6518: focus Quick Chat composer on open
...
Quick Chat now places keyboard focus in the composer whenever the panel opens without stealing existing external focus.
- Focus the Quick Chat composer after open on both desktop and mobile viewports.
- Preserve the existing mobile stealth-input handoff while letting desktop use the ready-state focus path.
- Add regression coverage for desktop, delayed session readiness, mobile handoff, and external focus preservation.
- Document the updated Quick Chat focus behavior and add a patch changeset.
Files changed:
.changeset/fn-6518-quick-chat-focus.md | 5 +
docs/dashboard-guide.md | 2 +-
packages/dashboard/app/components/QuickChatFAB.tsx | 6 +-
.../app/components/__tests__/QuickChatFAB.test.tsx | 102 +++++++++++++++++++++
4 files changed, 113 insertions(+), 2 deletions(-)
Fusion-Task-Id: FN-6518
Fusion-Task-Lineage: 9fdaba17-e3f4-4269-91d9-aaad152c2ab1
2026-06-17 03:07:05 -07:00
gsxdsm
4a9fe9957d
FN-6504: allow attachment-only chat sends
...
Allow chat composers and API routes to deliver attachment-only messages without placeholder text.
- Permit main chat sends when staged attachments exist even if the textarea is blank.
- Accept upload-backed and referenced attachment-only payloads in chat and room message routes while still rejecting fully empty messages.
- Add UI/API regression coverage, documentation, and a patch changeset for attachment-only chat sends.
Files changed:
.changeset/fn-6504-attachment-only-send.md | 5 ++
docs/dashboard-guide.md | 1 +
packages/dashboard/app/components/ChatView.tsx | 72 ++++++++++++++++++++--
.../app/components/__tests__/ChatView.test.tsx | 39 ++++++++++++
.../src/__tests__/chat-attachment-routes.test.ts | 24 +++++++-
.../src/__tests__/chat-routes.rooms.test.ts | 62 +++++++++++++------
.../src/routes/register-chat-room-routes.ts | 13 +++-
.../dashboard/src/routes/register-chat-routes.ts | 21 ++++---
8 files changed, 205 insertions(+), 32 deletions(-)
Fusion-Task-Id: FN-6504
Fusion-Task-Lineage: f64f7874-4e32-4ae5-a5b1-d8c4b78e23dd
2026-06-17 02:39:36 -07:00
gsxdsm
a998f63242
FN-6523: add mobile workflow connection picker
...
Adds a touch-friendly path for creating workflow edges from the mobile editor.
- Add mobile node Connect controls with a target picker that delegates to the existing edge validation path.\n- Surface duplicate-edge feedback and select newly created mobile edges for editing.\n- Document the mobile connection flow, add regression coverage, register locale strings, and add the required changeset.\n\nFiles changed:\n .changeset/fn-6523-mobile-workflow-connect.md | 5 +\n docs/workflow-editor.md | 2 +-\n .../app/components/MobileWorkflowGraphView.css | 67 ++++++++++--\n .../app/components/MobileWorkflowGraphView.tsx | 76 ++++++++++++--\n .../app/components/WorkflowNodeEditor.tsx | 69 +++++++++++--\n .../__tests__/WorkflowNodeEditor.test.tsx | 114 +++++++++++++++++++++\n .../app/components/workflow-mobile-graph.ts | 7 ++\n packages/i18n/locales/en/app.json | 4 +\n packages/i18n/locales/es/app.json | 4 +\n packages/i18n/locales/fr/app.json | 4 +\n packages/i18n/locales/ko/app.json | 4 +\n packages/i18n/locales/zh-CN/app.json | 4 +\n packages/i18n/locales/zh-TW/app.json | 4 +\n 13 files changed, 342 insertions(+), 22 deletions(-)
Fusion-Task-Id: FN-6523
Fusion-Task-Lineage: 23b32826-278f-4230-a49c-22755ee700cc
2026-06-17 02:06:32 -07:00
gsxdsm
448ac6ab52
FN-6533: persist markdown preview preference
...
Remember the file viewer markdown Edit/Preview selection across editable mounts and browser sessions.
- Add localStorage-backed boolean preference helpers for the markdown preview toggle.
- Initialize editable markdown files from the stored preference while preserving the default edit mode.
- Cover persistence, read-only preview behavior, non-markdown files, and unavailable storage with FileEditor tests.
Files changed:
packages/dashboard/app/components/FileEditor.tsx | 32 +++++++-
.../app/components/__tests__/FileEditor.test.tsx | 90 +++++++++++++++++++++-
2 files changed, 120 insertions(+), 2 deletions(-)
Fusion-Task-Id: FN-6533
Fusion-Task-Lineage: 54cfa3fa-56a3-4db8-85a2-5545e0fa16aa
2026-06-17 01:51:11 -07:00
gsxdsm
914842fb4f
FN-6532: make Chat the default task detail tab
...
Chat now opens first in task detail while explicit tab entrypoints continue to work.
- Default task detail modal state and open-detail calls to the Chat tab.
- Reorder the task detail tab strip so Chat appears before Definition.
- Extend modal and tab tests to cover Chat-first defaults and explicit tab preservation.
- Add a patch changeset for the published Fusion package.
Files changed:
.changeset/fn-6532-chat-first-task-detail.md | 5 ++
.../dashboard/app/components/TaskDetailModal.tsx | 24 ++++---
.../app/components/__tests__/AppModals.test.tsx | 2 +-
.../TaskDetailModal.attachments-and-tabs.test.tsx | 81 +++++++++++++++++-----
.../TaskDetailModal.definition-actions.test.tsx | 77 ++++++++++++++++----
.../app/hooks/__tests__/useModalManager.test.ts | 4 +-
packages/dashboard/app/hooks/useModalManager.ts | 13 +++-
7 files changed, 162 insertions(+), 44 deletions(-)
Fusion-Task-Id: FN-6532
Fusion-Task-Lineage: 7824f253-2a54-4e2d-af64-ed082ce8fbf9
2026-06-17 01:45:36 -07:00
gsxdsm
d7a9dfe398
FN-6530: Show only title column by default
...
List view now starts with a title-only table while preserving column toggle customization.
- Set the first-run default visible column set to Title only.
- Keep all optional column toggles available and saved preferences authoritative.
- Update ListView tests for title-only defaults, bulk-edit spans, and title hiding flows.
Files changed:
packages/dashboard/app/components/ListView.tsx | 6 +-
.../app/components/__tests__/ListView.test.tsx | 87 ++++++++++++++--------
2 files changed, 61 insertions(+), 32 deletions(-)
Fusion-Task-Id: FN-6530
Fusion-Task-Lineage: 7838b5fa-2424-4fb6-9e80-7806aaf6eeb3
2026-06-17 01:39:31 -07:00
gsxdsm
d0de886f11
FN-6529: reduce list task active highlights
...
List-view active task rows now use a calmer static highlight instead of the animated glow.
- Replace desktop list-row glow animation with a subtle background and inset border.
- Match the mobile list-card active styling to the toned-down static highlight.
- Rename the ListView test case to document the expected static highlight styling.
Files changed:
packages/dashboard/app/components/ListView.css | 16 ++++++++--------
.../dashboard/app/components/__tests__/ListView.test.tsx | 2 +-
2 files changed, 9 insertions(+), 9 deletions(-)
Fusion-Task-Id: FN-6529
Fusion-Task-Lineage: 67286eee-0360-41dd-be78-592b40eb5bee
2026-06-17 01:34:40 -07:00