Commit Graph

91 Commits

Author SHA1 Message Date
gsxdsm
29530b5fdb FN-6967: widen tablet agent chat bubbles
Improve tablet Chat readability by widening agent-side response bubbles without expanding user or Quick Chat bubbles.

- Add a ChatView container query that widens assistant, streaming, and failure bubbles on tablet-width containers.
- Cover the targeted bubble classes and CSS width contract in ChatView tests.
- Document the tablet behavior and add a structured patch changeset for the published CLI bundle.

Files changed:
 .changeset/fn-6967-tablet-chat-bubble-width.md     |  7 +++
 docs/dashboard-guide.md                            |  3 +-
 packages/dashboard/app/components/ChatView.css     | 12 +++++
 .../app/components/__tests__/ChatView.test.tsx     | 56 ++++++++++++++++++++++
 4 files changed, 77 insertions(+), 1 deletion(-)

Fusion-Task-Id: FN-6967
Fusion-Task-Lineage: 74195885-4ec0-4fc9-b628-0b0510129026
2026-06-24 23:32:52 -07:00
gsxdsm
4fd8d444fb fix(dashboard): polish app chrome and workflow defaults 2026-06-22 18:21:06 -07:00
gsxdsm
45842a3318 fix(dashboard): move header to overview 2026-06-22 16:21:03 -07:00
gsxdsm
ce6c0fb0b0 fix(dashboard): align view headers and toolbars 2026-06-22 16:01:31 -07:00
gsxdsm
a1cac3a6a3 fix(dashboard): replace quick chat with modal chat 2026-06-22 15:23:43 -07:00
gsxdsm
ee9c8ab7d5 fix(dashboard): align view headers and pane spacing 2026-06-22 12:43:32 -07:00
gsxdsm
4850e4309e fix(dashboard): apply code-review fixes + live UI tweaks
Code review (8 reviewers) fixes:
- P1: embedded board task-detail now passes onRequestClose so delete/merge/retry dismiss the panel (no ghost task).
- P1: RightDock + TerminalModal drag handlers add pointercancel + unmount teardown (no leaked document listeners / rAF / stuck userSelect); remove dead onOpenChange prop.
- Planning slot DOM-poll interval now caps (self-cancels on mobile); heartbeat slider persist debounced + mounted-guarded.
- Cleanup: remove dead ViewHeader-migration CSS (Skills/Insights), extract shared GithubIcon, move Activity Log embedded CSS to ActivityLogModal.css, FNXC date-format fixes, AGENTS lazy-view note.
- Update stale RightDock roster tests + LeftSidebarNav 'Compound Eng' test to current behavior.

Live UI tweaks:
- Default load lands on board, never the Command Center Dashboard.
- View Board/View Agents moved to the Command Center Overview tab (under the live-activity strip).
- Heartbeat card full-width with spaced, wrapping controls.
- Dev Server panel scrolls in the dock; ChatView right-pane title takes the full line.
- Files pop-out renders deterministic left-right two-pane.
- Mailbox list pane narrower + narrow by default; Add Goal button height matches the Compound stage button; Memory Working-Memory tab no longer overlaps; Skills view fills full width.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-22 03:57:10 -07:00
gsxdsm
87e87a8f1a FN-6693: enforce dashboard CSS token references
Extend the dashboard CSS token guard and replace stale custom-property references with defined design tokens.

- Add a dashboard-wide CSS token validity test that scans component/app CSS for undefined custom-property references.
- Include dashboard CSS tests in the dashboard Vitest config and document the guard in testing guidance.
- Remap undefined CSS variables across dashboard components and command-center styles to existing semantic or local tokens.

Files changed:
 docs/testing.md                                    |   3 +
 .../dashboard-css-token-validity.css.test.ts       | 165 +++++++++++++++++++++
 .../dashboard/app/components/ActiveAgentsPanel.css |  10 +-
 .../dashboard/app/components/AgentLogViewer.css    |   2 +-
 .../app/components/AgentReflectionsTab.css         |  10 +-
 packages/dashboard/app/components/AgentsView.css   |   6 +-
 .../dashboard/app/components/BranchGroupCard.css   |   6 +-
 packages/dashboard/app/components/ChatView.css     |  12 +-
 .../app/components/CliBinaryInstallBanner.css      |   2 +-
 .../dashboard/app/components/CliBinaryPanel.css    |   2 +-
 .../app/components/ConversationHistory.css         |  12 +-
 .../dashboard/app/components/DashboardLoader.css   |   2 +-
 .../dashboard/app/components/DesktopLaunchGate.css |   4 +-
 .../dashboard/app/components/DirectoryPicker.css   |   2 +-
 .../dashboard/app/components/FileMentionPopup.css  |   4 +-
 .../dashboard/app/components/GitHubImportModal.css |  10 +-
 packages/dashboard/app/components/GoalsView.css    |   2 +-
 .../dashboard/app/components/GroupTaskModal.css    |  18 +--
 packages/dashboard/app/components/InsightsView.css |  10 +-
 packages/dashboard/app/components/Lane.css         |   8 +-
 .../dashboard/app/components/LanguageSelector.css  |   8 +-
 packages/dashboard/app/components/MailboxModal.css |  62 ++++----
 .../app/components/MergeAdvanceNotice.css          |   2 +-
 .../dashboard/app/components/MissionManager.css    |  10 +-
 .../app/components/MobileWorkflowGraphView.css     |   2 +-
 .../app/components/ModelOnboardingModal.css        |  12 +-
 .../app/components/OnboardingDisclosure.css        |   4 +-
 .../dashboard/app/components/PlanningModeModal.css |   2 +-
 .../dashboard/app/components/PluginManager.css     |  58 ++++----
 .../components/PostOnboardingRecommendations.css   |   4 +-
 .../dashboard/app/components/PullRequestView.css   |  32 ++--
 packages/dashboard/app/components/QuickChatFAB.css |   4 +-
 .../dashboard/app/components/QuickEntryBox.css     |   6 +-
 .../dashboard/app/components/ReliabilityView.css   |   6 +-
 packages/dashboard/app/components/ScriptsModal.css |  34 ++---
 .../dashboard/app/components/SessionTerminal.css   |  28 ++--
 .../dashboard/app/components/SettingsModal.css     |   6 +-
 .../dashboard/app/components/SkillMultiselect.css  |   2 +-
 packages/dashboard/app/components/TaskCard.css     |  24 +--
 .../dashboard/app/components/TaskDocumentsTab.css  |   8 +-
 .../dashboard/app/components/TaskFieldsSection.css |  20 +--
 .../dashboard/app/components/TerminalModal.css     |  22 +--
 .../app/components/WorkflowFieldsPanel.css         |   6 +-
 .../app/components/WorkflowNodeEditor.css          |  30 ++--
 .../dashboard/app/components/WorkspaceSelector.css |   2 +-
 .../components/command-center/CommandCenter.css    | 106 ++++++-------
 .../components/command-center/DateRangePicker.css  |  18 +--
 .../command-center/MissionControlPanel.css         |  14 +-
 .../app/components/command-center/SdlcFunnel.css   |   2 +-
 .../command-center/areas/SystemStatsArea.css       |  24 +--
 .../app/components/command-center/areas/areas.css  |  62 ++++----
 .../components/command-center/charts/charts.css    | 104 ++++++-------
 packages/dashboard/vitest.config.ts                |   1 +
 53 files changed, 592 insertions(+), 423 deletions(-)

Fusion-Task-Id: FN-6693

Fusion-Task-Lineage: e9ccf3e6-fee9-47e0-9474-7b5580adbf31
2026-06-19 04:27:01 -07:00
gsxdsm
def4bd9464 FN-6499: add chat session rename controls
Adds regular Chat and Quick Chat rename flows backed by optimistic session title updates.

- Add rename actions to the regular Chat desktop context menu and mobile session switcher.
- Add Quick Chat session-row rename controls and show custom active titles in the panel header.
- Share PATCH title updates through chat hooks with null titles clearing custom names.
- Cover rename success, clearing, and rollback behavior in hook and component tests.
- Document the rename behavior and add a patch changeset for the published CLI bundle.

Files changed:
 .changeset/chat-session-rename.md                  |   5 +
 docs/dashboard-guide.md                            |   2 +
 packages/dashboard/app/api/legacy.ts               |   2 +-
 packages/dashboard/app/components/ChatView.css     |  44 ++++++++
 packages/dashboard/app/components/ChatView.tsx     | 111 +++++++++++++++++--
 packages/dashboard/app/components/QuickChatFAB.css |  69 ++++++++++++
 packages/dashboard/app/components/QuickChatFAB.tsx | 117 ++++++++++++++++++---
 .../app/components/__tests__/ChatView.test.tsx     | 108 +++++++++++++++++++
 .../app/components/__tests__/QuickChatFAB.test.tsx |  25 +++++
 .../dashboard/app/hooks/__tests__/useChat.test.ts  | 108 +++++++++++++++++++
 .../app/hooks/__tests__/useQuickChat.test.ts       | 109 +++++++++++++++++++
 packages/dashboard/app/hooks/useChat.ts            |  48 +++++++++
 packages/dashboard/app/hooks/useQuickChat.ts       |  50 +++++++++
 13 files changed, 773 insertions(+), 25 deletions(-)

Fusion-Task-Id: FN-6499
Fusion-Task-Lineage: f9f15b02-1590-46f4-b6f5-140a9ade30eb
2026-06-16 22:44:16 -07:00
gsxdsm
d0bbca4fa9 FN-6309: remove Chat active edge highlights
Refine Chat active-state styling by dropping edge highlights while preserving active tints.

- Remove the scope-tab active bottom underline shadow.
- Remove the active chat-row left border and compensating padding offset.
- Add CSS contract coverage to prevent the removed desktop and mobile highlights from returning.

Files changed:
 packages/dashboard/app/components/ChatView.css     |  3 --
 .../app/components/__tests__/ChatView.test.tsx     | 47 ++++++++++++++++++++++
 2 files changed, 47 insertions(+), 3 deletions(-)

Fusion-Task-Id: FN-6309
Fusion-Task-Lineage: e6645f38-a77c-4426-900b-71334d2145a9
2026-06-12 18:34:46 -07:00
gsxdsm
cbc315772e fix: keep iOS mobile chat keyboard up and reopen Quick Chat FAB
Two iOS Safari-specific fixes for mobile chat:

- ChatView: the main chat keyboard collapsed the instant it opened
  because .chat-thread--keyboard-active declared transform/will-change in
  CSS, keeping a non-none transform on an ancestor of the focused
  composer textarea. iOS blurs a focused input when an ancestor
  establishes a transform containing block. Drive the drift transform in
  JS only when iOS actually shifts the viewport (offsetTop > 0); the
  ancestor stays transform:none on focus so the keyboard stays up.

- QuickChatFAB: the FAB never opened on iPhone because the drag hook
  calls setPointerCapture() in pointerdown, which makes WebKit swallow
  the synthetic click. Fire the open/close toggle from the drag hook's
  pointerup on a tap (a real gesture, so stealth-input focus still raises
  the keyboard); keep onClick for mouse/tests with a timer-cleared dedupe.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-12 08:45:27 -07:00
gsxdsm
1c2b68386b FN-6210: cap chat sidebar width during keyboard flicker
Keep the chat sidebar bounded when tablet keyboard viewport changes briefly report mobile sizing.

- Add a desktop max-width guard to the chat sidebar with a mobile override.
- Cover simulated tablet keyboard viewport-mode flicker in the mobile render tests.
- Document the ChatView sidebar defense alongside the tablet viewport-mode solution.

Files changed:
 .../ui-bugs/tablet-keyboard-viewport-mode-flip.md  |  3 ++
 packages/dashboard/app/components/ChatView.css     |  2 +
 .../__tests__/ChatView.mobile-render.test.tsx      | 53 ++++++++++++++++++++++
 3 files changed, 58 insertions(+)

Fusion-Task-Id: FN-6210

Fusion-Task-Lineage: b3aca9d5-dc16-45e2-8f2c-5c2d51c7d021
2026-06-11 19:51:19 -07:00
gsxdsm
28e74c74db FN-6212: cap chat input height on tablets
Limit the chat composer growth on tablet viewports while preserving desktop autosizing.

- Add a tablet-specific 200px max height for the chat input textarea.
- Apply the same cap in ChatView autosize calculations when tablet mode is active.
- Generalize chat input height helpers and cover the tablet cap in autosize tests.

Files changed:
 packages/dashboard/app/components/ChatView.css       |  9 +++++++++
 packages/dashboard/app/components/ChatView.tsx       | 20 +++++++++++++-------
 packages/dashboard/app/components/QuickChatFAB.tsx   |  4 ++--
 .../__tests__/ChatView.chat-input-autosize.test.tsx  | 14 ++++++++++++++
 4 files changed, 38 insertions(+), 9 deletions(-)

Fusion-Task-Id: FN-6212

Fusion-Task-Lineage: b11cd658-8289-4795-8e39-7d03a1d51d41
2026-06-11 09:21:23 -07:00
gsxdsm
21f7a47c29 FN-6103: align chat stop button sizing with composer height
Align the regular chat stop button with the composer control sizing while quarantining an unrelated flaky room test.

- define a shared chat input control size variable and apply it to send/stop buttons for consistent width and minimum height
- update the chat input autosize CSS test to assert the shared control size contract and textarea minimum height
- quarantine the unrelated flaky ChatView rooms test in the dashboard Vitest config and quarantine ledger per policy

Files changed:
 packages/dashboard/app/components/ChatView.css       | 20 +++++++++++++-------
 .../__tests__/ChatView.chat-input-autosize.test.tsx  | 16 +++++++++++-----
 packages/dashboard/vitest.config.ts                  |  3 ++-
 scripts/lib/test-quarantine.json                     |  8 +++++++-
 4 files changed, 33 insertions(+), 14 deletions(-)

Fusion-Task-Id: FN-6103

Fusion-Task-Lineage: 3efc95ba-9369-4022-aa6e-f1981485caea
2026-06-09 12:51:20 -07:00
gsxdsm
8d2f43892c FN-6020: align chat stop button size with send button
Align the chat stop button sizing with the send control and lock it with CSS coverage.

- set \.chat-input-stop width and height to 36px to match \.chat-input-send
- add a ChatView autosize test that asserts send and stop button dimension parity

Files changed:
 packages/dashboard/app/components/ChatView.css               |  4 ++--
 .../__tests__/ChatView.chat-input-autosize.test.tsx          | 12 ++++++++++++
 2 files changed, 14 insertions(+), 2 deletions(-)

Fusion-Task-Id: FN-6020

Fusion-Task-Lineage: d429f847-c32a-4fab-b214-215d8854ed5c
2026-06-08 13:32:58 -07:00
gsxdsm
3b3c5ed0bf FN-5997: fix mobile chat empty state spacing
Remove the extra mobile right margin from chat empty states while preserving other chat pane states.

- add mobile message-pane padding and remove card chrome from empty-state containers inside mobile chat messages
- expand the mobile chat rendering regression test to cover direct threads, room threads, loading, populated, streaming, and new-chat empty states
- rename the regression suite to FN-5997 and assert the empty state spans the full mobile message pane

Files changed:
 packages/dashboard/app/components/ChatView.css     |  9 +++++
 .../__tests__/ChatView.mobile-render.test.tsx      | 46 +++++++++++++++-------
 2 files changed, 40 insertions(+), 15 deletions(-)

Fusion-Task-Id: FN-5997

Fusion-Task-Lineage: ea424660-e8c6-4691-9234-463866aacb2e
2026-06-08 10:33:16 -07:00
gsxdsm
e138971030 fix: stabilize workflow board and loop recovery 2026-06-07 23:30:16 -07:00
buihongduc132
266b18eb0c fix(dashboard): chat-view fills full width of parent container
Same pattern as agents-view fix — .chat-view had display:flex + height:100%
but no flex or width, so it shrank to content width (~270px) instead of
filling the .project-content parent.
2026-06-07 03:30:05 +07:00
gsxdsm
a4d3589a14 FN-5948: fix mobile chat empty-state rendering
Restore the chat message pane empty state on mobile without regressing desktop sidebar layouts.

- style chat message-pane empty states as centered framed cards and normalize mobile spacing tokens
- keep sidebar padded empty states left-aligned so loading and list placeholders preserve their desktop layout
- add mobile and desktop regression coverage for direct chats and chat rooms across empty, loading, populated, and streaming states

Files changed:
 packages/dashboard/app/components/ChatView.css     |  26 +-
 .../__tests__/ChatView.mobile-render.test.tsx      | 299 +++++++++++++++++++++
 2 files changed, 323 insertions(+), 2 deletions(-)

Fusion-Task-Id: FN-5948

Fusion-Task-Lineage: f4165f04-363d-4ade-8c10-6d242f943c6c
2026-06-03 22:31:23 -07:00
gsxdsm
eba6a72594 FN-5757: prevent chat message list from snapping to top
Keep chat scroll position stable when stale top snapshots are captured during mobile message updates.

- Capture scroll anchors from the first visible message instead of always sampling the first DOM node
- Ignore stale or likely-invalid zero-position snapshots before attempting scroll restoration
- Guard bottom anchoring from interrupting user scroll unless explicitly forced and add regression coverage for stale snapshot behavior

Files changed:
 packages/dashboard/app/components/ChatView.css     | 11 +++++-
 packages/dashboard/app/components/ChatView.tsx     | 33 +++++++++++++----
 packages/dashboard/app/components/__tests__/ChatView.scroll-to-top.test.tsx      | 41 ++++++++++++++++++++++
 3 files changed, 78 insertions(+), 7 deletions(-)

Fusion-Task-Id: FN-5757

Fusion-Task-Lineage: 4e4f6843-ba70-40da-8d16-358bdfcc7b09
2026-05-30 16:48:13 -07:00
gsxdsm
ab1f6a7ffa FN-5706: hide chat input overflow until max-height
Prevent the chat composer from showing a right-edge scrollbar line before it reaches the autosize cap.

- set chat textarea default overflow to hidden in ChatView CSS
- add resolveChatInputOverflowY to switch overflow to auto only past the 640px cap
- apply overflow mode during composer autosize updates
- extend chat input autosize tests and docs to cover overflow behavior

Files changed:
 docs/dashboard-guide.md                                          | 2 +-
 packages/dashboard/app/components/ChatView.css                   | 1 +
 packages/dashboard/app/components/ChatView.tsx                   | 5 +++++
 packages/dashboard/app/components/__tests__/ChatView.chat-input-autosize.test.tsx   | 9 ++++++++-
 4 files changed, 15 insertions(+), 2 deletions(-)

Fusion-Task-Id: FN-5706

Fusion-Task-Lineage: 4619aa30-c02f-453b-bdf2-f60f360e9372
2026-05-29 20:47:13 -07:00
gsxdsm
f5bf7b9b60 FN-5647: remove errant right border on mobile regular chat composer
Fusion-Task-Id: FN-5647

Fusion-Task-Lineage: 278367a7-a3bb-4591-b117-06d17ee71241
2026-05-28 23:27:05 -07:00
gsxdsm
730cee8d61 Remove errant vertical gray line on regular chat input box 2026-05-28 19:52:16 -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)
8e872301c4 feat(FN-5379): add scroll-to-top action for chat messages
Added a scroll-to-top action for the ChatView with per-message scroll behavior, styled to match the mobile design, with comprehensive test coverage for scroll-to-top behavior. Also preserves the mobile copy-action CSS selector.

Fusion-Task-Id: FN-5379
2026-05-21 15:40:48 -07:00
Fusion (runfusion.ai)
232a9fea86 feat(FN-5322): fix main chat composer flex sizing and expand behavior
Fixes the main chat composer flex sizing so the input area properly expands (FN-5322), with regression guards in the autosize test suite and a new browser layout smoke script covering the composer expand behavior.

Fusion-Task-Id: FN-5322
2026-05-20 07:20:01 -07:00
Fusion (runfusion.ai)
5a1f20f864 feat(FN-5146): complete Step 2 — raise composer height caps
Fusion-Task-Id: FN-5146
Fusion-Task-Lineage: 55a9837f-d0e1-475b-9f7f-45262141352e
2026-05-19 07:57:38 -07:00
Fusion
87c5e1dbfa feat(FN-4661): complete Step 4 — add unread dot styling
Fusion-Task-Id: FN-4661
Fusion-Task-Lineage: 39553dc3-4e7d-4398-b03f-24fa2edb9e20
2026-05-15 15:19:57 -07:00
Fusion
e50a4b5ad6 feat(FN-4659): add room title switcher dropdown
Adds a room title switcher dropdown to the chat view, with corresponding styles and a new rooms test file.

Fusion-Task-Id: FN-4659
2026-05-15 14:57:49 -07:00
Fusion
1eadad42cd feat(FN-4520): complete Step 2 — apply sent-bubble mention chip contrast overrides
Fusion-Task-Id: FN-4520
Fusion-Task-Lineage: fee9ca34-d68e-4ec9-b4f9-134e139a7df7
2026-05-14 13:21:02 -07:00
Fusion
c7ef5c3da4 feat(FN-4403): complete Step 2 — keep footer styling scope-agnostic
Fusion-Task-Id: FN-4403
Fusion-Task-Lineage: 9bbfbed9-c40b-4ad2-a739-c8d93f9f691f
2026-05-14 06:30:23 -07:00
Fusion
ac988f6c97 feat(FN-4385): align ChatView mobile padding note and test tag
Fixed mobile padding consistency in ChatView by aligning a CSS comment and its corresponding test tag to match, keeping documentation and tests in sync for FN-4385.

Fusion-Task-Id: FN-4385
2026-05-13 20:37:09 -07:00
Fusion
3f8e9142f1 feat(FN-4387): complete Step 2 — right-size mobile chat session text padding
Fusion-Task-Id: FN-4387
Fusion-Task-Lineage: d651d6a8-a005-4dca-89ac-1baa17e4f01d
2026-05-13 15:33:25 -07:00
Fusion
9369c59ce6 fix(FN-4352): revert secondary mobile chat row inflation
Fusion-Task-Id: FN-4352
Fusion-Task-Lineage: 429612a4-fe44-4ac0-8d9b-d0d6c1743b36
2026-05-13 14:51:35 -07:00
Fusion
b06dc9a968 fix(FN-4352): resolve review findings for secondary mobile control reverts
Fusion-Task-Id: FN-4352
Fusion-Task-Lineage: 429612a4-fe44-4ac0-8d9b-d0d6c1743b36
2026-05-13 13:11:17 -07:00
Fusion
33c0b1a132 fix(FN-4352): correct compact secondary control sizing on mobile
Fusion-Task-Id: FN-4352
Fusion-Task-Lineage: 429612a4-fe44-4ac0-8d9b-d0d6c1743b36
2026-05-13 13:11:17 -07:00
Fusion
778a0bd47a fix(FN-4352): complete Step 2 — revert secondary-control mobile inflations
Fusion-Task-Id: FN-4352
Fusion-Task-Lineage: 429612a4-fe44-4ac0-8d9b-d0d6c1743b36
2026-05-13 13:11:17 -07:00
Fusion
6206f5138e fix(FN-4092): resolve design-token regressions in chat and settings css
Fusion-Task-Id: FN-4092
Fusion-Task-Lineage: fcee3a44-5c36-4899-bf9d-835d36abdf2e
2026-05-13 06:29:35 -07:00
Fusion
3980a229ca feat(FN-4195): complete Step 2 — replace ChatView undefined text token usage
Fusion-Task-Id: FN-4195
Fusion-Task-Lineage: 3abaad9b-5973-41cb-bec3-3c0d3a5347ba
2026-05-13 06:29:34 -07:00
Fusion
ab4242257a feat(FN-4055): add task ID collision audit script and recovery documentatio
Adds a standalone audit script for detecting task ID collisions, a regression test for store creation collision handling, and documentation of the recovery path; also applies minor UX refinements to ChatView and TaskDetailModal.

Fusion-Task-Id: FN-4055
2026-05-12 17:04:33 -07:00
Fusion
9ac213a16a feat(FN-4189): lift chat input height cap and add autosize behavior
Lifts the chat input height cap and enables auto-resize as the user types, improving the chat UX in `@fusion/dashboard`. Includes test coverage for the autosize behavior and a changeset for the `@runfusion/fusion` package.

Fusion-Task-Id: FN-4189
2026-05-12 17:04:33 -07:00
Fusion
6f3215ef5f feat(FN-4120): add mobile chat search to ChatView
Added mobile chat search functionality to the ChatView with a supporting test update and changeset for release.

Fusion-Task-Id: FN-4120
2026-05-12 09:13:52 -07:00
Fusion
0eae54d9b2 feat(FN-4054): surface inline chat failures with interactive error referenc
Implements inline chat failure rendering in the ChatView with interactive reference affordances, proper attribution preservation in failure bubbles, and aligned error typing across the chat stream pipeline, with corresponding tests and documentation updates.

Fusion-Task-Id: FN-4054
2026-05-12 07:47:10 -07:00
Fusion
9d52cc4163 feat(FN-4077): fix mobile switcher trigger sizing in ChatView
Fixes the mobile switcher trigger sizing in ChatView by updating CSS dimensions and adjusting the component's conditional rendering logic, with corresponding test coverage added.

Fusion-Task-Id: FN-4077

Fusion-Task-Lineage: 966eafb9-35fd-4ac6-ab4a-42c0e96a2584
2026-05-12 07:47:10 -07:00
Fusion
6fd19dd0db fix(FN-4061): prevent mobile chat session switcher title clipping
- Add explicit normal line-height on mobile session trigger and option rows
- Render session option titles as block elements with normal line-height for wrapped text
- Extend ChatView mobile CSS regression assertions to cover new line-height and display rules

Fusion-Task-Id: FN-4061
2026-05-11 21:48:26 -07:00
Fusion
3a45a3fc25 feat(FN-4050): fix mobile session title clipping in ChatView
Fixes mobile session title clipping in ChatView via CSS updates, adds a test for the fix, and updates the mobile switcher docs for FN-4050.

Fusion-Task-Id: FN-4050
2026-05-11 21:48:26 -07:00
Fusion
d589069b21 feat(FN-4042): add mobile chat quick switcher to thread header
Added a mobile chat quick switcher accessible from the thread header, with styling for the session dropdown and test coverage. Documentation for the feature was added to MOBILE.md and the dashboard guide.

Fusion-Task-Id: FN-4042
2026-05-11 16:24:08 -07:00
Fusion
6604826aba feat(FN-4024): scope chat styles to owning components
Scoped chat and popup styles to their owning components, removing cross-contaminating global rules from AgentReflectionsTab and consolidating FileMentionPopup and AgentMentionPopup styles locally, while applying final tokenization and budget style revisions in the fixup commit.

Fusion-Task-Id: FN-4024
2026-05-11 13:14:08 -07:00
Fusion
cab3c4970f feat(FN-3812): add rooms test scaffolds and coverage across core and dashbo
This branch establishes test scaffolding for rooms functionality across core and dashboard, adding test plans, room-specific test files for ChatView, AgentMentionPopup, QuickChatFAB, and core chat routes/stores, while also updating AgentMentionPopup with enhanced room-aware behavior and QuickChatFAB

Fusion-Task-Id: FN-3812
2026-05-10 07:59:40 -07:00