gsxdsm
eade82f55d
FN-9200: preserve docked chat sidebar width
...
Preserve docked chat behavior across tablet layouts and excluded one-pane hosts.
- Let the inline docked width remain authoritative in the tablet cascade.
- Expand behavioral coverage for viewport eligibility, host exclusions, persistence, resizing, rooms, and header controls.
- Add computed-style coverage for tablet and mobile sidebar widths.
Files changed:
packages/dashboard/app/components/ChatView.css | 5 +-
.../__tests__/ChatView.docked-sidebar-css.test.tsx | 52 +++++
.../__tests__/ChatView.docked-sidebar.test.tsx | 212 ++++++++++++++++-----
3 files changed, 220 insertions(+), 49 deletions(-)
Fusion-Task-Id: FN-9200
Fusion-Task-Lineage: 5e8100ea-1a60-42b5-a64a-5e33b7d4b2c7
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-23 10:35:53 -07:00
gsxdsm
323d55a43b
FN-9196: Move archived chat toggle into filter row
...
Restyle the chat archive control as a compact, responsive filter-line toggle.
- Place the Archived toggle beside the tag filter with stable pressed-state semantics.
- Add token-based responsive styling for desktop, narrow, and mobile sidebars.
- Cover toggle behavior, selected-tag coexistence, and filter-row layout.
- Add a patch changeset for the published Fusion package.
Files changed:
.changeset/chat-archived-filter-row.md | 7 ++
packages/dashboard/app/components/ChatView.css | 17 +++-
packages/dashboard/app/components/ChatView.tsx | 44 +++++++---
.../ChatView.archived-toggle-row.test.tsx | 99 ++++++++++++++++++++++
4 files changed, 151 insertions(+), 16 deletions(-)
Fusion-Task-Id: FN-9196
Fusion-Task-Lineage: 2bd3d000-84be-4798-9b73-de1feac40536
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-23 10:03:46 -07:00
gsxdsm
52d124bde2
FN-9195: Keep the chat composer visible above iOS keyboards
...
Keep Chat input reachable across software-keyboard viewport changes.
- Track visual viewport changes across phones, tablets, compact docks, and narrow floating Chat hosts.
- Clamp thread height using the measured host offset while preserving iOS focus behavior.
- Add regression coverage, shared viewport test helpers, operator documentation, and a patch changeset.
Files changed:
.changeset/fn-9195-chat-ios-keyboard-composer.md | 7 +
docs/dashboard-guide.md | 2 +-
packages/dashboard/app/components/ChatView.css | 44 +--
packages/dashboard/app/components/ChatView.tsx | 43 ++-
.../__tests__/ChatView.ios-keyboard.test.tsx | 335 +++++++++++++++++++++
.../components/__tests__/ChatView.test-harness.tsx | 103 ++++++-
6 files changed, 506 insertions(+), 28 deletions(-)
Fusion-Task-Id: FN-9195
Fusion-Task-Lineage: cdada0cc-af6c-4cf8-8ffd-0940d280b07a
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-23 09:55:53 -07:00
gsxdsm
46b329fed9
FN-9199: Replace chat text back marker with arrow icon
...
Use a consistent icon-and-label back affordance across direct and room chat threads.
- Render the lucide ArrowLeft icon with localized Back text and preserved accessible naming.
- Cover mobile direct and room thread back buttons with icon, text, and accessibility assertions.
- Add a patch changeset for the published Fusion package.
Files changed:
.changeset/fix-chat-back-arrow.md | 6 ++++++
packages/dashboard/app/components/ChatView.css | 2 +-
packages/dashboard/app/components/ChatView.tsx | 14 ++++++++++++--
.../app/components/__tests__/ChatView.mobile.test.tsx | 4 +++-
.../app/components/__tests__/ChatView.rooms.test.tsx | 7 ++++++-
5 files changed, 28 insertions(+), 5 deletions(-)
Fusion-Task-Id: FN-9199
Fusion-Task-Lineage: aab2a300-cc2a-4768-b60b-81d7477b8fab
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-23 09:13:23 -07:00
gsxdsm
bd93723d44
FN-9197: Add padding to the chat tag filter
...
Improve the chat sidebar tag filter spacing while preserving token-based styling.
- Align the tag filter select padding with the sidebar search input.
- Add a stylesheet regression test covering all ChatView hosts.
- Record the operator-facing fix in a patch changeset.
Files changed:
.changeset/chat-tag-filter-padding.md | 7 +++
packages/dashboard/app/components/ChatView.css | 10 +++-
.../__tests__/ChatView.tag-filter-padding.test.ts | 60 ++++++++++++++++++++++
3 files changed, 75 insertions(+), 2 deletions(-)
Fusion-Task-Id: FN-9197
Fusion-Task-Lineage: e2220b2d-b7e5-4de9-8751-da8e3a4a9e69
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-23 09:04:29 -07:00
gsxdsm
eaa1d47cf0
FN-9193: add docked chat conversation sidebar
...
Add a persistent, resizable conversation sidebar to non-floating chat on tablet and desktop layouts.
- Keep conversation lists visible beside selected direct and room threads on eligible viewports.
- Persist sidebar visibility and width while preserving mobile, compact, and floating one-pane behavior.
- Add responsive styling, operator documentation, a release changeset, and focused regression coverage.
Files changed:
.changeset/fn-9193-chat-docked-sidebar.md | 7 ++
docs/dashboard-guide.md | 12 +-
packages/dashboard/app/components/ChatView.css | 58 +++++++++-
packages/dashboard/app/components/ChatView.tsx | 120 ++++++++++++++++---
.../__tests__/ChatView.docked-sidebar.test.tsx | 128 +++++++++++++++++++++
.../__tests__/ChatView.sessions-rooms.test.tsx | 29 ++---
.../components/__tests__/ChatView.test-harness.tsx | 41 ++++++-
7 files changed, 360 insertions(+), 35 deletions(-)
Fusion-Task-Id: FN-9193
Fusion-Task-Lineage: 58266e56-9d09-4472-98f4-f9d1d80635a7
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-22 21:13:02 -07:00
Fusion Agent
e67403cd6a
FN-155: add expandable thinking traces to transcripts
...
Add a reusable expandable thinking trace across chat and agent transcript surfaces.
- Add the ThinkingTrace component, styling, localized labels, and documentation.
- Render trace sections across chat, planning, mission, milestone, workflow, and agent log views.
- Preserve streaming trace data and add regression and surface coverage.
Files changed:
.changeset/fn-155-thinking-trace.md | 7 ++
docs/dashboard-guide.md | 4 +
.../dashboard/app/components/AgentLogViewer.tsx | 11 +-
packages/dashboard/app/components/ChatView.css | 10 +-
.../app/components/ConversationHistory.tsx | 3 +-
.../components/MilestoneSliceInterviewModal.tsx | 3 +-
.../app/components/MissionInterviewModal.tsx | 3 +-
.../dashboard/app/components/PlanningModeModal.tsx | 9 +-
.../app/components/StandardChatSurface.tsx | 21 ++--
packages/dashboard/app/components/TaskChatTab.tsx | 17 +--
.../dashboard/app/components/ThinkingTrace.css | 7 ++
.../dashboard/app/components/ThinkingTrace.tsx | 99 ++++++++++++++++++
.../app/components/WorkflowResultsTab.tsx | 4 +
.../__tests__/ChatView.core-interactions.test.tsx | 25 +++++
.../MilestoneSliceInterviewModal.test.tsx | 15 ++-
.../__tests__/MissionInterviewModal.test.tsx | 15 ++-
.../PlanningModeModal.planning-flow.test.tsx | 33 +++++-
.../app/components/__tests__/TaskChatTab.test.tsx | 16 +++
.../__tests__/ThinkingTrace.surfaces.test.tsx | 70 +++++++++++++
.../components/__tests__/ThinkingTrace.test.tsx | 115 +++++++++++++++++++++
.../dashboard/src/__tests__/chat-manager.test.ts | 11 ++
packages/engine/src/__tests__/agent-logger.test.ts | 15 +++
packages/engine/src/__tests__/streaming-delta.test.ts | 13 +++
packages/engine/src/execution/streaming-delta.ts | 4 +
packages/i18n/locales/en/app.json | 8 ++
packages/i18n/locales/es/app.json | 8 ++
packages/i18n/locales/fr/app.json | 8 ++
packages/i18n/locales/ko/app.json | 8 ++
packages/i18n/locales/pt-BR/app.json | 8 ++
packages/i18n/locales/zh-CN/app.json | 8 ++
packages/i18n/locales/zh-TW/app.json | 8 ++
packages/i18n/src/resources.d.ts | 8 ++
32 files changed, 539 insertions(+), 55 deletions(-)
Fusion-Task-Id: FN-155
Fusion-Task-Lineage: 2aafff54-2146-4480-874b-393dc991d52b
Co-authored-by: Fusion <noreply@runfusion.ai >
2026-08-23 01:36:13 +00:00
Fusion Agent
294e826ea0
FN-110: integrate Ctrl+F search into chat lists and conversations
...
Add keyboard-driven search across chat navigation and conversation content.
- Add Ctrl+F search controls for chat lists and conversation messages.
- Support result navigation, highlighting, and localized labels across all dashboard locales.
- Update chat surfaces, documentation, changeset metadata, and regression coverage.
Files changed:
.changeset/fn-110-chat-find.md | 7 +
docs/dashboard-guide.md | 5 +
packages/dashboard/app/App.tsx | 1 +
packages/dashboard/app/components/ChatView.css | 41 +++++
packages/dashboard/app/components/ChatView.tsx | 162 +++++++++++++++--
.../dashboard/app/components/CliChatSurface.tsx | 5 +-
.../dashboard/app/components/StandardChatSurface.tsx | 14 +-
.../__tests__/ChatView.content-search.test.tsx | 197 ++++++++++++++++++++-
packages/dashboard/vitest.config.ts | 1 +
packages/i18n/locales/en/app.json | 7 +
packages/i18n/locales/es/app.json | 7 +
packages/i18n/locales/fr/app.json | 7 +
packages/i18n/locales/ko/app.json | 7 +
packages/i18n/locales/pt-BR/app.json | 7 +
packages/i18n/locales/zh-CN/app.json | 7 +
packages/i18n/locales/zh-TW/app.json | 7 +
packages/i18n/src/resources.d.ts | 7 +
17 files changed, 467 insertions(+), 22 deletions(-)
Fusion-Task-Id: FN-110
Fusion-Task-Lineage: 33ef1888-d250-489a-80b8-f3c5069da532
Co-authored-by: Fusion <noreply@runfusion.ai >
2026-08-23 01:35:06 +00:00
Fusion Agent
3903d3c383
FN-096: add New Chat to active conversation headers
...
Expose the shared New Chat action wherever an active conversation is open.
- Keep New Chat available in list and selected-detail headers across Chat hosts.
- Reset room launches to a persisted Direct session and preserve existing navigation behavior.
- Update responsive styling, documentation, regression coverage, screenshots, and release metadata.
Files changed:
.changeset/fn-096-chat-header-new-chat.md | 7 +++
docs/dashboard-guide.md | 6 +--
packages/dashboard/app/components/ChatView.css | 3 ++
packages/dashboard/app/components/ChatView.tsx | 23 +++++----
.../components/__tests__/ChatView.mobile.test.tsx | 15 +++++-
.../__tests__/ChatView.new-chat-default.test.tsx | 53 +++++++++++++++++++--
.../__tests__/ChatView.sessions-rooms.test.tsx | 36 +++++++++++---
screenshots/fn-096-chat-header-new-desktop.png | Bin 0 -> 7476 bytes
screenshots/fn-096-chat-header-new-mobile.png | Bin 0 -> 4881 bytes
9 files changed, 120 insertions(+), 23 deletions(-)
Fusion-Task-Id: FN-096
Fusion-Task-Lineage: b63ddd12-87bb-470e-9cc9-a80817270257
Co-authored-by: Fusion <noreply@runfusion.ai >
2026-08-21 04:34:43 +00:00
Fusion Agent
89427dab11
FN-076: disable chat textarea mouse resizing
...
Disable mouse-driven composer resizing while preserving automatic five-line sizing across chat surfaces.
- Remove pointer-based manual resize handling and related CSS affordances.
- Apply consistent autosizing and shrink-to-minimum behavior to all chat composers.
- Update regression coverage, documentation, and the published package changeset.
Files changed:
.changeset/fn-076-removal.md | 7 ++
docs/dashboard-guide.md | 6 +-
.../app/components/ChatQuestionResponse.css | 4 +-
.../app/components/ChatQuestionResponse.tsx | 23 ++--
packages/dashboard/app/components/ChatView.css | 8 +-
packages/dashboard/app/components/ChatView.tsx | 18 +--
.../dashboard/app/components/ComposeChatPanel.css | 4 +-
.../dashboard/app/components/ComposeChatPanel.tsx | 20 +++-
.../app/components/StandardChatSurface.tsx | 20 +++-
packages/dashboard/app/components/TaskChatTab.css | 4 +-
packages/dashboard/app/components/TaskChatTab.tsx | 12 +-
.../app/components/TaskPlannerChatTab.css | 4 +-
.../app/components/TaskPlannerChatTab.tsx | 8 +-
.../__tests__/ChatQuestionResponse.test.tsx | 38 ++++++
.../__tests__/ChatView.autosize.test.tsx | 26 ++--
.../ChatView.chat-input-autosize.test.tsx | 61 ++--------
.../__tests__/ChatView.message-edit.test.tsx | 10 ++
.../components/__tests__/ComposeChatPanel.test.tsx | 25 ++++
.../app/components/__tests__/TaskChatTab.test.tsx | 13 +-
.../__tests__/TaskPlannerChatTab.test.tsx | 13 +-
packages/dashboard/app/utils/chatInputAutosize.ts | 132 ++-------------------
21 files changed, 195 insertions(+), 261 deletions(-)
Fusion-Task-Id: FN-076
Fusion-Task-Lineage: d4580427-640b-41c1-b5d1-837da43c7438
Co-authored-by: Fusion <noreply@runfusion.ai >
2026-08-21 04:32:53 +00:00
Fusion Agent
b8a70a544d
FN-068: repair floating Chat HUD and conversation navigation
...
Repair floating Chat HUD controls and keep conversation navigation consistent across Chat hosts.\n\n- Remove redundant Quick Chat minimize behavior and retain clear Close/Open in Chat actions.\n- Move the Back action beside saved conversation titles across direct and room threads.\n- Preserve model metadata as secondary identity and document the updated responsive navigation.\n\nFiles changed:\n docs/dashboard-guide.md | 13 +++--
packages/dashboard/app/App.tsx | 7 +--
packages/dashboard/app/components/ChatView.css | 22 ++++---
packages/dashboard/app/components/ChatView.tsx | 60 +++++++++----------
.../__tests__/ChatView.core-interactions.test.tsx | 67 ++++++++++++++++++++--
.../components/__tests__/ChatView.mobile.test.tsx | 11 +++-
.../__tests__/ChatView.sessions-rooms.test.tsx | 17 +++---
.../__tests__/overflowViewRegistry.chat.test.tsx | 4 +-
8 files changed, 133 insertions(+), 68 deletions(-)
Fusion-Task-Id: FN-068
Fusion-Task-Lineage: 4cb32c6b-77c6-4f7f-9d75-741692a149aa
Co-authored-by: Fusion <noreply@runfusion.ai >
2026-08-21 04:32:52 +00:00
Fusion Agent
4d74560ae0
FN-054: add list-first chat conversation navigation
...
Move chat conversations to list-first navigation with explicit detail entry and back navigation.
- Replace room-switcher dropdown contracts with list-to-detail coverage.
- Update room composer, thread, gesture, and scroll tests for explicit detail selection.
- Remove obsolete room-switcher UI and refresh dashboard documentation and release metadata.
Files changed:
.changeset/fn-054-removal.md | 7 +
docs/dashboard-guide.md | 22 +-
packages/dashboard/app/App.tsx | 2 +-
packages/dashboard/app/components/ChatView.css | 365 +--
packages/dashboard/app/components/ChatView.tsx | 446 +---
.../__tests__/ChatView.context-window.test.tsx | 19 +-
.../__tests__/ChatView.core-contracts.test.tsx | 158 +-
.../__tests__/ChatView.mobile-render.test.tsx | 251 +-
.../components/__tests__/ChatView.mobile.test.tsx | 2567 +-------------------
.../__tests__/ChatView.new-chat-default.test.tsx | 20 +-
.../components/__tests__/ChatView.rooms.test.tsx | 346 +--
.../__tests__/ChatView.sessions-rooms.test.tsx | 163 +-
.../__tests__/ChatView.swipe-back.test.tsx | 27 +-
.../components/__tests__/ChatView.test-harness.tsx | 5 +-
.../app/components/overflowViewRegistry.tsx | 2 +-
packages/dashboard/vitest.config.ts | 12 +-
16 files changed, 419 insertions(+), 3993 deletions(-)
Fusion-Task-Id: FN-054
Fusion-Task-Lineage: 6b139504-ecf3-4b29-ab72-34a4d593676c
Co-authored-by: Fusion <noreply@runfusion.ai >
2026-08-20 03:57:23 +00:00
Fusion Agent
c3aeff5ff1
FN-048: resize chat composers from the top edge and collapse stale heights
...
Resize shared chat composers around a top-edge drag model and clear manual heights when drafts shrink.
- Replace native textarea resizing with desktop/tablet top-edge pointer resizing.
- Collapse stale manual heights back to automatic sizing for shorter drafts.
- Update composer styles, regression coverage, and the published patch changeset.
Files changed:
.changeset/fn-048-chat-composer-resize.md | 7 ++
packages/dashboard/app/components/ChatView.css | 6 +-
packages/dashboard/app/components/TaskChatTab.css | 6 +-
.../app/components/TaskPlannerChatTab.css | 6 +-
.../__tests__/ChatView.autosize.test.tsx | 54 ++++++++++--
.../ChatView.chat-input-autosize.test.tsx | 80 +++++++++++++-----
.../app/components/__tests__/TaskChatTab.test.tsx | 24 ++++--
.../__tests__/TaskPlannerChatTab.test.tsx | 24 ++++--
packages/dashboard/app/utils/chatInputAutosize.ts | 96 ++++++++++++++++------
9 files changed, 223 insertions(+), 80 deletions(-)
Fusion-Task-Id: FN-048
Fusion-Task-Lineage: 83d573b2-fdaa-48bb-906a-c1e0b074539f
Co-authored-by: Fusion <noreply@runfusion.ai >
2026-08-20 03:57:23 +00:00
Fusion Agent
e80fef3fe0
FN-040: fix chat source-link integrity and contrast
...
Harden chat source links across streaming providers while improving new-tab behavior and visual contrast.
- Preserve source-link metadata through streamed delta and event bridges.
- Open chat source links safely in new tabs across desktop and mobile surfaces.
- Improve source-link contrast and add regression coverage plus user-facing guidance.
Files changed:
.changeset/fn-040-chat-source-links.md | 7 +++
docs/dashboard-guide.md | 3 +
.../ui-bugs/chat-streamed-source-link-integrity.md | 53 ++++++++++++++++
packages/dashboard/app/components/ChatView.css | 24 ++++++++
.../app/components/StandardChatSurface.tsx | 8 ++-
.../components/__tests__/ChatView.core.test.tsx | 38 ++++++++++++
.../components/__tests__/ChatView.mobile.test.tsx | 70 ++++++++++++++++++++--
.../__tests__/ChatView.sessions-rooms.test.tsx | 49 +++++++++++++++
...andardChatSurface.nativeStructureEmbed.test.tsx | 52 +++++++++++++++-
.../__tests__/TaskPlannerChatTab.test.tsx | 48 +++++++++++++++
.../engine/src/__tests__/streaming-delta.test.ts | 36 +++++++++++
packages/engine/src/execution/streaming-delta.ts | 17 +++++-
.../src/__tests__/event-bridge.test.ts | 30 +++++++++-
packages/pi-claude-cli/src/event-bridge.ts | 14 +++--
.../src/__tests__/event-bridge.test.ts | 42 +++++++++++++
.../fusion-plugin-acp-runtime/src/event-bridge.ts | 8 ++-
.../src/__tests__/provider.test.ts | 34 +++++++++++
.../src/acp/event-bridge.ts | 8 ++-
.../src/__tests__/event-bridge.test.ts | 28 +++++++++
.../src/event-bridge.ts | 14 +++--
.../src/__tests__/provider.test.ts | 34 +++++++++++
.../src/acp/event-bridge.ts | 8 ++-
.../src/__tests__/runtime-adapter.test.ts | 34 +++++++++++
.../src/acp/event-bridge.ts | 8 ++-
24 files changed, 642 insertions(+), 25 deletions(-)
Fusion-Task-Id: FN-040
Fusion-Task-Lineage: 364ad678-df3e-4fb2-b19c-29eb44d8a429
Co-authored-by: Fusion <noreply@runfusion.ai >
2026-08-20 03:57:23 +00:00
Fusion Agent
21b3baa62d
FN-029: unify direct and planner chat queues
...
Standardize queued-message controls across Direct Chat and planner conversations while preserving force-send ordering during cancellation reconciliation.
- Add shared pending-message queue UI with edit, reorder, delete, and force-send actions.
- Coordinate durable cancellation reconciliation before dispatching selected queued messages.
- Disable the Direct composer and related controls until force-send reconciliation completes.
- Add localized queue copy, documentation, styling, and regression coverage.
Files changed:
docs/dashboard-guide.md | 8 +
packages/dashboard/app/components/ChatView.css | 63 ------
packages/dashboard/app/components/ChatView.tsx | 55 +++--
packages/dashboard/app/components/PendingChatMessageQueue.css | 94 +++++++++
packages/dashboard/app/components/PendingChatMessageQueue.tsx | 200 ++++++++++++++++++
packages/dashboard/app/components/TaskPlannerChatTab.css | 84 --------
packages/dashboard/app/components/TaskPlannerChatTab.tsx | 113 ++---------
packages/dashboard/app/components/__tests__/ChatView.core-interactions.test.tsx | 24 ++-
packages/dashboard/app/components/__tests__/PendingChatMessageQueue.test.tsx | 76 +++++++
packages/dashboard/app/hooks/__tests__/useChat.test.ts | 39 +++
packages/dashboard/app/hooks/useChat.ts | 224 ++++++++++++++++-----
packages/i18n/locales/en/app.json | 25 +--
packages/i18n/locales/es/app.json | 25 +--
packages/i18n/locales/fr/app.json | 25 +--
packages/i18n/locales/ko/app.json | 25 +--
packages/i18n/locales/pt-BR/app.json | 25 +--
packages/i18n/locales/zh-CN/app.json | 25 +--
packages/i18n/locales/zh-TW/app.json | 25 +--
packages/i18n/src/resources.d.ts | 25 +--
19 files changed, 746 insertions(+), 434 deletions(-)
Fusion-Task-Id: FN-029
Fusion-Task-Lineage: 3330d0e7-ba77-4392-98f7-69425070cfd1
Co-authored-by: Fusion <noreply@runfusion.ai >
2026-08-20 03:55:39 +00:00
Fusion Agent
df5c580a50
FN-024: cap and resize chat composers
...
Keep chat drafts compact by default while allowing intentional desktop resizing.
- Autosize Chat, Rooms, Activity, and Planner Chat composers through five lines.
- Cap overflow with internal scrolling and provide desktop/tablet-only manual resize behavior.
- Reset transient composer sizing on draft and target lifecycle changes, with regression coverage and operator documentation.
- Preserve shared terminal session documentation, including detach, end, and reopen behavior.
Files changed:
.changeset/fn-024-chat-composer-height.md | 7 +
docs/dashboard-guide.md | 3 +
packages/dashboard/app/components/ChatView.css | 28 ++-
packages/dashboard/app/components/ChatView.tsx | 65 +++----
packages/dashboard/app/components/TaskChatTab.css | 9 +-
packages/dashboard/app/components/TaskChatTab.tsx | 32 ++--
packages/dashboard/app/components/TaskPlannerChatTab.css | 11 +-
packages/dashboard/app/components/TaskPlannerChatTab.tsx | 27 ++-
packages/dashboard/app/components/__tests__/ChatView.autosize.test.tsx | 64 +++++--
packages/dashboard/app/components/__tests__/ChatView.chat-input-autosize.test.tsx | 148 ++++++++++------
packages/dashboard/app/components/__tests__/TaskChatTab.test.tsx | 34 ++++
packages/dashboard/app/components/__tests__/TaskPlannerChatTab.test.tsx | 41 ++++-
packages/dashboard/app/utils/chatInputAutosize.ts | 192 +++++++++++++++++++--
13 files changed, 516 insertions(+), 145 deletions(-)
Fusion-Task-Id: FN-024
Fusion-Task-Lineage: 663b9f18-87ac-467b-b67c-6d2e27f34ba4
Co-authored-by: Fusion <noreply@runfusion.ai >
2026-08-20 03:55:39 +00:00
Fusion Agent
3ae22c23d1
FN-011: add project chat message width preference
...
Add a project-scoped conversation layout preference and apply full-width rendering consistently across dashboard chat surfaces.
- Add bubbles/full-width project settings with localized Appearance controls.
- Apply the preference to Chat, Activity, Planner Chat, Quick Chat, and docked hosts with responsive safeguards.
- Add regression coverage, documentation, and the published-package changeset.
Files changed:
.changeset/fn-011-chat-message-layout.md | 7 ++++
docs/dashboard-guide.md | 4 ++
.../core/src/__tests__/settings-defaults.test.ts | 14 ++++++-
.../core/src/__tests__/settings-parity.test.ts | 4 ++
packages/core/src/config/settings-schema.ts | 5 +++
packages/core/src/types/settings/settings-scope.ts | 5 +++
packages/dashboard/app/App.tsx | 7 +++-
packages/dashboard/app/components/AppModals.tsx | 5 +++
packages/dashboard/app/components/ChatView.css | 23 +++++++++++
packages/dashboard/app/components/ChatView.tsx | 4 +-
.../dashboard/app/components/SettingsModal.tsx | 14 +++++++
packages/dashboard/app/components/TaskChatTab.css | 42 +++++++++++++++++++++
packages/dashboard/app/components/TaskChatTab.tsx | 4 +-
.../app/components/TaskPlannerChatTab.css | 22 +++++++++++
.../app/components/TaskPlannerChatTab.tsx | 4 +-
.../components/__tests__/ChatView.core.test.tsx | 34 +++++++++++++++++
.../__tests__/SettingsModal.general.test.tsx | 42 +++++++++++++++++++++
.../app/components/__tests__/TaskChatTab.test.tsx | 31 +++++++++++++++
.../__tests__/TaskPlannerChatTab.test.tsx | 32 ++++++++++++++++
.../settings/sections/AppearanceSection.tsx | 24 +++++++++++-
.../sections/__tests__/AppearanceSection.test.tsx | 22 ++++++++++-
.../app/context/ChatMessageLayoutContext.tsx | 16 ++++++++
.../app/hooks/__tests__/useAppSettings.test.ts | 44 ++++++++++++++++++++++
packages/dashboard/app/hooks/useAppSettings.ts | 29 ++++++++++++++
.../app/task-modal-touch-resize-e2e-fixture.tsx | 2 +-
packages/i18n/locales/en/app.json | 6 ++-
packages/i18n/locales/es/app.json | 6 ++-
packages/i18n/locales/fr/app.json | 6 ++-
packages/i18n/locales/ko/app.json | 6 ++-
packages/i18n/locales/pt-BR/app.json | 6 ++-
packages/i18n/locales/zh-CN/app.json | 6 ++-
packages/i18n/locales/zh-TW/app.json | 6 ++-
packages/i18n/src/resources.d.ts | 4 ++
33 files changed, 471 insertions(+), 15 deletions(-)
Fusion-Task-Id: FN-011
Fusion-Task-Lineage: d858d00f-e05b-4dc2-8ddb-cfc5b9973871
Co-authored-by: Fusion <noreply@runfusion.ai >
2026-08-20 03:55:38 +00:00
gsxdsm
b8f7f9e75c
FN-8701: standardize tool-call detail displays
...
Standardize expandable tool-call payloads across dashboard chat and log surfaces.
- Add a shared formatter and detail renderer that preserves complete browser-available arguments and results.
- Use compact previews with wrapped, scrollable expanded payloads in chat, activity, and agent logs.
- Cover formatting and rendering behavior with dashboard tests and document the display contract.
Files changed:
.changeset/fn-8701-tool-call-display.md | 7 ++
docs/dashboard-guide.md | 4 +-
.../dashboard/app/components/AgentLogViewer.tsx | 12 +++-
packages/dashboard/app/components/ChatView.css | 37 ++---------
.../app/components/StandardChatSurface.tsx | 56 +++++++---------
packages/dashboard/app/components/TaskChatTab.css | 17 -----
packages/dashboard/app/components/TaskChatTab.tsx | 31 +++++----
.../dashboard/app/components/ToolCallDetails.css | 52 +++++++++++++++
.../dashboard/app/components/ToolCallDetails.tsx | 77 ++++++++++++++++++++++
.../__tests__/AgentLogViewer.rendering.test.tsx | 8 +++
.../components/__tests__/ChatView.core.test.tsx | 24 +++++++
.../app/components/__tests__/TaskChatTab.test.tsx | 33 +++++++---
.../__tests__/TaskPlannerChatTab.test.tsx | 19 ++++++
13 files changed, 275 insertions(+), 102 deletions(-)
Fusion-Task-Id: FN-8701
Fusion-Task-Lineage: 86513f9a-31d4-45fb-97fe-1f0c73d0e5b3
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-01 09:32:37 -07:00
gsxdsm
a03eb0b39c
fix(dashboard-tests): green Full Suite after chat tags, TaskForm meta, remote lifecycle
...
- Replace undefined --space-2xs in ChatView tag menu with calc(--space-xs / 2)
- Stub fetchChatTags/create/rename/delete on streaming-thread api mock for useChat mount
- Expect TaskForm model/tracking callbacks with TaskFormValueChangeMeta source
- Drive remote tunnel lifecycle via one stop then error status (no double Stop race)
2026-07-24 23:02:16 -07:00
gsxdsm
a9d5b06013
FN-8562: add tags to chat conversations
...
Enable project-scoped reusable tags for Direct chat sessions.
- Add tag storage, migrations, and scoped assignment APIs.
- Add chat sidebar tag creation, assignment, and filtering controls.
- Document tag behavior and cover schema and chat interactions.
- Establish the session project/id candidate key before creating scoped tag foreign keys.
Files changed:
.changeset/fn-8562-chat-conversation-tags.md | 7 ++
docs/dashboard-guide.md | 4 +
docs/storage.md | 2 +
.../src/__tests__/postgres/schema-applier.test.ts | 8 +-
packages/core/src/async-chat-store.ts | 117 ++++++++++++++++++++-
packages/core/src/chat-store.ts | 32 ++++++
packages/core/src/chat-types.ts | 14 +++
packages/core/src/index.gate.ts | 3 +
packages/core/src/index.ts | 3 +
.../postgres/migrations/0036_chat_session_tags.sql | 64 +++++++++++
packages/core/src/postgres/schema-applier.ts | 16 ++-
packages/core/src/postgres/schema/project.ts | 34 ++++++
packages/dashboard/app/api.ts | 1 +
packages/dashboard/app/api/chat.ts | 18 ++++
packages/dashboard/app/components/ChatView.css | 17 +++
packages/dashboard/app/components/ChatView.tsx | 70 +++++++++++-
.../__tests__/ChatView.core-interactions.test.tsx | 27 +++++
.../dashboard/app/hooks/__tests__/useChat.test.ts | 1 +
packages/dashboard/app/hooks/useChat.ts | 52 ++++++++-
.../dashboard/src/routes/register-chat-routes.ts | 70 ++++++++++++
20 files changed, 550 insertions(+), 10 deletions(-)
Fusion-Task-Id: FN-8562
Fusion-Task-Lineage: 4efe798c-0865-451a-adbd-6b85f9f8b149
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-24 18:09:32 -07:00
gsxdsm
e4fc3d2acb
FN-8558: enlarge Quick Chat tablet drag target
...
Make the floating Quick Chat header easier to drag on tablet viewports.
- Increase only the floating Chat header touch target in the tablet viewport band.
- Cover floating header controls for empty and populated chats and scope the CSS contract.
- Add a patch changeset for the Quick Chat usability fix.
Files changed:
.changeset/quick-chat-tablet-drag-header.md | 7 ++++
packages/dashboard/app/components/ChatView.css | 13 +++++++
packages/dashboard/app/components/__tests__/ChatView.mobile.test.tsx | 41 ++++++++++++++++++++++
packages/dashboard/app/components/__tests__/FloatingWindow.test.tsx | 20 +++++++++++
4 files changed, 81 insertions(+)
Fusion-Task-Id: FN-8558
Fusion-Task-Lineage: 2d2f788b-b417-4fa3-b066-8790858b393a
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-24 00:46:44 -07:00
gsxdsm
b67dca4178
fix(dashboard): stop Chat Latest button jumping under the cursor
...
Center the jump-to-latest chip with margin-inline auto instead of
transform:translateX(-50%) so global .btn transform transitions and
:active scale cannot shift it sideways in Quick Chat and full Chat.
2026-07-23 18:15:03 -07:00
gsxdsm
a224c11110
fix(dashboard): keep chat Latest button centered while pressed
...
The jump-to-latest button is centered via transform: translateX(-50%), and
the global .btn:active scale transform replaced it wholesale on mousedown,
shifting the button out from under the cursor mid-click. Compose both
transforms on :active (same fix as the DevServer new-logs button).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-22 23:01:51 -07:00
gsxdsm
e22c65ad11
FN-8397: separate pinned chats and retain failed edits
...
Separate direct-chat session groups and make message edits safely retryable.
- Render explicit Pinned and Recent sections across desktop and mobile chat lists.
- Keep inline message corrections open until edit-and-resend succeeds in Direct and Planner Chat.
- Add localized Recent labels, documentation, release metadata, and regression coverage.
Files changed:
.changeset/fn-8397-chat-pin-separation-and-edit-save.md | 7 +++
docs/dashboard-guide.md | 5 +-
packages/dashboard/app/components/ChatView.css | 10 ++++
packages/dashboard/app/components/ChatView.tsx | 31 ++++++++---
packages/dashboard/app/components/StandardChatSurface.tsx | 35 +++++++++----
packages/dashboard/app/components/TaskPlannerChatTab.tsx | 14 +++--
packages/dashboard/app/components/__tests__/ChatView.core-contracts.test.tsx | 46 +++++++++++++++++
packages/dashboard/app/components/__tests__/ChatView.message-edit.test.tsx | 60 ++++++++++++++++++++--
packages/dashboard/app/components/__tests__/TaskPlannerChatTab.test.tsx | 10 ++--
packages/dashboard/app/hooks/__tests__/useChat.test.ts | 4 +-
packages/dashboard/app/hooks/useChat.ts | 13 +++--
packages/i18n/locales/{en,es,fr,ko,zh-CN,zh-TW}/app.json | 6 +++
17 files changed, 205 insertions(+), 36 deletions(-)
Fusion-Task-Id: FN-8397
Fusion-Task-Lineage: 4dbc664a-56a3-48c7-be9a-febd5f411c9e
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-20 00:42:15 -07:00
gsxdsm
f0c32dc1bf
FN-8191: clamp conversation action menus to viewport
...
Keep conversation overflow menus aligned with their triggers and contained in the visible viewport.
- Measure rendered menu dimensions so theme-specific widths remain aligned
- Clamp horizontal and vertical menu positions for trigger and context-menu entry points
- Cover desktop alignment and mobile alternate-theme viewport containment
Files changed:
packages/dashboard/app/components/ChatView.css | 6 ++
packages/dashboard/app/components/ChatView.tsx | 72 +++++++++++++++++++++-
.../__tests__/ChatView.core-interactions.test.tsx | 32 ++++++++++
.../components/__tests__/ChatView.mobile.test.tsx | 41 +++++++++++-
4 files changed, 147 insertions(+), 4 deletions(-)
Fusion-Task-Id: FN-8191
Fusion-Task-Lineage: 1a52140b-9450-421d-844b-9fff302d8ea4
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-17 00:17:59 -07:00
gsxdsm
eab9977a42
FN-8173: consolidate chat session actions into overflow menu
...
Consolidate each chat session row's actions behind a shared three-dot menu.
- Replace inline pin, rename, and delete buttons with an accessible overflow trigger
- Preserve context-menu actions, pin-limit feedback, and desktop/mobile title clearance
- Update chat session interaction, layout, and mobile coverage
Files changed:
packages/dashboard/app/components/ChatView.css | 30 +++-----
packages/dashboard/app/components/ChatView.tsx | 66 +++++++----------
.../__tests__/ChatView.core-contracts.test.tsx | 83 ++++++++++++++--------
.../__tests__/ChatView.core-interactions.test.tsx | 12 ++--
.../components/__tests__/ChatView.mobile.test.tsx | 22 +++---
5 files changed, 107 insertions(+), 106 deletions(-)
Fusion-Task-Id: FN-8173
Fusion-Task-Lineage: 4fee30f2-b8af-470b-bedd-9691680b78fb
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-16 18:51:15 -07:00
gsxdsm
478f226a54
test: green full-suite CI after main drift ( #2229 )
...
## Summary
Restores green **Full Suite (non-blocking)** runs on `main`. Recent main
merges left i18n key parity, schema baseline bookkeeping (0011→0012),
heartbeat tool inventory (FN-8058 `fn_task_logs_read`), and merger
whitespace-classification mocks (execFile `git diff -p -w :2: :3:`) out
of date, so all four test shards failed.
## Root causes observed on main
- **Shard 4 / `@fusion/i18n`**: missing `skipConfirmationDialogs*` +
`reviewBudgetExhausted` in non-en locales; orphan
`awaitingApprovalPlanReviewReplanCap`
- **Shard 3 / `@fusion/core`**: `SCHEMA_BASELINE_VERSION` advanced to
`0012` while tests still equated it with
`OWNER_PROJECT_ID_SPLIT_VERSION` (`0011`) and omitted `0012` from
applied-migration lists
- **Shards 1–2 / `@fusion/engine`**: tool count/snapshot drift for
`fn_task_logs_read`; merger tests still mocked `git diff-tree` for
trivial classification after the execFile `:2:`/`:3:` cutover; mock
provider `updateTask` arity drift
## Changes
- Locale catalogs: add missing keys, drop orphan key
- Schema applier tests: immutable 0011 identity + baseline 0012 lists
- Heartbeat + gating snapshots: include `fn_task_logs_read`
- Merger unit mocks: recognize `git diff -p -w :2:path :3:path`
- Mock provider: accept optional third `updateTask` arg
## Test plan
- [x] `pnpm --filter @fusion/i18n exec vitest run` — 23/23
- [x] `pnpm --filter @fusion/core exec vitest run
src/__tests__/postgres/schema-applier.test.ts` (immutable + automation
upgrade) — pass
- [x] `pnpm --filter @fusion/core exec vitest run` project-identity +
satellite-fusiondir — pass
- [x] Engine suites from failed CI shards (file-scoped,
hermes/openclaw/paperclip/grok, reliability post-finalize/mission,
heartbeat, gating, merger recovery/prompt, mock-provider, etc.) — pass
- [ ] Full Suite workflow green on merge to main
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **New Features**
- Improved project data isolation across backend operations.
- Added safer optional toast handling when UI components render outside
the full application shell.
- Added support for reading task logs during agent heartbeat sessions.
- **Bug Fixes**
- Prevented runtime probes from hanging and avoided scanning large
binary files.
- Improved path handling for workspaces with missing descendants.
- Corrected task retry state resets and GitHub import/issue-close
behavior.
- **Style**
- Improved chat, terminal, and settings spacing.
- Added clearer accessibility labeling for the auto-merge control.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-07-16 16:01:29 -07:00
gsxdsm
e87b51bd07
FN-8054: add pinned chat conversations
...
Add durable, scoped pinning for Direct chat conversations.
- Add pinned session persistence, migration coverage, and archive-safe row locking.
- Enforce a three-conversation per-project pin limit through the chat API.
- Add desktop and mobile pin controls, sorting, indicators, and regression tests.
Files changed:
.changeset/fn-8054-pin-conversations.md | 7 ++
docs/dashboard-guide.md | 2 +
.../postgres/satellite-db-injected-stores.test.ts | 13 ++++
packages/core/src/async-chat-store.ts | 27 ++++++++
packages/core/src/chat-store.ts | 63 ++++++++++++++++--
packages/core/src/chat-types.ts | 9 +++
.../core/src/postgres/migrations/0000_initial.sql | 1 +
.../postgres/migrations/0012_chat_session_pins.sql | 8 +++
packages/core/src/postgres/postgres-health.ts | 3 +
packages/core/src/postgres/schema-applier.ts | 30 ++++++++-
packages/core/src/postgres/schema/project.ts | 3 +
packages/dashboard/app/api/legacy.ts | 1 +
packages/dashboard/app/components/ChatView.css | 32 +++++++++-
packages/dashboard/app/components/ChatView.tsx | 74 ++++++++++++++++++++--
.../dashboard/app/hooks/__tests__/useChat.test.ts | 21 ++++++
packages/dashboard/app/hooks/useChat.ts | 72 +++++++++++++++++----
.../dashboard/src/routes/register-chat-routes.ts | 25 +++++++-
17 files changed, 366 insertions(+), 25 deletions(-)
Fusion-Task-Id: FN-8054
Fusion-Task-Lineage: 088cb01c-582b-4f56-a222-214da90ff356
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-16 02:35:29 -07:00
gsxdsm
a821bce236
FN-8030: move room thinking control into composer
...
Move room-level thinking effort from the crowded thread header into the composer Brain popover.
- Reuse the thinking-level control in a room-specific level-only mode.
- Preserve room thinking persistence and add desktop, mobile, and failure coverage.
- Update room-chat documentation and publish a patch changeset.
Files changed:
.changeset/fn-8030-room-thinking-composer.md | 7 +++
docs/dashboard-guide.md | 2 +-
.../app/components/ChatThinkingLevelControl.tsx | 12 +++-
packages/dashboard/app/components/ChatView.css | 16 -----
packages/dashboard/app/components/ChatView.tsx | 54 +++++++---------
.../__tests__/ChatThinkingLevelControl.test.tsx | 20 ++++++
.../components/__tests__/ChatView.rooms.test.tsx | 72 +++++++++++++++++++---
.../__tests__/ChatView.thinking-level.test.tsx | 23 ++++---
8 files changed, 137 insertions(+), 69 deletions(-)
Fusion-Task-Id: FN-8030
Fusion-Task-Lineage: 31054538-e620-412d-98ba-26fba34a6af8
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-16 01:38:49 -07:00
gsxdsm
d6f94693b2
FN-8028: widen tablet chat message bubbles
...
Increase tablet agent-side chat bubble width while preserving responsive behavior.
- Raise the tablet assistant, streaming, and failure bubble cap to 92%.
- Update the responsive CSS contract and dashboard documentation.
Files changed:
docs/dashboard-guide.md | 2 +-
packages/dashboard/app/components/ChatView.css | 5 ++++-
packages/dashboard/app/components/__tests__/ChatView.core-contracts.test.tsx | 4 ++--
3 files changed, 7 insertions(+), 4 deletions(-)
Fusion-Task-Id: FN-8028
Fusion-Task-Lineage: 2158a4c8-f07b-4e96-bcf2-80ebe6b08515
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-15 23:49:24 -07:00
gsxdsm
5523c19fb4
FN-8023: align ChatView thinking text tokens
...
Align ChatView thinking-section text with the muted token guard.
- Replace legacy secondary text tokens in thinking labels, controls, and empty states
- Document the ChatView token-guard requirement
Files changed:
packages/dashboard/app/components/ChatView.css | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
Fusion-Task-Id: FN-8023
Fusion-Task-Lineage: 7f0a6da0-f15d-4dc8-a935-308a11ee9f14
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-15 19:21:20 -07:00
gsxdsm
29560021d3
FN-7934: fix chat brain popup clipping in narrow floating windows
...
Fixes the in-chat model/thinking (Brain) popup being cut off inside a narrow floating Chat window or compact dock on a wide desktop viewport.
- Key the popover's viewport-fitting inset layout on ChatView's .chat-view--narrow class (chat surface width) instead of only the @media (max-width: 768px) browser-viewport query, so narrow floating/docked chat surfaces get the fitted layout too.
- Add narrow-surface CSS rules for .chat-thinking-level-root, .chat-thinking-popover, .chat-thinking-agent-list, and .chat-thinking-popover-list to constrain position/width/max-height to the chat surface.
- Add a CSS-contract regression test asserting both the desktop popover sizing and the new narrow-surface rules stay in sync.
- Update docs/dashboard-guide.md to describe the popup staying fitted to the chat surface for narrow floating Chat windows/compact docks, not just mobile/tablet viewports.
- Add a patch changeset for @runfusion/fusion documenting the fix.
Files changed:
.changeset/fn-7934-chat-narrow-model-popup.md | 7 +++++
docs/dashboard-guide.md | 3 +-
packages/dashboard/app/components/ChatView.css | 22 +++++++++++++++
.../__tests__/ChatThinkingLevelControl.test.tsx | 32 ++++++++++++++++++++++
4 files changed, 63 insertions(+), 1 deletion(-)
Fusion-Task-Id: FN-7934
Fusion-Task-Lineage: 30c461c5-a153-4005-8a8c-24f02916a934
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-13 00:48:02 -07:00
gsxdsm
e84fda936a
FN-7918: make chat go-to-top contextual and inline edit pencil compact
...
Reworks chat message footer affordances: the scroll-to-top control now only becomes visible once a message's top is actually clipped above the visible thread viewport, and the edit pencil moves from a standalone action row into the timestamp footer beside user messages.
- ChatView measures assistant message tops on scroll/message changes (rAF-scheduled) and tracks which message IDs are currently clipped above the `.chat-messages` container edge
- StandardChatMessageItem accepts a new `isTopClipped` prop; the go-to-top button stays DOM-mounted (for tests/a11y) but is visually hidden via CSS until clipped
- Merged the assistant thinking/copy/scroll-to-top actions into a single collapsible footer row instead of separate action rows
- Moved the user-message edit pencil into an inline `chat-message-time-row` next to the relative timestamp instead of a standalone action row above it
- Updated ChatView.css for the new inline layout, collapsed-row state, and hidden/visible scroll-to-top button states
- Updated message-edit and scroll-to-top tests to cover the new inline placement and clipped-visibility behavior
- Added changeset and docs/dashboard-guide.md note describing the new behavior
Files changed:
.changeset/fn-7918-chat-inline-icons.md | 7 ++
docs/dashboard-guide.md | 6 +-
packages/dashboard/app/components/ChatView.css | 80 +++++++++++++++-------
packages/dashboard/app/components/ChatView.tsx | 52 +++++++++++++-
.../app/components/StandardChatSurface.tsx | 33 +++++++--
.../__tests__/ChatView.message-edit.test.tsx | 34 ++++++++-
.../__tests__/ChatView.scroll-to-top.test.tsx | 75 +++++++++++++++++++-
7 files changed, 253 insertions(+), 34 deletions(-)
Fusion-Task-Id: FN-7918
Fusion-Task-Lineage: 76206cd2-94a8-47be-b282-94943e184d01
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-12 23:24:03 -07:00
gsxdsm
382a4d5d05
FN-7917: center chat composer attach/model icons with input box
...
Centers the Chat composer's attach and model/thinking icon buttons with the single-line message input across desktop, tablet, and mobile, while keeping them bottom-aligned when the textarea grows multi-line.
- Size .chat-attach-btn, .chat-thinking-level-root, and .chat-thinking-btn to --chat-input-control-size (matching the send button/textarea min-height) instead of the old calc(var(--space-lg) * 2) / * 2.25) sizing
- Replace the separate mobile touch-target overrides for .chat-attach-btn and .chat-thinking-btn with a shared rule using the same --chat-input-control-size sizing
- Add a regression test asserting the attach/thinking controls use --chat-input-control-size and align-self: flex-end, and no longer use the old calc()-based sizing
- Add a patch changeset for @runfusion/fusion documenting the composer icon centering fix
Files changed:
.changeset/chat-composer-icon-centering.md | 7 +++++
packages/dashboard/app/components/ChatView.css | 30 ++++++++++++----------
.../ChatView.chat-input-autosize.test.tsx | 28 ++++++++++++++++++++
3 files changed, 52 insertions(+), 13 deletions(-)
Fusion-Task-Id: FN-7917
Fusion-Task-Lineage: aba1d5ea-21ee-4b27-90f2-11aca7c4a5fa
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-12 23:02:46 -07:00
gsxdsm
313956df5a
FN-7916: fix chat model selector dismissing before selection on mobile/tablet
...
Fix the in-chat Brain popup's model picker on touch viewports: pointerdown outside-close was treating the portaled CustomModelDropdown menu as outside the popup, dismissing it before the tap could register a model selection, and the mobile popover was mis-anchored off-screen.
- ChatThinkingLevelControl: treat pointerdown targets inside the portaled `.model-combobox-dropdown--portal` menu as inside the popup so touch taps select the model instead of closing the popup first
- ChatView.css: clamp the popover to the viewport width via max-width/max-inline-size, and on mobile anchor it to the chat input area with tokenized left/right gutters instead of a collapsing left:0 width
- Add a portal-aware regression test covering pointerdown-inside-portal selection, genuine outside-pointerdown close, and the mobile CSS anchoring contract
- Add changeset (patch) and update dashboard guide docs to describe mobile/tablet behavior
Files changed:
.changeset/fn-7916-chat-mobile-model-selector.md | 7 ++
docs/dashboard-guide.md | 3 +-
.../app/components/ChatThinkingLevelControl.tsx | 10 ++-
packages/dashboard/app/components/ChatView.css | 17 +++-
.../ChatThinkingLevelControl.portal.test.tsx | 97 ++++++++++++++++++++++
5 files changed, 130 insertions(+), 4 deletions(-)
Fusion-Task-Id: FN-7916
Fusion-Task-Lineage: bcc2d9ad-0be6-4e23-b643-eebf93aae3c6
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-12 22:49:51 -07:00
gsxdsm
daf3f15fd1
FN-7909: add room-level thinking effort override for Chat Rooms
...
Adds a per-room thinking-effort (reasoning level) override for Chat Rooms so all room responders can share a consistent override instead of relying only on per-agent/global defaults.
- Persist `chat_rooms.thinkingLevel` with a new core DB migration and store read/write support
- Extend chat-store and chat-types with thinkingLevel plumbing for room create/update
- Wire the dashboard chat room API/routes and legacy handlers to accept and return thinkingLevel
- Add a ChatView room settings control (with CSS) and useChatRooms hook support for setting/clearing the override
- Resolve room responder defaultThinkingLevel from the room override when present
- Update docs (dashboard-guide, settings-reference) and add a minor changeset for the feature
Files changed:
.changeset/fn-7909-room-thinking-level.md | 7 +++
docs/dashboard-guide.md | 1 +
docs/settings-reference.md | 2 +-
packages/core/src/__tests__/chat-store.test.ts | 21 ++++++++
packages/core/src/__tests__/db-migrate.test.ts | 57 ++++++++++++++++++++++
packages/core/src/chat-store.ts | 12 ++++-
packages/core/src/chat-types.ts | 10 ++++
packages/core/src/db.ts | 28 ++++++++++-
packages/dashboard/app/api/__tests__/chat-rooms-api.test.ts | 8 +--
packages/dashboard/app/api/legacy.ts | 4 +-
packages/dashboard/app/components/ChatView.css | 16 ++++++
packages/dashboard/app/components/ChatView.tsx | 29 ++++++++++-
packages/dashboard/app/components/__tests__/ChatView.rooms.test.tsx | 24 +++++++++
packages/dashboard/app/hooks/__tests__/useChatRooms.test.ts | 22 +++++++++
packages/dashboard/app/hooks/useChatRooms.ts | 16 ++++++
packages/dashboard/src/__tests__/chat-room-routes.test.ts | 26 ++++++++++
packages/dashboard/src/__tests__/chat.rooms.test.ts | 42 ++++++++++++++++
packages/dashboard/src/chat.ts | 8 +++
packages/dashboard/src/routes/register-chat-room-routes.ts | 21 ++++++--
19 files changed, 338 insertions(+), 16 deletions(-)
Fusion-Task-Id: FN-7909
Fusion-Task-Lineage: 2741eca9-5305-4f6c-81bf-ae644a9fe307
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-12 22:12:18 -07:00
gsxdsm
8835c6cb48
FN-7908: add in-chat model/agent switcher to brain-icon popup
...
Extend the chat brain-icon popup and its backing session PATCH route so an
active Direct chat's model or agent can be switched mid-conversation instead
of only being set at creation time.
- Add a Model/Agent section to ChatThinkingLevelControl (the brain-icon
popup) for picking a model provider/model or retargeting to a real agent
without leaving the chat.
- Extend PATCH /api/chat/sessions/:id to accept modelProvider/modelId (as a
validated pair via the existing validateModelPair helper) and agentId,
forwarding only the keys present in the body so omitted fields leave the
session's stored target untouched.
- Add chat-store updateSession support for the agentId clause alongside the
existing model/thinkingLevel fields, and a useChat.setSessionModel hook
for the dashboard to call the new PATCH capability.
- Update i18n locale strings (en/es/fr/ko/zh-CN/zh-TW) and dashboard-guide.md
docs for the new switcher UI.
- Add unit/integration test coverage across chat-store, chat-manager,
chat-routes, useChat, ChatThinkingLevelControl, and ChatView for the new
model/agent switch behavior.
- Add changeset fn-7908-chat-model-agent-switcher.md (minor,
@runfusion/fusion).
Files changed:
.changeset/fn-7908-chat-model-agent-switcher.md | 7 +
docs/dashboard-guide.md | 3 +-
packages/core/src/__tests__/chat-store.test.ts | 21 ++
packages/core/src/chat-store.ts | 8 +
packages/core/src/chat-types.ts | 2 +
packages/dashboard/app/api/legacy.ts | 11 +-
.../app/components/ChatThinkingLevelControl.tsx | 219 ++++++++++++++++++---
packages/dashboard/app/components/ChatView.css | 135 ++++++++++++-
packages/dashboard/app/components/ChatView.tsx | 23 ++-
.../__tests__/ChatThinkingLevelControl.test.tsx | 109 +++++++++-
.../__tests__/ChatView.thinking-level.test.tsx | 67 ++++++-
.../dashboard/app/hooks/__tests__/useChat.test.ts | 166 +++++++++++++++-
packages/dashboard/app/hooks/useChat.ts | 56 ++++++
.../dashboard/src/__tests__/chat-manager.test.ts | 38 ++++
.../dashboard/src/__tests__/chat-routes.test.ts | 117 ++++++++++-
.../dashboard/src/routes/register-chat-routes.ts | 48 ++++-
packages/i18n/locales/en/app.json | 8 +-
packages/i18n/locales/es/app.json | 8 +-
packages/i18n/locales/fr/app.json | 8 +-
packages/i18n/locales/ko/app.json | 8 +-
packages/i18n/locales/zh-CN/app.json | 8 +-
packages/i18n/locales/zh-TW/app.json | 8 +-
22 files changed, 1007 insertions(+), 71 deletions(-)
Fusion-Task-Id: FN-7908
Fusion-Task-Lineage: b1104865-9b0c-4d77-973e-89152fe245e0
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-12 21:33:50 -07:00
gsxdsm
23cb061af2
FN-7898: add in-chat thinking-level control next to the attach button
...
Adds a Brain-icon popover control in the chat composer that lets users change an existing session's reasoning-effort level mid-conversation, extending the existing create-time-only thinking-level picker.
- Add ChatThinkingLevelControl component (Brain-icon trigger + popover) wired into ChatView's direct-session composer, gated to non-CLI model-loop sessions only
- Extend PATCH /api/chat/sessions/:id to accept an optional thinkingLevel field, validated via existing validateThinkingLevel helper; null/empty string explicitly clears back to the inherited default, omitting the key leaves it untouched
- Add useChat().setSessionThinkingLevel hook method to call the new PATCH capability
- Add i18n strings (thinkingLevelButton) across all locales and regenerate packages/i18n/src/resources.d.ts
- Add changeset for @runfusion/fusion (minor) and update docs/dashboard-guide.md
Files changed:
.changeset/fn-7898-chat-thinking-level-control.md | 7 +
docs/dashboard-guide.md | 2 +
packages/dashboard/app/api/legacy.ts | 4 +-
.../app/components/ChatThinkingLevelControl.tsx | 133 +++++++++++
packages/dashboard/app/components/ChatView.css | 73 ++++++
packages/dashboard/app/components/ChatView.tsx | 20 ++
.../__tests__/ChatThinkingLevelControl.test.tsx | 103 ++++++++
.../__tests__/ChatView.message-edit.test.tsx | 1 +
.../components/__tests__/ChatView.test-harness.tsx | 1 +
.../__tests__/ChatView.thinking-level.test.tsx | 262 +++++++++++++++++++++
.../dashboard/app/hooks/__tests__/useChat.test.ts | 108 +++++++++
packages/dashboard/app/hooks/useChat.ts | 59 +++++
.../dashboard/src/__tests__/chat-routes.test.ts | 83 +++++++
.../dashboard/src/routes/register-chat-routes.ts | 35 ++-
packages/i18n/locales/en/app.json | 1 +
packages/i18n/locales/es/app.json | 1 +
packages/i18n/locales/fr/app.json | 1 +
packages/i18n/locales/ko/app.json | 1 +
packages/i18n/locales/zh-CN/app.json | 1 +
packages/i18n/locales/zh-TW/app.json | 1 +
packages/i18n/src/resources.d.ts | 96 ++++++--
21 files changed, 970 insertions(+), 23 deletions(-)
Fusion-Task-Id: FN-7898
Fusion-Task-Lineage: a052a6ef-d2d3-45af-9b92-221996780b1b
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-12 20:00:50 -07:00
gsxdsm
70330bcffb
FN-7779: render No message placeholder for empty assistant chat replies
...
Empty final assistant chat messages (e.g. Grok CLI runs that finish with no text) now show a muted "No message" placeholder instead of a blank bubble, in both Chat and Planner Chat via the shared StandardChatSurface component.
- Add isEmptyAssistantMessage check in StandardChatMessageItem: only applies to final persisted assistant messages with no content, tool calls, thinking output, attachments, or failure info
- Render a new .chat-message-content--empty block with the "No message" i18n string when the check matches
- Add shared CSS rule combining --waiting and --empty muted/italic styling, switching to var(--font-size-sm)
- Add "chat.noMessage" translation key to en/app.json and regenerate resources.d.ts
- Document the new behavior in docs/dashboard-guide.md
- Add a patch changeset for @runfusion/fusion
- Add StandardChatSurface.empty-message.test.tsx covering empty/whitespace content, populated content, tool calls, thinking output, attachments, failure info, non-assistant roles, and streaming waiting/thinking states
Files changed:
$(cat /tmp/diffstat_fn7779.txt)
Fusion-Task-Id: FN-7779
Fusion-Task-Lineage: d3ae068e-acba-4b4c-85d6-a788aa24a53b
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-10 07:40:22 -07:00
gsxdsm
efabdd6f04
FN-7651: remove chat "Search in title only" toggle
...
Simplifies chat search UX by always matching both title and message content, removing the now-unneeded title-only toggle button and state.
- Removed the "Search in title only" toggle button and its CSS from ChatView
- Dropped searchInTitleOnly/setSearchInTitleOnly state and logic from useChat; content-search query params are now always-on
- Updated ChatView tests to drop title-only toggle interactions and assertions
- Removed the title-only-search i18n string across all locales
- Updated dashboard-guide.md docs to reflect the simplified search behavior
- Added a patch changeset documenting the removal
Files changed:
.../fn-7651-remove-chat-title-only-toggle.md | 7 +++
docs/dashboard-guide.md | 4 +-
packages/dashboard/app/components/ChatView.css | 18 --------
packages/dashboard/app/components/ChatView.tsx | 26 +++--------
.../__tests__/ChatView.autosize.test.tsx | 2 -
.../__tests__/ChatView.content-search.test.tsx | 51 ++++++----------------
.../components/__tests__/ChatView.draft.test.tsx | 2 -
.../__tests__/ChatView.hash-mention.test.tsx | 2 -
.../__tests__/ChatView.mobile-render.test.tsx | 2 -
.../components/__tests__/ChatView.rooms.test.tsx | 2 -
.../__tests__/ChatView.scroll-to-top.test.tsx | 2 -
.../components/__tests__/ChatView.test-harness.tsx | 2 -
packages/dashboard/app/hooks/useChat.ts | 39 ++++++++---------
packages/i18n/locales/en/app.json | 1 -
packages/i18n/locales/es/app.json | 1 -
packages/i18n/locales/zh-CN/app.json | 1 -
packages/i18n/locales/zh-TW/app.json | 1 -
packages/i18n/locales/ko/app.json | 1 -
packages/i18n/locales/fr/app.json | 1 -
19 files changed, 47 insertions(+), 118 deletions(-)
Fusion-Task-Id: FN-7651
Fusion-Task-Lineage: 5a31825c-8e6e-441f-800d-6053f5f844ba
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-07 23:15:53 -07:00
gsxdsm
6777eea5d2
FN-7631: add content search to Chat sidebar with title-only toggle
...
Chat sidebar search now matches message content by default, not just the conversation title/agent, with an opt-out toggle to restore title-only filtering.
- Add ChatStore.searchSessionsByMessageContent (parameterized LIKE ... ESCAPE) for server-side content search across sessions
- GET /chat/sessions route (register-chat-routes.ts, legacy.ts) gains q/titleOnly query params, debounced server-side content lookup merged with local title/agent matches
- useChat hook exposes searchInTitleOnly state and wires debounced content search into session list results
- ChatView renders a "Search in title only" toggle beside the search box (desktop + mobile) and shows a "Matched: ..." preview snippet on content-matched rows
- Task-planner sessions remain excluded from content matches via the same common-feed visibility guard used for the normal session list
- Add unit/integration tests: chat-store content-search, chat-routes API test, ChatView content-search test
- Update docs/dashboard-guide.md to document the new content search behavior and toggle
- Add changeset fn-7631-chat-content-search.md (@runfusion/fusion minor)
Files changed:
.changeset/fn-7631-chat-content-search.md | 7 +
docs/dashboard-guide.md | 2 +
.../__tests__/chat-store.content-search.test.ts | 157 +++++++++++++++++++++
packages/core/src/chat-store.ts | 64 +++++++++
packages/core/src/chat-types.ts | 8 ++
packages/dashboard/app/api/legacy.ts | 23 ++-
packages/dashboard/app/components/ChatView.css | 30 ++++
packages/dashboard/app/components/ChatView.tsx | 26 ++++
.../__tests__/ChatView.autosize.test.tsx | 2 +
.../__tests__/ChatView.content-search.test.tsx | 114 +++++++++++++++
.../components/__tests__/ChatView.draft.test.tsx | 2 +
.../__tests__/ChatView.hash-mention.test.tsx | 2 +
.../__tests__/ChatView.mobile-render.test.tsx | 2 +
.../components/__tests__/ChatView.rooms.test.tsx | 2 +
.../__tests__/ChatView.scroll-to-top.test.tsx | 2 +
.../components/__tests__/ChatView.test-harness.tsx | 2 +
packages/dashboard/app/hooks/useChat.ts | 105 ++++++++++++--
.../dashboard/src/__tests__/chat-routes.test.ts | 78 ++++++++++
.../dashboard/src/routes/register-chat-routes.ts | 39 ++++-
packages/i18n/locales/en/app.json | 2 +
packages/i18n/locales/es/app.json | 2 +
packages/i18n/locales/fr/app.json | 2 +
packages/i18n/locales/ko/app.json | 2 +
packages/i18n/locales/zh-CN/app.json | 2 +
packages/i18n/locales/zh-TW/app.json | 2 +
25 files changed, 667 insertions(+), 12 deletions(-)
Fusion-Task-Id: FN-7631
Fusion-Task-Lineage: bc68b489-26a7-453e-901b-bda816af364e
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-07 22:06:17 -07:00
gsxdsm
42009cfdb9
FN-7628: allow editing sent chat messages and rewinding agent responses
...
Adds the ability to edit a previously sent message in an agent chat, which rewinds the session/task room and regenerates the response from the edited message.
- Add chat-store support for locating/replacing a message and truncating subsequent history for a rewind
- Add a chat-manager rewind-session flow and a new register-chat-routes endpoint to rewind a room to an edited message
- Add legacy API route wiring and useChat hook support for issuing an edit request
- Add ChatView/StandardChatSurface/TaskPlannerChatTab UI affordances (edit control, styling) to trigger message edits
- Add a changeset documenting the new chat message-edit capability
- Add unit/integration tests covering chat-store rewind logic, chat-manager rewind-session behavior, chat routes, useChat, and ChatView edit UI
Files changed:
.changeset/fn-7628-chat-message-edit.md | 7 +
docs/dashboard-guide.md | 4 +
packages/core/src/__tests__/chat-store.test.ts | 171 ++++++++++++++
packages/core/src/chat-store.ts | 95 ++++++++
packages/dashboard/app/api/legacy.ts | 22 ++
packages/dashboard/app/components/ChatView.css | 78 ++++++
packages/dashboard/app/components/ChatView.tsx | 14 ++
.../app/components/StandardChatSurface.tsx | 87 ++++++-
.../app/components/TaskPlannerChatTab.tsx | 8 +
.../__tests__/ChatView.autosize.test.tsx | 1 +
.../__tests__/ChatView.default-model-icon.test.tsx | 1 +
.../components/__tests__/ChatView.draft.test.tsx | 1 +
.../__tests__/ChatView.hash-mention.test.tsx | 1 +
.../__tests__/ChatView.message-edit.test.tsx | 262 +++++++++++++++++++++
.../__tests__/ChatView.mobile-render.test.tsx | 1 +
.../components/__tests__/ChatView.rooms.test.tsx | 1 +
.../__tests__/ChatView.scroll-to-top.test.tsx | 1 +
.../components/__tests__/ChatView.test-harness.tsx | 1 +
.../dashboard/app/hooks/__tests__/useChat.test.ts | 98 ++++++++
packages/dashboard/app/hooks/useChat.ts | 60 +++++
.../__tests__/chat-manager-rewind-session.test.ts | 185 +++++++++++++++
.../dashboard/src/__tests__/chat-manager.test.ts | 12 +
.../dashboard/src/__tests__/chat-routes.test.ts | 124 ++++++++++
packages/dashboard/src/chat.ts | 147 +++++++++++-
.../dashboard/src/routes/register-chat-routes.ts | 52 ++++
25 files changed, 1429 insertions(+), 5 deletions(-)
Fusion-Task-Id: FN-7628
Fusion-Task-Lineage: 36d98989-1b75-428c-baf1-b2c7e8e78013
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-07 22:06:15 -07:00
gsxdsm
635fca2409
FN-7541: remove chat markdown/plain-text toggle eye icon
...
Remove the chat header markdown/plain-text render toggle so chat messages always render as Markdown.
- Delete the chat-thread-header-render-toggle button (desktop + mobile) and its eye icon from ChatView.tsx
- Remove the associated showAllAsPlain state and related CSS rules from ChatView.css
- Drop the chat.showRenderedMarkdown/chat.showPlainText i18n keys from all locale files and resources.d.ts
- Update ChatView core/core-interactions/mobile tests to match the removed toggle
- Add a changeset documenting the breaking removal
Files changed:
.changeset/FN-7541-remove-chat-eye-icon.md | 7 +++
packages/dashboard/app/components/ChatView.css | 60 +---------------------
packages/dashboard/app/components/ChatView.tsx | 52 +++++--------------
.../__tests__/ChatView.core-interactions.test.tsx | 9 ++--
.../components/__tests__/ChatView.core.test.tsx | 35 ++++---------
.../components/__tests__/ChatView.mobile.test.tsx | 29 ++++-------
packages/i18n/locales/en/app.json | 2 -
packages/i18n/locales/es/app.json | 2 -
packages/i18n/locales/fr/app.json | 2 -
packages/i18n/locales/ko/app.json | 2 -
packages/i18n/locales/zh-CN/app.json | 2 -
packages/i18n/locales/zh-TW/app.json | 2 -
packages/i18n/src/resources.d.ts | 2 -
13 files changed, 46 insertions(+), 160 deletions(-)
Fusion-Task-Id: FN-7541
Fusion-Task-Lineage: 8eac79af-80b0-4ae0-ab86-c3599dd3612c
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-04 21:28:17 -07:00
gsxdsm
a2d6349bb8
FN-7504: keep mobile chat composer above keyboard chrome
...
Keeps the mobile Chat composer visible when iOS keyboard accessory chrome is open.
- Add ChatView-local keyboard accessory clearance for iOS keyboard-active composer padding.
- Reset the clearance when keyboard tracking is suppressed or torn down, without adding persistent thread transforms.
- Cover empty, streaming, room, and Android mobile composer behavior with regression tests.
- Add a patch changeset for the published Fusion package.
Files changed:
.../fn-7504-mobile-chat-composer-keyboard.md | 7 +
packages/dashboard/app/components/ChatView.css | 4 +
packages/dashboard/app/components/ChatView.tsx | 10 ++
.../components/__tests__/ChatView.mobile.test.tsx | 191 +++++++++++++++++++++
4 files changed, 212 insertions(+)
Fusion-Task-Id: FN-7504
Fusion-Task-Lineage: 4e7ed36e-e7d5-4cd1-934b-3b0f19ed6615
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-04 10:42:21 -07:00
gsxdsm
d9ef51492d
FN-7462: show mobile chat conversation titles
...
Mobile direct-chat dropdowns now identify sessions by conversation title instead of model-name text.
- Render the mobile session trigger with the conversation title or Untitled while preserving the provider logo.
- Remove mobile trigger model-tag styling and assert the model badge stays out of the compact header.
- Document the mobile Chat dropdown behavior and add a patch changeset for the published CLI package.
Files changed:
.changeset/fn-7462-mobile-chat-dropdown-title.md | 7 ++++
docs/dashboard-guide.md | 2 +-
packages/dashboard/app/components/ChatView.css | 8 -----
packages/dashboard/app/components/ChatView.tsx | 8 +++--
.../__tests__/ChatView.core-contracts.test.tsx | 25 +++++++++++---
.../components/__tests__/ChatView.mobile.test.tsx | 39 +++++++++++++++++++++-
6 files changed, 72 insertions(+), 17 deletions(-)
Fusion-Task-Id: FN-7462
Fusion-Task-Lineage: 6a6e2ac3-ecca-4076-81c5-b4e4a65eb286
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-03 07:47:03 -07:00
gsxdsm
1430a42dd8
FN-7455: fix mobile direct chat header alignment
...
Keep the mobile direct-chat header on a single left-aligned row without losing accessible context.
- Hide the direct-chat ViewHeader title shell from layout while preserving the accessible Chat heading.
- Keep the back button first and the active session switcher beside it on a non-wrapping mobile row.
- Extend mobile chat coverage for long duplicate session titles, Bot fallback labels, and the CSS layout contract.
- Document the updated mobile Chat header behavior and add a patch changeset.
Files changed:
.changeset/fn-7455-mobile-chat-header-layout.md | 7 ++
docs/dashboard-guide.md | 2 +-
packages/dashboard/app/components/ChatView.css | 17 +++--
packages/dashboard/app/components/ChatView.tsx | 4 +-
.../components/__tests__/ChatView.mobile.test.tsx | 80 ++++++++++++++++++++--
5 files changed, 98 insertions(+), 12 deletions(-)
Fusion-Task-Id: FN-7455
Fusion-Task-Lineage: fe14b542-ff6a-437b-ad89-8011c2b3c299
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-02 18:11:49 -07:00
gsxdsm
1d6011c3a6
FN-7450: collapse mobile chat header rows
...
Collapse the mobile direct chat header into the shared top row.
- Move the mobile direct-thread back button and session switcher into ViewHeader actions.
- Hide the redundant mobile thread header while preserving desktop thread identity and context details.
- Update mobile chat styling, docs, changeset, and header contract tests for the single-row layout.
Files changed:
.changeset/fn-7450-mobile-chat-header.md | 7 +
docs/dashboard-guide.md | 3 +-
packages/dashboard/app/components/ChatView.css | 53 +++++-
packages/dashboard/app/components/ChatView.tsx | 197 +++++++++++----------
.../__tests__/ChatView.core-contracts.test.tsx | 48 ++---
.../components/__tests__/ChatView.mobile.test.tsx | 76 ++++++--
6 files changed, 256 insertions(+), 128 deletions(-)
Fusion-Task-Id: FN-7450
Fusion-Task-Lineage: c266a9b8-7fb1-410e-9c35-adad4c6a2d47
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-02 14:09:35 -07:00
gsxdsm
72adb5231a
FN-7441: add sidebar rename controls for chat conversations
...
Add an explicit sidebar rename affordance for direct Chat conversations while preserving existing rename paths.
- Add edit buttons beside delete controls on direct chat session rows and wire them to the existing rename dialog.
- Keep sidebar action spacing and accessibility labels stable across desktop and mobile layouts.
- Cover sidebar, context-menu, and mobile switcher rename behavior with ChatView tests.
- Document the sidebar rename entry point and add the published package changeset.
Files changed:
.changeset/fn-7441-chat-conversation-rename.md | 7 ++
docs/dashboard-guide.md | 2 +-
packages/dashboard/app/components/ChatView.css | 51 ++++-----
packages/dashboard/app/components/ChatView.tsx | 54 ++++++---
.../__tests__/ChatView.core-interactions.test.tsx | 122 +++++++++++++++++++++
.../components/__tests__/ChatView.mobile.test.tsx | 72 ++++++++++++
6 files changed, 264 insertions(+), 44 deletions(-)
Fusion-Task-Id: FN-7441
Fusion-Task-Lineage: 39a2c393-dd85-4362-9472-58bb137b906c
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-02 13:23:13 -07:00
gsxdsm
7457f04287
FN-7355: reuse standard chat surface for planner
...
Task planner chat now renders through the shared Chat surface while preserving task-scoped behavior.
- Extract shared standard chat message, streaming, tool-call, and action-button rendering for reuse outside ChatView.
- Update TaskPlannerChatTab to use the shared surface for messages, thinking output, mobile send dedupe, and stop generation.
- Cover planner chat standard-surface rendering and mobile first-tap behavior in tests, docs, and a patch changeset.
Files changed:
.changeset/fn-7355-standard-planner-chat.md | 7 +
docs/dashboard-guide.md | 2 +-
packages/dashboard/app/components/ChatView.css | 18 +
packages/dashboard/app/components/ChatView.tsx | 795 ++-------------------
.../app/components/StandardChatSurface.tsx | 417 +++++++++++
.../app/components/TaskPlannerChatTab.css | 39 +-
.../app/components/TaskPlannerChatTab.tsx | 246 ++++---
...etailModal.responsive-and-dependencies.test.tsx | 4 +-
.../__tests__/TaskPlannerChatTab.test.tsx | 52 ++
9 files changed, 693 insertions(+), 887 deletions(-)
Fusion-Task-Id: FN-7355
Fusion-Task-Lineage: 608ee0d7-3a1b-4f5f-a295-d3a4e62d759e
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-01 07:33:56 -07:00
gsxdsm
befb49b1e6
FN-7204: make narrow chat messages full width
...
Narrow chat surfaces now let messages span their constrained container width.
- Add a ChatView container query that makes all message variants full-width in narrow hosts such as Quick Chat popups and the right dock.
- Update the mobile bubble cap to full width while preserving tablet assistant widening and desktop caps.
- Cover the responsive CSS contracts in dashboard tests and document the behavior with a patch changeset.
Files changed:
.changeset/fn-7204-full-width-chat-messages.md | 7 +++++++
docs/dashboard-guide.md | 6 +++---
packages/dashboard/app/components/ChatView.css | 12 +++++++++++-
.../__tests__/ChatView.core-contracts.test.tsx | 20 +++++++++++++++++---
.../components/__tests__/ChatView.mobile.test.tsx | 4 ++--
5 files changed, 40 insertions(+), 9 deletions(-)
Fusion-Task-Id: FN-7204
Fusion-Task-Lineage: 19da0d46-f0bf-46e7-9f87-900c5184f378
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-28 14:56:52 -07:00