gsxdsm
9eff4d424e
FN-6574: repair TaskDetailModal definition test lanes
...
Repair TaskDetailModal tests so Definition-surface assertions remain valid after Chat became the default tab.
- Add regression coverage for explicitly opening the Definition tab while the default tab remains Chat.
- Set definition-focused TaskDetailModal test renders to use initialTab="definition" across the split dashboard lanes.
- Document why Definition-only assertions opt into the Definition tab after the Chat-default-tab change.
Files changed:
.../TaskDetailModal.attachments-and-tabs.test.tsx | 33 +++++++++
...TaskDetailModal.github-tracking-header.test.tsx | 5 ++
.../TaskDetailModal.github-tracking-stale.test.tsx | 11 +++
...lModal.inline-editing-and-integrations.test.tsx | 83 ++++++++++++++++++++++
...skDetailModal.models-progress-workflow.test.tsx | 33 +++++++++
.../__tests__/TaskDetailModal.rendering.test.tsx | 73 +++++++++++++++++++
...etailModal.responsive-and-dependencies.test.tsx | 37 ++++++++++
.../components/__tests__/TaskDetailModal.test.tsx | 17 +++++
8 files changed, 292 insertions(+)
Fusion-Task-Id: FN-6574
Fusion-Task-Lineage: f8d5e038-058a-4d12-8384-2ef603988e3a
2026-06-17 14:52:56 -07:00
gsxdsm
bbceb16d66
FN-6586: fix WhatsApp connection test mock constructor
...
Make the WhatsApp chat test double constructable under Vitest 4.
- Replace the arrow-backed WhatsAppConnection vi.fn mock with a named function implementation usable with new.
- Document the Vitest constructor-mock requirement near the test double.
Files changed:
plugins/fusion-plugin-whatsapp-chat/src/__tests__/index.test.ts | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
Fusion-Task-Id: FN-6586
Fusion-Task-Lineage: 54ed6d1a-c42a-430b-846e-251f8a27e188
2026-06-17 14:52:56 -07:00
gsxdsm
c94fb194c4
FN-6584: keep title summarizer out of workflow lanes
...
Clarify that title summarization remains project/global-scoped instead of a workflow model lane.
- Remove title summarizer entries from the workflow model lane catalog and display grouping.
- Add regression coverage for dashboard workflow settings and core built-in workflow setting parity.
- Update settings documentation to point title summarizer configuration at Project Models.
Files changed:
docs/settings-reference.md | 29 +++++++++++++--------
.../core/src/__tests__/settings-parity.test.ts | 6 +++++
.../app/components/WorkflowSettingsPanel.tsx | 22 +++++-----------
.../__tests__/WorkflowSettingsPanel.test.tsx | 30 +++++++++++++++++++++-
.../__tests__/workflow-setting-display.test.ts | 24 +++++++++++++++++
.../app/components/workflow-setting-display.ts | 12 +++------
6 files changed, 87 insertions(+), 36 deletions(-)
Fusion-Task-Id: FN-6584
Fusion-Task-Lineage: 2246213d-8775-4074-ae8e-04b9afe28f96
2026-06-17 14:52:56 -07:00
gsxdsm
484f016334
FN-6576: align chat send touch dedupe
...
Align the direct and room chat mobile send controls around the same pointer/touch dedupe contract.
- Add a per-gesture touch action latch separate from the trailing synthetic-click latch.
- Apply the two-latch handling to direct send, room send, and send-to-stop transitions.
- Cover repeated iOS taps, pointer/touch/click dedupe, and stop-button swap behavior in ChatView tests.
- Document the shared mobile send dedupe behavior for direct and room chat.
Files changed:
docs/dashboard-guide.md | 2 +-
packages/dashboard/app/components/ChatView.tsx | 70 ++++++++---
.../components/__tests__/ChatView.rooms.test.tsx | 30 +++++
.../app/components/__tests__/ChatView.test.tsx | 132 +++++++++++++++++++++
4 files changed, 215 insertions(+), 19 deletions(-)
Fusion-Task-Id: FN-6576
Fusion-Task-Lineage: b8ef427f-99f0-48d8-8cb8-d72ac352bdeb
2026-06-17 14:52:55 -07:00
gsxdsm
05fe6e5e0c
FN-6575: make CE stage gating opt-out
...
Make Compound Engineering stage launch gating opt-out so registered stages like debug remain launchable by default.
- Replace enabledStages settings schema with disabledStages defaults and docs.
- Derive launchable stages from the live registry minus explicit disabled opt-outs.
- Update orchestrator gating, exports, tests, and plugin docs for the new setting.
- Add a patch changeset for the Compound Engineering plugin behavior fix.
Files changed:
.changeset/fn-6575-ce-stage-optout.md | 5 ++++
docs/plugins/compound-engineering.md | 4 +--
.../fusion-plugin-compound-engineering/README.md | 9 ++++--
.../manifest.json | 8 +++---
.../src/__tests__/manifest.test.ts | 2 +-
.../src/__tests__/settings.test.ts | 33 +++++++++++++---------
.../src/__tests__/skill-wiring.test.ts | 21 +++++++++++++-
.../src/index.ts | 1 +
.../src/session/orchestrator.ts | 9 ++++--
.../src/settings.ts | 33 ++++++++++++++--------
10 files changed, 87 insertions(+), 38 deletions(-)
Fusion-Task-Id: FN-6575
Fusion-Task-Lineage: 903732d7-4ffb-4c8f-ba3e-e517d88bc644
2026-06-17 14:52:55 -07:00
gsxdsm
9cfa6d8176
FN-6578: keep sent chat messages at transcript tail
...
Ensure task-detail chat places newly sent user steering immediately after current transcript output and before later agent replies.
- Clamp optimistic user message timestamps after the latest transcript entry to handle client/server clock skew.
- Preserve the clamped display timestamp when reconciling persisted steering comments to avoid jumps or duplicates.
- Cover in-progress, in-review, done/refinement, desktop, mobile, and persisted reconciliation chat ordering cases.
Files changed:
packages/dashboard/app/components/TaskChatTab.tsx | 28 +++--
.../app/components/__tests__/TaskChatTab.test.tsx | 117 +++++++++++++++++++++
2 files changed, 138 insertions(+), 7 deletions(-)
Fusion-Task-Id: FN-6578
Fusion-Task-Lineage: d9ba03c7-e151-41b6-9b00-87d5732f2fab
2026-06-17 14:52:55 -07:00
gsxdsm
593ebac85c
FN-6573: guard task-list formatter resolution
...
Make fn_task_list surfaces tolerate stale core runtimes without crashing.
- Resolve formatTaskListText from the runtime @fusion/core namespace with a typeof guard.
- Add bounded inline fallback formatting for CLI, dashboard planning-board, and engine triage task-list tools.
- Cover missing formatter exports with regression tests and add a published package changeset.
Files changed:
.changeset/fn-6573-task-list-format-resolve-fix.md | 5 +++
packages/cli/src/__tests__/extension.test.ts | 25 +++++++++------
packages/cli/src/extension.ts | 36 ++++++++++++++++++++--
.../src/__tests__/planning-board-tools.test.ts | 27 +++++++++++++++-
packages/dashboard/src/planning-board-tools.ts | 36 ++++++++++++++++++++--
packages/engine/src/__tests__/triage.test.ts | 25 +++++++++++++++
packages/engine/src/triage.ts | 36 ++++++++++++++++++++--
7 files changed, 174 insertions(+), 16 deletions(-)
Fusion-Task-Id: FN-6573
Fusion-Task-Lineage: 64577f09-5ca5-426e-a453-a91e6c2c3aee
2026-06-17 14:52:55 -07:00
gsxdsm
265d9ec4d3
FN-6572: refresh boards after workflow changes
...
Workflow changes now notify open task views to re-home cards across workflow lanes promptly.
- Emit workflow update SSE events when selecting or clearing a task workflow.
- Refresh task detail board data for any workflow reconciliation result, including preserved columns.
- Cover board, list, route, and workflow results behavior with regression tests.
- Add a patch changeset for the published Fusion package.
Files changed:
.changeset/FN-6572-workflow-switch-lane-move.md | 5 ++
.../app/components/WorkflowResultsTab.tsx | 14 ++--
.../app/components/__tests__/Board.test.tsx | 50 ++++++++++++++
.../app/components/__tests__/ListView.test.tsx | 62 ++++++++++++++++++
.../__tests__/WorkflowResultsTab.test.tsx | 72 +++++++++++++++-----
.../src/__tests__/workflow-routes.test.ts | 76 +++++++++++++++++++++-
.../src/routes/register-workflow-routes.ts | 8 ++-
7 files changed, 260 insertions(+), 27 deletions(-)
Fusion-Task-Id: FN-6572
Fusion-Task-Lineage: c2a9d5a8-6aba-4bce-991f-4a36b941a56f
2026-06-17 14:52:55 -07:00
gsxdsm
f16a57a466
Merge pull request #1683 from Runfusion/feature/factory-view
...
feat: Command Center dashboard + SDLC gap-fill (16 units)
2026-06-18 05:44:43 +08:00
gsxdsm
8037ef15a3
Merge main into feature/factory-view: reconcile lazy-view inventory to 23
...
Resolves conflicts in the lazy-loaded heavy-views inventory. main independently
grew the curated list to 22 (adding AppModals lazy modals); this branch added the
Command Center view. Combined count is 23 — updated the AGENTS.md prose/inventory
and the lazy-loaded-views-docs test contract (count + length assertions) to 23,
keeping main's richer "App-level and AppModals" wording.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-17 11:46:31 -07:00
gsxdsm
a84a8e1793
FN-6570: guard task list formatting fallback
...
Prevent fn_task_list surfaces from crashing when the runtime core namespace lacks the clamp export.
- Add a shared defensive task-list formatter with a bounded fallback clamp.
- Route CLI, dashboard planning-board, and engine triage fn_task_list output through the formatter.
- Cover missing, throwing, and non-string clamp behavior in core and CLI tests.
- Document the resilient task-list formatting behavior and add a patch changeset.
Files changed:
.changeset/fn-6570-task-list-resolve-fix.md | 5 ++
docs/cli-reference.md | 2 +-
packages/cli/src/__tests__/extension.test.ts | 57 +++++++++++++++++++++-
packages/cli/src/extension.ts | 8 ++-
.../core/src/__tests__/task-list-format.test.ts | 49 ++++++++++++++++++-
packages/core/src/index.ts | 2 +-
packages/core/src/task-list-format.ts | 35 +++++++++++++
packages/dashboard/src/planning-board-tools.ts | 8 ++-
packages/engine/src/triage.ts | 8 ++-
9 files changed, 164 insertions(+), 10 deletions(-)
Fusion-Task-Id: FN-6570
Fusion-Task-Lineage: 455f38a8-5e4f-4643-a3ce-088ef0c92b01
2026-06-17 06:14:10 -07:00
gsxdsm
5403a774de
FN-6571: define custom workflow reliability acceptance map
...
Document the reliability bar for custom workflow authoring, selection, execution, recovery, and restart durability.
- Add a docs index entry for the custom workflow reliability acceptance map.
- Define MVP/blocking versus enhancement acceptance areas for custom workflow reliability.
- Catalog critical journeys, measurable success signals, known deferred gaps, non-goals, and release checks.
Files changed:
docs/README.md | 1 +
docs/custom-workflow-reliability-acceptance-map.md | 125 +++++++++++++++++++++
2 files changed, 126 insertions(+)
Fusion-Task-Id: FN-6571
Fusion-Task-Lineage: 81760c46-8dc4-4828-8784-e734c406c996
2026-06-17 05:53:09 -07:00
gsxdsm
e2a3a37b26
FN-6569: make auto-merge retry cap configurable
...
Adds a project setting that controls how many auto-merge conflict retries run before recovery paths give up.
- Add maxAutoMergeRetries to project settings defaults, schema, types, and dashboard controls.
- Resolve the retry cap in engine merge handling, self-healing recovery, stall detection, and blocker fanout logic.
- Cover custom retry caps with core, dashboard, and engine regression tests.
Files changed:
.changeset/fn-6569-max-auto-merge-retries.md | 5 ++
docs/architecture.md | 2 +-
docs/settings-reference.md | 1 +
.../core/src/__tests__/settings-defaults.test.ts | 12 ++++
packages/core/src/in-review-stall.ts | 16 ++++-
packages/core/src/index.ts | 1 +
packages/core/src/settings-schema.ts | 6 ++
packages/core/src/task-priority.ts | 4 +-
packages/core/src/types.ts | 8 +++
.../dashboard/app/components/SettingsModal.tsx | 8 +++
.../components/settings/sections/MergeSection.tsx | 26 +++++++
.../app/hooks/__tests__/useBlockerFanout.test.ts | 5 +-
packages/dashboard/app/hooks/useBlockerFanout.ts | 3 +-
.../auto-merge-retry-cap-settings.test.ts | 79 ++++++++++++++++++++++
packages/engine/src/project-engine.ts | 77 +++++++++++++--------
packages/engine/src/self-healing.ts | 30 +++++---
16 files changed, 236 insertions(+), 47 deletions(-)
Fusion-Task-Id: FN-6569
Fusion-Task-Lineage: 42242d6a-68bc-41f1-b2d9-af2e6f168eed
2026-06-17 04:51:31 -07:00
gsxdsm
6ced5d73de
FN-6568: route merge-seam graph aborts to retry
...
Classify merge-seam abort provenance so non-paused merge graph failures retry instead of parking as pauses.
- Track paused-abort provenance separately from the legacy pause-abort bit.
- Route merge and requestMerge graph failures through bounded auto-merge retry when they are not genuine pauses.
- Preserve user/global pause parking behavior with regression coverage and document the lifecycle invariant.
Files changed:
.../fn-6568-merge-seam-abort-classification.md | 5 +
docs/architecture.md | 1 +
.../engine/src/__tests__/executor-recovery.test.ts | 131 ++++++++++++++++++++-
packages/engine/src/executor.ts | 122 +++++++++++++------
4 files changed, 221 insertions(+), 38 deletions(-)
Fusion-Task-Id: FN-6568
Fusion-Task-Lineage: 5d9ee4f8-0336-4fb9-aa95-beb65e6c1ed9
2026-06-17 04:16:10 -07:00
gsxdsm
4f5c83e09b
FN-6526: add start node entry column inspector
...
Expose the workflow start node's editable entry column through the node inspector.
- Allow the workflow editor inspector to open for start nodes while keeping end nodes structural-only.
- Add a localized entry-column selector and explanatory copy for start nodes.
- Cover start-node inspector behavior and IR column mapping with regression tests.
- Update dashboard workflow editor documentation for start-node editing.
Files changed:
docs/dashboard-guide.md | 2 +-
.../app/components/WorkflowNodeEditor.tsx | 57 ++++++++---
.../__tests__/WorkflowNodeEditor.test.tsx | 106 ++++++++++++++++++++-
.../__tests__/workflow-flow-mapping.test.ts | 13 +++
packages/i18n/locales/en/app.json | 3 +
packages/i18n/locales/es/app.json | 3 +
packages/i18n/locales/fr/app.json | 3 +
packages/i18n/locales/ko/app.json | 3 +
packages/i18n/locales/zh-CN/app.json | 3 +
packages/i18n/locales/zh-TW/app.json | 3 +
10 files changed, 178 insertions(+), 18 deletions(-)
Fusion-Task-Id: FN-6526
Fusion-Task-Lineage: 0195e29b-9cd2-4663-8ad4-30805313ac5f
2026-06-17 03:53:51 -07:00
gsxdsm
257f636642
FN-6537: launch quick scripts in dedicated tabs
...
Quick script runs now open isolated terminal sessions before executing commands.
- Track quick-script invocation generations so rerunning the same command dispatches again.
- Create a fresh terminal tab for every initial command instead of reusing the active shell.
- Cover fresh-open, already-open, same-command rerun, multi-tab, and reopen flows with tests.
- Document that saved scripts launch in dedicated terminal tabs.
Files changed:
packages/dashboard/README.md | 4 +-
packages/dashboard/app/components/AppModals.tsx | 1 +
.../dashboard/app/components/TerminalModal.tsx | 46 ++-
.../app/components/__tests__/AppModals.test.tsx | 1 +
.../components/__tests__/TerminalModal.test.tsx | 339 +++++++++++++++++----
.../app/hooks/__tests__/useModalManager.test.ts | 9 +
packages/dashboard/app/hooks/useModalManager.ts | 4 +
7 files changed, 321 insertions(+), 83 deletions(-)
Fusion-Task-Id: FN-6537
Fusion-Task-Lineage: 7abd60f9-626d-4867-a846-04a444e6d415
2026-06-17 03:47:42 -07:00
gsxdsm
8e9b7b75a4
FN-6534: track docs screenshots
...
Restore the screenshot assets that published docs reference so rendered documentation no longer shows broken images.
- Keep docs/screenshots trackable by removing the blanket ignore rule.
- Add the referenced screenshot PNG assets under docs/screenshots.
- Add a regression test that verifies screenshot Markdown links resolve to tracked files.
Files changed:
.gitignore | 2 +-
docs/screenshots/agents-view.png | Bin 0 -> 88902 bytes
docs/screenshots/chat-view.png | Bin 0 -> 74669 bytes
docs/screenshots/dashboard-overview.png | Bin 0 -> 209599 bytes
docs/screenshots/documents-view.png | Bin 0 -> 37607 bytes
docs/screenshots/git-manager.png | Bin 0 -> 135486 bytes
docs/screenshots/list-view.png | Bin 0 -> 108702 bytes
docs/screenshots/mailbox-view.png | Bin 0 -> 72370 bytes
docs/screenshots/memory-view.png | Bin 0 -> 118122 bytes
docs/screenshots/mission-manager.png | Bin 0 -> 80643 bytes
docs/screenshots/nodes-view.png | Bin 0 -> 59576 bytes
docs/screenshots/roadmaps-view.png | Bin 0 -> 37828 bytes
docs/screenshots/settings.png | Bin 0 -> 131052 bytes
docs/screenshots/skills-view.png | Bin 0 -> 92259 bytes
docs/screenshots/task-detail.png | Bin 0 -> 171502 bytes
docs/screenshots/terminal.png | Bin 0 -> 70273 bytes
docs/screenshots/workflow-steps.png | Bin 0 -> 179100 bytes
.../src/__tests__/docs-screenshot-links.test.ts | 96 +++++++++++++++++++++
18 files changed, 97 insertions(+), 1 deletion(-)
Fusion-Task-Id: FN-6534
Fusion-Task-Lineage: a0840905-8eb5-4da0-8c52-56904ac82e04
2026-06-17 03:42:03 -07:00
gsxdsm
89171e0f16
FN-6531: polish Compound Engineering dashboard UI
...
Align the bundled Compound Engineering plugin with Fusion dashboard spacing, radius, and control conventions.
- Apply shared dashboard card, button, icon button, and input classes to CE panels and controls.
- Replace ad-hoc CE layout spacing and radius values with dashboard design tokens across desktop and mobile surfaces.
- Document the plugin's theme consistency expectations and add tests that guard representative spacing, radius, and textarea token usage.
- Add a patch changeset for the published Fusion package.
Files changed:
.changeset/fn-6531-compound-engineering-ui.md | 5 +
docs/plugins/compound-engineering.md | 5 +
.../src/dashboard/CeFlow.tsx | 10 +-
.../src/dashboard/CompoundEngineeringView.css | 203 ++++++++++++++-------
.../src/dashboard/CompoundEngineeringView.tsx | 11 +-
.../src/dashboard/__tests__/theme-tokens.test.ts | 46 +++++
6 files changed, 215 insertions(+), 65 deletions(-)
Fusion-Task-Id: FN-6531
Fusion-Task-Lineage: be99bbaa-0842-4598-b0a1-4f41816b032b
2026-06-17 03:36:14 -07:00
gsxdsm
4bfb6b46ad
FN-6528: add selection comments for new tasks
...
Adds a text-selection comment flow that opens New Task with source context.
- Add a reusable selection comment hook and popover for editor/document text selections.
- Thread selected-file and line-range context into the New Task modal.
- Enable comment-on-selection entry points in file editor, browser, documents, and memory surfaces.
- Cover the selection flow with focused component and hook tests, plus docs and copy updates.
Files changed:
docs/dashboard-guide.md | 6 +-
packages/dashboard/app/App.tsx | 7 +-
packages/dashboard/app/components/AppModals.tsx | 2 +
.../dashboard/app/components/DocumentsView.tsx | 25 ++-
.../dashboard/app/components/FileBrowserModal.tsx | 3 +
packages/dashboard/app/components/FileEditor.tsx | 35 +++-
packages/dashboard/app/components/MemoryView.tsx | 5 +-
packages/dashboard/app/components/NewTaskModal.tsx | 15 +-
.../app/components/SelectionCommentPopover.css | 73 +++++++++
.../app/components/SelectionCommentPopover.tsx | 181 +++++++++++++++++++++
.../components/__tests__/DocumentsView.test.tsx | 59 +++++++
.../components/__tests__/FileBrowserModal.test.tsx | 79 +++++++++
.../app/components/__tests__/FileEditor.test.tsx | 60 +++++++
.../app/components/__tests__/MemoryView.test.tsx | 48 +++++-
.../app/components/__tests__/NewTaskModal.test.tsx | 17 ++
.../__tests__/SelectionCommentPopover.test.tsx | 75 +++++++++
.../app/hooks/__tests__/useModalManager.test.ts | 29 ++++
.../hooks/__tests__/useSelectionComment.test.ts | 140 ++++++++++++++++
packages/dashboard/app/hooks/useModalManager.ts | 19 ++-
.../dashboard/app/hooks/useSelectionComment.ts | 95 +++++++++++
packages/i18n/locales/en/app.json | 11 ++
21 files changed, 973 insertions(+), 11 deletions(-)
Fusion-Task-Id: FN-6528
Fusion-Task-Lineage: ef79e450-e69f-497b-97cd-f82d3c832fdf
2026-06-17 03:29:39 -07:00
gsxdsm
66be2624fd
FN-6563: align room send tap dedupe
...
Align the chat room composer send button with direct chat's mobile tap handling.
- Dispatch room sends from touch pointer/touchstart paths when mobile browsers suppress click events.
- Consume duplicate synthetic click events so touch gestures send exactly once while desktop clicks still work.
- Cover iOS, Android, desktop, and room-to-direct routing parity in room chat tests.
- Document the mobile room composer send-button dedupe contract.
Files changed:
docs/dashboard-guide.md | 1 +
packages/dashboard/app/components/ChatView.tsx | 21 +++--
.../components/__tests__/ChatView.rooms.test.tsx | 90 ++++++++++++++++++++++
3 files changed, 104 insertions(+), 8 deletions(-)
Fusion-Task-Id: FN-6563
Fusion-Task-Lineage: 9abd1e29-1b25-4105-9326-5e479f5cb5e5
2026-06-17 03:23:47 -07:00
gsxdsm
7b3c628fba
FN-6524: add simple editor step reordering
...
Enable custom workflow authors to reorder simple editor steps from the mobile graph outline.
- Add move up/down controls for editable outline rows while keeping built-in workflows read-only.
- Swap sibling React Flow positions within columns or template parents so persisted order follows existing graph ordering.
- Cover reorder availability, behavior, styling, and documentation updates.
Files changed:
docs/dashboard-guide.md | 2 +-
.../app/components/MobileWorkflowGraphView.css | 17 ++-
.../app/components/MobileWorkflowGraphView.tsx | 134 +++++++++++++++------
.../app/components/WorkflowNodeEditor.tsx | 20 ++-
.../__tests__/MobileWorkflowGraphView.css.test.ts | 8 +-
.../__tests__/MobileWorkflowGraphView.test.tsx | 123 ++++++++++++++++++-
.../__tests__/workflow-mobile-graph.test.ts | 75 +++++++++++-
.../app/components/workflow-mobile-graph.ts | 41 +++++++
8 files changed, 372 insertions(+), 48 deletions(-)
Fusion-Task-Id: FN-6524
Fusion-Task-Lineage: 25ffa5aa-bdfb-4ee3-9365-07029f5bbbf6
2026-06-17 03:12:16 -07:00
gsxdsm
550715d10c
FN-6518: focus Quick Chat composer on open
...
Quick Chat now places keyboard focus in the composer whenever the panel opens without stealing existing external focus.
- Focus the Quick Chat composer after open on both desktop and mobile viewports.
- Preserve the existing mobile stealth-input handoff while letting desktop use the ready-state focus path.
- Add regression coverage for desktop, delayed session readiness, mobile handoff, and external focus preservation.
- Document the updated Quick Chat focus behavior and add a patch changeset.
Files changed:
.changeset/fn-6518-quick-chat-focus.md | 5 +
docs/dashboard-guide.md | 2 +-
packages/dashboard/app/components/QuickChatFAB.tsx | 6 +-
.../app/components/__tests__/QuickChatFAB.test.tsx | 102 +++++++++++++++++++++
4 files changed, 113 insertions(+), 2 deletions(-)
Fusion-Task-Id: FN-6518
Fusion-Task-Lineage: 9fdaba17-e3f4-4269-91d9-aaad152c2ab1
2026-06-17 03:07:05 -07:00
gsxdsm
d17a6dbd74
FN-6535: harden task list dist runtime coverage
...
Add regression coverage that exercises fn_task_list through the built @fusion/core dist exports.
- Expand core task-list formatting tests from export checks to a runtime-shaped fn_task_list execution path.
- Add a CLI extension regression test that mocks @fusion/core to the built dist barrel before executing fn_task_list.
- Cover broad and filtered task-list truncation paths with dependency rendering to catch missing clampTaskListText exports.
Files changed:
packages/cli/src/__tests__/extension.test.ts | 82 ++++++++++++++-
.../core/src/__tests__/task-list-format.test.ts | 110 ++++++++++++++++++++-
2 files changed, 190 insertions(+), 2 deletions(-)
Fusion-Task-Id: FN-6535
Fusion-Task-Lineage: dd405811-5655-406d-92e6-53f0e35ac217
2026-06-17 02:50:29 -07:00
gsxdsm
4a9fe9957d
FN-6504: allow attachment-only chat sends
...
Allow chat composers and API routes to deliver attachment-only messages without placeholder text.
- Permit main chat sends when staged attachments exist even if the textarea is blank.
- Accept upload-backed and referenced attachment-only payloads in chat and room message routes while still rejecting fully empty messages.
- Add UI/API regression coverage, documentation, and a patch changeset for attachment-only chat sends.
Files changed:
.changeset/fn-6504-attachment-only-send.md | 5 ++
docs/dashboard-guide.md | 1 +
packages/dashboard/app/components/ChatView.tsx | 72 ++++++++++++++++++++--
.../app/components/__tests__/ChatView.test.tsx | 39 ++++++++++++
.../src/__tests__/chat-attachment-routes.test.ts | 24 +++++++-
.../src/__tests__/chat-routes.rooms.test.ts | 62 +++++++++++++------
.../src/routes/register-chat-room-routes.ts | 13 +++-
.../dashboard/src/routes/register-chat-routes.ts | 21 ++++---
8 files changed, 205 insertions(+), 32 deletions(-)
Fusion-Task-Id: FN-6504
Fusion-Task-Lineage: f64f7874-4e32-4ae5-a5b1-d8c4b78e23dd
2026-06-17 02:39:36 -07:00
gsxdsm
a998f63242
FN-6523: add mobile workflow connection picker
...
Adds a touch-friendly path for creating workflow edges from the mobile editor.
- Add mobile node Connect controls with a target picker that delegates to the existing edge validation path.\n- Surface duplicate-edge feedback and select newly created mobile edges for editing.\n- Document the mobile connection flow, add regression coverage, register locale strings, and add the required changeset.\n\nFiles changed:\n .changeset/fn-6523-mobile-workflow-connect.md | 5 +\n docs/workflow-editor.md | 2 +-\n .../app/components/MobileWorkflowGraphView.css | 67 ++++++++++--\n .../app/components/MobileWorkflowGraphView.tsx | 76 ++++++++++++--\n .../app/components/WorkflowNodeEditor.tsx | 69 +++++++++++--\n .../__tests__/WorkflowNodeEditor.test.tsx | 114 +++++++++++++++++++++\n .../app/components/workflow-mobile-graph.ts | 7 ++\n packages/i18n/locales/en/app.json | 4 +\n packages/i18n/locales/es/app.json | 4 +\n packages/i18n/locales/fr/app.json | 4 +\n packages/i18n/locales/ko/app.json | 4 +\n packages/i18n/locales/zh-CN/app.json | 4 +\n packages/i18n/locales/zh-TW/app.json | 4 +\n 13 files changed, 342 insertions(+), 22 deletions(-)
Fusion-Task-Id: FN-6523
Fusion-Task-Lineage: 23b32826-278f-4230-a49c-22755ee700cc
2026-06-17 02:06:32 -07:00
gsxdsm
448ac6ab52
FN-6533: persist markdown preview preference
...
Remember the file viewer markdown Edit/Preview selection across editable mounts and browser sessions.
- Add localStorage-backed boolean preference helpers for the markdown preview toggle.
- Initialize editable markdown files from the stored preference while preserving the default edit mode.
- Cover persistence, read-only preview behavior, non-markdown files, and unavailable storage with FileEditor tests.
Files changed:
packages/dashboard/app/components/FileEditor.tsx | 32 +++++++-
.../app/components/__tests__/FileEditor.test.tsx | 90 +++++++++++++++++++++-
2 files changed, 120 insertions(+), 2 deletions(-)
Fusion-Task-Id: FN-6533
Fusion-Task-Lineage: 54cfa3fa-56a3-4db8-85a2-5545e0fa16aa
2026-06-17 01:51:11 -07:00
gsxdsm
914842fb4f
FN-6532: make Chat the default task detail tab
...
Chat now opens first in task detail while explicit tab entrypoints continue to work.
- Default task detail modal state and open-detail calls to the Chat tab.
- Reorder the task detail tab strip so Chat appears before Definition.
- Extend modal and tab tests to cover Chat-first defaults and explicit tab preservation.
- Add a patch changeset for the published Fusion package.
Files changed:
.changeset/fn-6532-chat-first-task-detail.md | 5 ++
.../dashboard/app/components/TaskDetailModal.tsx | 24 ++++---
.../app/components/__tests__/AppModals.test.tsx | 2 +-
.../TaskDetailModal.attachments-and-tabs.test.tsx | 81 +++++++++++++++++-----
.../TaskDetailModal.definition-actions.test.tsx | 77 ++++++++++++++++----
.../app/hooks/__tests__/useModalManager.test.ts | 4 +-
packages/dashboard/app/hooks/useModalManager.ts | 13 +++-
7 files changed, 162 insertions(+), 44 deletions(-)
Fusion-Task-Id: FN-6532
Fusion-Task-Lineage: 7824f253-2a54-4e2d-af64-ed082ce8fbf9
2026-06-17 01:45:36 -07:00
gsxdsm
d7a9dfe398
FN-6530: Show only title column by default
...
List view now starts with a title-only table while preserving column toggle customization.
- Set the first-run default visible column set to Title only.
- Keep all optional column toggles available and saved preferences authoritative.
- Update ListView tests for title-only defaults, bulk-edit spans, and title hiding flows.
Files changed:
packages/dashboard/app/components/ListView.tsx | 6 +-
.../app/components/__tests__/ListView.test.tsx | 87 ++++++++++++++--------
2 files changed, 61 insertions(+), 32 deletions(-)
Fusion-Task-Id: FN-6530
Fusion-Task-Lineage: 7838b5fa-2424-4fb6-9e80-7806aaf6eeb3
2026-06-17 01:39:31 -07:00
gsxdsm
d0de886f11
FN-6529: reduce list task active highlights
...
List-view active task rows now use a calmer static highlight instead of the animated glow.
- Replace desktop list-row glow animation with a subtle background and inset border.
- Match the mobile list-card active styling to the toned-down static highlight.
- Rename the ListView test case to document the expected static highlight styling.
Files changed:
packages/dashboard/app/components/ListView.css | 16 ++++++++--------
.../dashboard/app/components/__tests__/ListView.test.tsx | 2 +-
2 files changed, 9 insertions(+), 9 deletions(-)
Fusion-Task-Id: FN-6529
Fusion-Task-Lineage: 67286eee-0360-41dd-be78-592b40eb5bee
2026-06-17 01:34:40 -07:00
gsxdsm
a76ea5862a
FN-6513: keep quick chat anchored after loading
...
Quick chat now re-anchors to the latest message when opened content finishes loading.
- Track message-loading state with the previous open thread state.
- Re-run bottom anchoring when direct or room-thread messages transition from loading to loaded.
- Cover streaming, direct thread, and mobile room-thread tail anchoring with regression tests.
Files changed:
packages/dashboard/app/components/QuickChatFAB.tsx | 21 ++-
.../app/components/__tests__/QuickChatFAB.test.tsx | 176 +++++++++++++++++++++
2 files changed, 193 insertions(+), 4 deletions(-)
Fusion-Task-Id: FN-6513
Fusion-Task-Lineage: 2cf3e110-b447-4182-a7ff-886a2b5cb815
2026-06-17 01:29:39 -07:00
gsxdsm
4e47c87c43
FN-6510: preserve last opened quick chat session
...
Quick Chat now restores the persisted session id without same-target auto-init replacing it.
- Wait for persisted session lookup before auto-initializing the selected quick chat target.
- Skip the first same-target switch after restoring an existing session so the restored id remains authoritative.
- Prefer message activity over metadata-only updates when falling back from stale persisted sessions.
- Cover model, agent, and mobile restoration paths plus hook-level same-target replay behavior.
- Document the quick chat last-session restoration regression and invariant.
Files changed:
docs/solutions/ui-bugs/quick-chat-last-opened-session-restore.md | 60 ++++++++++
packages/dashboard/app/components/QuickChatFAB.tsx | 23 +++-
packages/dashboard/app/components/__tests__/QuickChatFAB.test.tsx | 130 ++++++++++++++++++++-
packages/dashboard/app/hooks/__tests__/useQuickChat.test.ts | 38 ++++++
4 files changed, 246 insertions(+), 5 deletions(-)
Fusion-Task-Id: FN-6510
Fusion-Task-Lineage: 135807dd-30f3-4032-9de8-f34927e5c44d
2026-06-17 01:22:21 -07:00
gsxdsm
bd328f2282
FN-6536: apply terminal preferences to sessions
...
Extend embedded session terminals to reuse the saved TerminalModal preferences while preserving replay safety.
- Apply shared font, font size, cursor style, cursor blink, and renderer preferences when SessionTerminal initializes.
- Live-apply font and cursor preference changes from storage events without remounting the terminal.
- Keep cursor blink disabled for read-only, idle, and ended sessions, and skip WebGL on mobile viewports.
- Add desktop and mobile tests plus dashboard documentation for embedded session preference behavior.
Files changed:
docs/dashboard-guide.md | 1 +
.../dashboard/app/components/SessionTerminal.tsx | 96 +++++++++---
.../__tests__/SessionTerminal.mobile.test.tsx | 53 ++++++-
.../components/__tests__/SessionTerminal.test.tsx | 166 +++++++++++++++++++--
4 files changed, 286 insertions(+), 30 deletions(-)
Fusion-Task-Id: FN-6536
Fusion-Task-Lineage: 836eafd7-923d-45b7-9cf6-e1236af8f168
2026-06-17 01:15:20 -07:00
gsxdsm
e923b5e84d
FN-6527: add terminal shortcuts and preferences
...
Adds persistent terminal customization and keyboard-less navigation controls to the dashboard terminal.
- Add arrow shortcut buttons that send ANSI cursor sequences alongside existing Ctrl/Alt helpers.
- Add localStorage-backed terminal preferences for font family, size, cursor style, blink, and renderer with legacy font-size migration.
- Apply font and cursor preferences live, document renderer behavior, and cover preference parsing and modal controls with tests.
Files changed:
docs/dashboard-guide.md | 3 +
.../dashboard/app/components/TerminalModal.css | 57 ++++-
.../dashboard/app/components/TerminalModal.tsx | 271 ++++++++++++++++-----
.../components/__tests__/TerminalModal.test.tsx | 135 +++++++++-
.../utils/__tests__/terminalPreferences.test.ts | 90 +++++++
.../dashboard/app/utils/terminalPreferences.ts | 197 +++++++++++++++
6 files changed, 690 insertions(+), 63 deletions(-)
Fusion-Task-Id: FN-6527
Fusion-Task-Lineage: bc863486-9d2c-41d5-84a4-7b697e81a298
2026-06-17 00:06:24 -07:00
gsxdsm
934baa9259
FN-6503: fix Android quick chat keyboard settle
...
Keep the mobile quick chat panel aligned when Android Chrome settles the first keyboard open after focus handoff.
- Re-sample visualViewport immediately on focusin and during a bounded settle tail.
- Preserve synchronous resize/scroll mirroring for iOS offsetTop compensation.
- Add regression coverage for Android first-open focus handoff, reopen behavior, iOS offsetTop, and desktop no-op mirroring.
Files changed:
packages/dashboard/app/components/QuickChatFAB.tsx | 65 ++++++++++++++-
.../app/components/__tests__/QuickChatFAB.test.tsx | 93 +++++++++++++++++++++-
2 files changed, 153 insertions(+), 5 deletions(-)
Fusion-Task-Id: FN-6503
Fusion-Task-Lineage: e847e4a8-9f80-436d-8a4b-461e47dd0f87
2026-06-16 23:54:29 -07:00
gsxdsm
a067a33a20
FN-6525: reconcile stale workflow node columns
...
Reconcile workflow editor node placement when columns are deleted and re-added.
- Clear node column references that no longer exist before rebuilding swimlane bands.
- Preserve valid column placements across rename and reorder flows.
- Add regression coverage for delete-all/re-add column saves and IR validation.
Files changed:
.../app/components/WorkflowNodeEditor.tsx | 5 +-
.../__tests__/WorkflowNodeEditor.test.tsx | 35 ++++++++-
.../__tests__/workflow-flow-mapping.test.ts | 85 ++++++++++++++++++++++
.../app/components/workflow-flow-mapping.ts | 30 ++++++++
4 files changed, 153 insertions(+), 2 deletions(-)
Fusion-Task-Id: FN-6525
Fusion-Task-Lineage: e379ea8c-995f-4b1c-a2b9-30821bb5ae8c
2026-06-16 23:45:56 -07:00
gsxdsm
0fb6757100
FN-6521: refresh workflow documentation
...
Refresh the public docs to describe current workflow selection, editor, chat, and feature surfaces.
- Add a top-level README workflow overview with built-in workflow IDs and editor links.
- Update localized READMEs and docs index entries for workflows, chat, plugins, research, and remote access.
- Expand Getting Started, Dashboard Guide, and Workflow Steps with workflow selection and authoring guidance.
Files changed:
README.es.md | 71 ++++++++++++++++++++++++++++++++-----------------
README.fr.md | 67 +++++++++++++++++++++++++++++++---------------
README.ko.md | 71 ++++++++++++++++++++++++++++++++-----------------
README.md | 65 +++++++++++++++++++++++++++++---------------
README.zh-CN.md | 71 ++++++++++++++++++++++++++++++++-----------------
README.zh-TW.md | 71 ++++++++++++++++++++++++++++++++-----------------
docs/README.md | 11 ++++----
docs/dashboard-guide.md | 11 +++++---
docs/getting-started.md | 18 ++++++++++---
docs/workflow-steps.md | 34 +++++++++++++++++++++++
10 files changed, 339 insertions(+), 151 deletions(-)
Fusion-Task-Id: FN-6521
Fusion-Task-Lineage: 6f8683fe-4a7c-4d41-bcf6-e6e5db9b100f
2026-06-16 23:38:50 -07:00
gsxdsm
177cce4059
FN-6515: guard task list formatting exports
...
Add regression coverage for task-list formatter exports and broad list clamping.\n\n- Verify @fusion/core source and built dist barrels expose task-list formatting helpers.\n- Cover broad fn_task_list output clamping as one plain-text block.\n- Document the built-dist guard expectation for runtime-consumed core exports.\n\nFiles changed:\n docs/testing.md | 2 ++\n packages/cli/src/__tests__/extension.test.ts | 35 ++++++++++++++++++++++\n .../core/src/__tests__/task-list-format.test.ts | 32 ++++++++++++++++++++\n 3 files changed, 69 insertions(+)
Fusion-Task-Id: FN-6515
Fusion-Task-Lineage: b19dd616-6b5a-4b8a-8909-f368459fdc53
2026-06-16 23:32:38 -07:00
gsxdsm
f14f9b2e45
FN-6516: preserve tablet chat sidebar width during typing
...
Keep tablet chat sidebars visible at the persisted width while the software keyboard is open.
- Preserve the non-mobile sidebar inline width instead of forcing tablet keyboard sessions to the minimum width.\n- Extend ChatView tablet viewport tests for default, persisted custom, and collapsed-sidebar keyboard states.\n- Document the FN-6516 refinement in the tablet keyboard viewport solution note.\n\nFiles changed:\n .../ui-bugs/tablet-keyboard-viewport-mode-flip.md | 2 +\n packages/dashboard/app/components/ChatView.tsx | 9 ++--\n .../__tests__/ChatView.mobile-render.test.tsx | 55 ++++++++++++++++++----\n 3 files changed, 53 insertions(+), 13 deletions(-)
Fusion-Task-Id: FN-6516
Fusion-Task-Lineage: 51927ebb-3a9e-4dc5-827a-33c76a142335
2026-06-16 23:21:14 -07:00
gsxdsm
4e0a860ee8
FN-6502: make Quick Chat default taller on tablets
...
Quick Chat now opens with more vertical room on tablet-sized floating panels without overwriting saved desktop sizes.
- Compute a taller default panel height for tablet/mobile floating viewports while preserving desktop and full-screen portrait mobile behavior.
- Track explicit resize activity before persisting panel size so computed defaults do not pollute stored preferences.
- Add coverage for tablet defaults, persisted desktop sizes, tablet persistence preservation, and portrait mobile full-screen sizing.
Files changed:
packages/dashboard/app/components/QuickChatFAB.tsx | 37 ++++++++---
.../app/components/__tests__/QuickChatFAB.test.tsx | 73 ++++++++++++++++++++++
2 files changed, 102 insertions(+), 8 deletions(-)
Fusion-Task-Id: FN-6502
Fusion-Task-Lineage: 3b8af4e2-64f9-42b8-8373-feab1e8d77ae
2026-06-16 23:14:46 -07:00
gsxdsm
c073fdc85c
FN-6522: load earlier task chat messages
...
Preserve task-detail chat reading position while paging older agent log entries.
- Add top-of-transcript pagination with an explicit Load previous messages control and loading state.
- Preserve scroll anchoring when earlier log entries are prepended while keeping live bottom-follow behavior for new output.
- Cover scroll-to-top loading and manual loading with regression tests and document the behavior.
Files changed:
docs/dashboard-guide.md | 2 +-
packages/dashboard/app/components/TaskChatTab.css | 28 ++++
packages/dashboard/app/components/TaskChatTab.tsx | 82 ++++++++++-
.../app/components/__tests__/TaskChatTab.test.tsx | 163 ++++++++++++++++++++-
4 files changed, 269 insertions(+), 6 deletions(-)
Fusion-Task-Id: FN-6522
Fusion-Task-Lineage: b93464cf-0b9a-4a73-b4f5-4f3a5e34cc89
2026-06-16 23:04:45 -07:00
gsxdsm
c8788d85c5
FN-6519: align workflow trait validation details
...
Align client workflow column validation with server trait conflict reporting.
- Add a helper that maps conflicting composed traits back to their catalog trait IDs.
- Populate client validation traitIds for complete/intake/archive/WIP conflicts.
- Cover client/server traitId parity for save-blocking workflow validation errors.
- Add a patch changeset for the published Fusion package.
Files changed:
.../FN-6519-custom-workflow-trait-validator.md | 5 +++++
.../__tests__/workflow-flow-mapping.test.ts | 19 ++++++++++++++++++-
.../app/components/workflow-flow-mapping.ts | 21 ++++++++++++++++++---
3 files changed, 41 insertions(+), 4 deletions(-)
Fusion-Task-Id: FN-6519
Fusion-Task-Lineage: c6f3197f-5474-482b-a63b-9d20d3af3aa9
2026-06-16 22:59:08 -07:00
gsxdsm
cc5c5eb7bd
FN-6520: document workflow editor
...
Add a canonical dashboard workflow editor guide and connect it from related docs.
- Add a new Workflow Editor guide covering entry points, canvas anatomy, authoring panels, settings values, templates, AI design, import/export, and mobile behavior.
- Link the guide from the docs index, settings reference, and Workflow IR overview.
- Require the workflow editor guide in the docs README index coverage test.
Files changed:
docs/README.md | 1 +
docs/settings-reference.md | 2 +-
docs/workflow-editor.md | 158 +++++++++++++++++++++
docs/workflow-steps.md | 2 +-
.../cli/src/__tests__/docs-readme-index.test.ts | 1 +
5 files changed, 162 insertions(+), 2 deletions(-)
Fusion-Task-Id: FN-6520
Fusion-Task-Lineage: 9a2525a5-6ff8-48de-ae13-a7c7c5844f99
2026-06-16 22:52:00 -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
aadc0a0817
FN-6517: keep expanded chat title visible
...
Expanded agent chat now keeps the modal title context while hiding the rest of the chrome.
- Preserve the task title row when chat expands and keep header spacing balanced.
- Continue hiding tabs and modal actions while expanded chat occupies the modal body.
- Extend desktop, mobile, and embedded chat coverage for the expanded title-row behavior.
Files changed:
.../dashboard/app/components/TaskDetailModal.css | 10 ++--
.../TaskDetailModal.attachments-and-tabs.test.tsx | 58 ++++++++++++++++++++--
2 files changed, 59 insertions(+), 9 deletions(-)
Fusion-Task-Id: FN-6517
Fusion-Task-Lineage: 77a82f16-5711-4e8d-9560-fd6e0fdfa655
2026-06-16 22:39:06 -07:00
gsxdsm
d35f93e1ef
FN-6512: refresh mobile PWA icons
...
Refresh the dashboard launcher artwork so installed mobile PWAs use the Fusion brand mark.
- Generate 192px and 512px dashboard PWA icons from the canonical logo in the desktop icon generator.
- Bump the service-worker cache name so installed PWAs refresh cached icon assets.
- Strengthen PWA tests to validate icon wiring, PNG dimensions, opacity, and non-blank brand content.
- Document the PWA icon regeneration workflow and add a patch changeset.
Files changed:
.changeset/fn-6512-dashboard-pwa-icons.md | 5 +
docs/dashboard-guide.md | 4 +
packages/dashboard/app/__tests__/pwa.test.ts | 178 ++++++++++++++++++++---
packages/dashboard/app/public/icons/icon-192.png | Bin 5466 -> 4634 bytes
packages/dashboard/app/public/icons/icon-512.png | Bin 17687 -> 14826 bytes
packages/dashboard/app/public/sw.js | 2 +-
packages/desktop/scripts/generate-icons.ts | 75 +++++++---
7 files changed, 227 insertions(+), 37 deletions(-)
Fusion-Task-Id: FN-6512
Fusion-Task-Lineage: a7a46e0d-fa7d-4ca1-b49c-f083aed92b17
2026-06-16 22:29:07 -07:00
gsxdsm
af1ddda318
FN-6511: bound planning and subtask generation timeouts
...
Ensure stalled planning and subtask agent setup reaches terminal error states instead of hanging sessions.\n\n- Pass abort signals through GenerationGuard-managed operations.\n- Wrap planning and subtask agent construction in generation timeouts and dispose aborted agents.\n- Add regression coverage for stalled agent construction, stalled prompts, SSE error replay, and retry behavior.\n\nFiles changed:\n .../src/__tests__/session-error-recovery.test.ts | 83 ++++++++++\n .../src/__tests__/subtask-breakdown.test.ts | 171 ++++++++++++++++++++-\n packages/dashboard/src/ai-session-timeout.ts | 4 +-\n packages/dashboard/src/planning.ts | 56 +++++--\n packages/dashboard/src/subtask-breakdown.ts | 101 ++++++++----\n 5 files changed, 366 insertions(+), 49 deletions(-)
Fusion-Task-Id: FN-6511
Fusion-Task-Lineage: a1727b80-23f7-4dfd-8ac1-cafd540a6abb
2026-06-16 22:20:49 -07:00
gsxdsm
669b106548
FN-6514: restore QuickEntryBox test isolation
...
Rescues the QuickEntryBox suite by restoring jsdom globals instead of keeping it quarantined.
- Snapshot and restore QuickEntryBox viewport, visibility, matchMedia, and object URL descriptors after each test.
- Add a guard test that proves mutated jsdom globals return to their original descriptors.
- Remove the QuickEntryBox quarantine entries while documenting the rescue pattern.
Files changed:
docs/testing.md | 2 +
.../components/__tests__/QuickEntryBox.test.tsx | 50 ++++++++++++++++++++++
packages/dashboard/vitest.config.ts | 7 ++-
scripts/lib/test-quarantine.json | 5 ---
4 files changed, 55 insertions(+), 9 deletions(-)
Fusion-Task-Id: FN-6514
Fusion-Task-Lineage: 12f20ad8-19ee-4168-91a9-33193b1ab5f7
2026-06-16 22:13:46 -07:00
gsxdsm
1c3a4df255
FN-6509: show resumable subtask progress
...
Subtask breakdowns now show live progress immediately and remain resumable after closing.
- Add startup and reconnecting progress states with empty-thinking feedback.
- Preserve generating and editing subtask sessions for background resume instead of canceling on close.
- Cover mobile, desktop, running, awaiting-input, and completed resume flows in modal tests.
- Document resumable subtask generation behavior and add localized strings.
Files changed:
docs/task-management.md | 2 +
.../app/components/SubtaskBreakdownModal.tsx | 80 ++++++++---
.../__tests__/SubtaskBreakdownModal.test.tsx | 156 ++++++++++++++++++---
packages/i18n/locales/en/app.json | 5 +
packages/i18n/src/resources.d.ts | 5 +
5 files changed, 209 insertions(+), 39 deletions(-)
Fusion-Task-Id: FN-6509
Fusion-Task-Lineage: 3bc143fa-a00f-42b6-afd4-ba4fb65b4b63
2026-06-16 21:37:32 -07:00
gsxdsm
602fefff19
FN-6498: smooth mobile quick chat viewport tracking
...
Keep the mobile Quick Chat sheet aligned with visualViewport changes without redundant layout writes.
- Dedupe repeated mobile visualViewport samples before updating sheet CSS variables.
- Reset viewport tracking state and CSS variables on close/unmount to prevent stale reopen sizing.
- Add regression coverage for mobile tracking, reopen behavior, desktop bypass, and missing visualViewport fallback.
- Document the viewport-smoothing pitfall alongside the keyboard board-shift solution.
Files changed:
.../quick-chat-mobile-keyboard-board-shift.md | 4 +
packages/dashboard/app/components/QuickChatFAB.tsx | 25 +++-
.../app/components/__tests__/QuickChatFAB.test.tsx | 141 +++++++++++++++++++++
3 files changed, 167 insertions(+), 3 deletions(-)
Fusion-Task-Id: FN-6498
Fusion-Task-Lineage: 23c17843-778a-4337-aeed-c80793615738
2026-06-16 21:25:39 -07:00
gsxdsm
cc022867be
FN-6505: inline chat attachment contents for agents
...
Chat agents now receive readable attachment content when responding to user prompts.
- Add shared attachment loading and formatting for session and room chat surfaces.
- Inline supported text attachments and forward image attachments through prompt options.
- Cover session and room attachment handling with regression tests and document the behavior.
Files changed:
.changeset/fuzzy-chat-attachments.md | 5 +
docs/dashboard-guide.md | 2 +
.../src/__tests__/chat-attachment-content.test.ts | 139 ++++++++++++++++++
.../dashboard/src/__tests__/chat-manager.test.ts | 123 ++++++++++++++++
packages/dashboard/src/chat-attachment-content.ts | 163 +++++++++++++++++++++
packages/dashboard/src/chat.ts | 43 +++++-
6 files changed, 470 insertions(+), 5 deletions(-)
Fusion-Task-Id: FN-6505
Fusion-Task-Lineage: 9bc7a65c-2516-42a4-8d3c-2bc53ea1c895
2026-06-16 21:09:20 -07:00