Fusion (runfusion.ai)
4708c0c7a8
feat(FN-5049): complete Step 2 — tighten PR modal mobile spacing
...
Fusion-Task-Id: FN-5049
Fusion-Task-Lineage: d4b3872d-00ff-466a-bb0d-893c5d90962c
2026-05-18 07:52:44 -07:00
Fusion (runfusion.ai)
b4d6b85692
feat(FN-5049): complete Step 1 — add PR create modal scroll body
...
Fusion-Task-Id: FN-5049
Fusion-Task-Lineage: d4b3872d-00ff-466a-bb0d-893c5d90962c
2026-05-18 07:52:44 -07:00
Fusion (runfusion.ai)
d955c7d279
test(FN-5046): complete Step 5 — cover terminal-only settings modal behavior
...
Fusion-Task-Id: FN-5046
Fusion-Task-Lineage: 0748fd0e-70c3-44b9-a599-0df5255d4d60
2026-05-18 07:31:29 -07:00
Fusion (runfusion.ai)
000b0e6c93
feat(FN-5046): complete Step 4 — add terminal-only notification mode in settings UI
...
Fusion-Task-Id: FN-5046
Fusion-Task-Lineage: 0748fd0e-70c3-44b9-a599-0df5255d4d60
2026-05-18 07:31:29 -07:00
Fusion (runfusion.ai)
14298615d5
feat(FN-5044): complete Step 1 — gate Create PR for auto-merge
...
Fusion-Task-Id: FN-5044
Fusion-Task-Lineage: 84520cf4-15bb-40b3-9fd3-926bfbcdc37e
2026-05-18 07:14:27 -07:00
Fusion (runfusion.ai)
68c63954ce
test(FN-5045): complete Step 3 — update Create PR chip styling assertions
...
Fusion-Task-Id: FN-5045
Fusion-Task-Lineage: d4b967ed-64b6-4a51-9f33-bb7a19e7739d
2026-05-18 07:04:43 -07:00
Fusion (runfusion.ai)
99a1a88f0e
feat(FN-5045): complete Step 2 — swap Create PR quick action to chip class
...
Fusion-Task-Id: FN-5045
Fusion-Task-Lineage: d4b967ed-64b6-4a51-9f33-bb7a19e7739d
2026-05-18 07:04:43 -07:00
Fusion (runfusion.ai)
5fa22044cc
feat(FN-5045): complete Step 1 — add chip-styled Create PR action class
...
Fusion-Task-Id: FN-5045
Fusion-Task-Lineage: d4b967ed-64b6-4a51-9f33-bb7a19e7739d
2026-05-18 07:04:43 -07:00
Fusion (runfusion.ai)
5a1794fc55
feat(FN-5018): wire create-pr review surface in TaskReviewTab
...
Wires the PR-create review surface into the task review flow, adding the UI surface to `TaskReviewTab`, `TaskDetailModal`, and `PrPanel` for reviewing PR creation as part of task review. Includes tests covering the create-PR review flow in both `TaskDetailModal` and `TaskReviewTab`.
Fusion-Task-Id: FN-5018
2026-05-18 06:39:22 -07:00
Fusion (runfusion.ai)
239f135994
feat(FN-4996): complete Step 4 — add bulk delete archive-instead option
...
Fusion-Task-Id: FN-4996
Fusion-Task-Lineage: 650bb5e4-18f2-41a0-ae46-b9112c4a0d74
2026-05-18 05:51:14 -07:00
Fusion (runfusion.ai)
658a7e73e5
feat(FN-4996): complete Step 3 — add archive-instead delete flow in task detail modal
...
Fusion-Task-Id: FN-4996
Fusion-Task-Lineage: 650bb5e4-18f2-41a0-ae46-b9112c4a0d74
2026-05-18 05:51:14 -07:00
Fusion (runfusion.ai)
4b5c7475f4
feat(FN-4996): complete Step 2 — add done-task archive-instead flow in TaskCard
...
Fusion-Task-Id: FN-4996
Fusion-Task-Lineage: 650bb5e4-18f2-41a0-ae46-b9112c4a0d74
2026-05-18 05:51:14 -07:00
Fusion (runfusion.ai)
44562cdf78
feat(FN-4996): complete Step 1 — add tertiary confirm choice
...
Fusion-Task-Id: FN-4996
Fusion-Task-Lineage: 650bb5e4-18f2-41a0-ae46-b9112c4a0d74
2026-05-18 05:51:14 -07:00
Fusion (runfusion.ai)
54bb1651b7
test(FN-5024): complete Step 2 — cover PrChecksList focus-visible selectors
...
Fusion-Task-Id: FN-5024
Fusion-Task-Lineage: daa5f0c5-399a-4c6c-bdf0-2cf3170e2f5f
2026-05-18 05:43:39 -07:00
Fusion (runfusion.ai)
7e19d638ea
feat(FN-5024): complete Step 1 — add PrChecksList focus-visible rings
...
Fusion-Task-Id: FN-5024
Fusion-Task-Lineage: daa5f0c5-399a-4c6c-bdf0-2cf3170e2f5f
2026-05-18 05:43:39 -07:00
Fusion (runfusion.ai)
46794e758b
fix(FN-5010): avoid template hex interpolation for chip color var
...
Fusion-Task-Id: FN-5010
Fusion-Task-Lineage: 0975200b-f771-4e8e-a851-8286c0309257
2026-05-18 05:10:44 -07:00
Fusion (runfusion.ai)
9170f78cd0
test(FN-5010): complete Step 3 — assert chip color variable wiring
...
Fusion-Task-Id: FN-5010
Fusion-Task-Lineage: 0975200b-f771-4e8e-a851-8286c0309257
2026-05-18 05:10:44 -07:00
Fusion (runfusion.ai)
c34e778a65
feat(FN-5010): complete Step 2 — tint chips via CSS var modifier
...
Fusion-Task-Id: FN-5010
Fusion-Task-Lineage: 0975200b-f771-4e8e-a851-8286c0309257
2026-05-18 05:10:44 -07:00
Fusion (runfusion.ai)
b58e65d587
feat(FN-5010): complete Step 1 — move label color to CSS custom property
...
Fusion-Task-Id: FN-5010
Fusion-Task-Lineage: 0975200b-f771-4e8e-a851-8286c0309257
2026-05-18 05:10:44 -07:00
Fusion (runfusion.ai)
0f6b0fb096
feat(FN-4984): complete Step 2 — add SecretsView sync passphrase panel
...
Fusion-Task-Id: FN-4984
Fusion-Task-Lineage: 8fdf7a19-b101-4b33-8e60-44fcbf402256
2026-05-18 04:46:56 -07:00
Fusion (runfusion.ai)
13e5775e17
test(FN-4985): complete Step 2 — add pull split height parity regression
...
Fusion-Task-Id: FN-4985
Fusion-Task-Lineage: aef36307-9d45-4246-97c2-33948a3c5a04
2026-05-18 04:12:31 -07:00
Fusion (runfusion.ai)
f13da3cc31
feat(FN-4985): complete Step 1 — equalize pull toggle height on desktop
...
Fusion-Task-Id: FN-4985
Fusion-Task-Lineage: aef36307-9d45-4246-97c2-33948a3c5a04
2026-05-18 04:12:31 -07:00
Fusion (runfusion.ai)
7f36f56bb1
feat(FN-4963): complete Step 4 — clear chat sessions cache on version update
...
Fusion-Task-Id: FN-4963
Fusion-Task-Lineage: 791f5e46-c630-4883-89de-942cc85c329b
2026-05-18 03:34:54 -07:00
gsxdsm
2fd96d51c1
feat(FN-4960): merge fusion/fn-4960
2026-05-18 03:17:02 -07:00
gsxdsm
1842a69e6c
test(FN-4951): stabilize clipboard fallback coverage
...
Fusion-Task-Id: FN-4951
Fusion-Task-Lineage: 25de66db-c8cf-463b-86f2-efff1bc22683
2026-05-18 03:10:52 -07:00
gsxdsm
b8f4042be4
test(FN-4951): complete Step 5 — cover clipboard fallback and toast paths
...
Fusion-Task-Id: FN-4951
Fusion-Task-Lineage: 25de66db-c8cf-463b-86f2-efff1bc22683
2026-05-18 03:10:52 -07:00
gsxdsm
21d17e4005
feat(FN-4951): complete Step 4 — wire onboarding copilot clipboard fallback
...
Fusion-Task-Id: FN-4951
Fusion-Task-Lineage: 25de66db-c8cf-463b-86f2-efff1bc22683
2026-05-18 03:10:52 -07:00
gsxdsm
6339ef0f45
feat(FN-4951): complete Step 3 — wire settings copilot clipboard fallback
...
Fusion-Task-Id: FN-4951
Fusion-Task-Lineage: 25de66db-c8cf-463b-86f2-efff1bc22683
2026-05-18 03:10:52 -07:00
Fusion (runfusion.ai)
f9f8ca04b9
feat(FN-4950): reinforce recycleWorktrees opt-in default copy
...
Fusion-Task-Id: FN-4950
Fusion-Task-Lineage: ce37aa18-a5ff-4aef-a93b-768edd07978c
2026-05-18 02:32:16 -07:00
Fusion (runfusion.ai)
499f88f672
fix(FN-4943): complete Step 3 — preserve clear/new dismiss behavior
...
Fusion-Task-Id: FN-4943
Fusion-Task-Lineage: 67dd5c2b-0b44-43dd-a016-0bff858ec4b9
2026-05-18 02:06:32 -07:00
Fusion (runfusion.ai)
5d6007ccb9
test(FN-5030): complete Step 7 - include modal test in quality gate
...
Fusion-Task-Id: FN-5030
Fusion-Task-Lineage: fdd10e2a-220a-47d3-9da0-075f5ba2695e
2026-05-18 01:56:59 -07:00
Fusion (runfusion.ai)
e70903ae75
test(FN-5030): complete Step 6 - cover auto-archived activity events
...
Fusion-Task-Id: FN-5030
Fusion-Task-Lineage: fdd10e2a-220a-47d3-9da0-075f5ba2695e
2026-05-18 01:56:59 -07:00
Fusion (runfusion.ai)
459a1444df
feat(FN-5030): complete Step 5 - use native DOM event types in import modal
...
Fusion-Task-Id: FN-5030
Fusion-Task-Lineage: fdd10e2a-220a-47d3-9da0-075f5ba2695e
2026-05-18 01:56:59 -07:00
Fusion (runfusion.ai)
a7ee74d340
feat(FN-5030): complete Step 3 - add auto-archived activity labels/icons
...
Fusion-Task-Id: FN-5030
Fusion-Task-Lineage: fdd10e2a-220a-47d3-9da0-075f5ba2695e
2026-05-18 01:56:59 -07:00
Fusion (runfusion.ai)
9f22bf3ca3
test(FN-4936): complete Step 4 — add resize handle behavior coverage
...
Fusion-Task-Id: FN-4936
Fusion-Task-Lineage: 6c860bad-2120-4a81-a399-02c1d45aa63e
2026-05-18 01:16:17 -07:00
Fusion (runfusion.ai)
b61270e480
feat(FN-4936): complete Step 3 — style resizable workspace divider
...
Fusion-Task-Id: FN-4936
Fusion-Task-Lineage: 6c860bad-2120-4a81-a399-02c1d45aa63e
2026-05-18 01:16:17 -07:00
Fusion (runfusion.ai)
2f8a634464
feat(FN-4936): complete Step 1 — add resizable pane state and handlers
...
Fusion-Task-Id: FN-4936
Fusion-Task-Lineage: 6c860bad-2120-4a81-a399-02c1d45aa63e
2026-05-18 01:16:17 -07:00
Fusion (runfusion.ai)
02065e43d5
test(FN-5017): complete Step 4 — cover create PR quick action behavior
...
Fusion-Task-Id: FN-5017
Fusion-Task-Lineage: aeedc3f2-7df8-4467-94b1-77b13b6554e3
2026-05-18 00:47:08 -07:00
Fusion (runfusion.ai)
ebb3ee2a2d
feat(FN-5017): complete Step 2 — add in-review create PR quick action
...
Fusion-Task-Id: FN-5017
Fusion-Task-Lineage: aeedc3f2-7df8-4467-94b1-77b13b6554e3
2026-05-18 00:47:08 -07:00
Fusion (runfusion.ai)
b624b14191
feat(FN-5017): complete Step 1 — plumb prAuthAvailable to TaskCard
...
Fusion-Task-Id: FN-5017
Fusion-Task-Lineage: aeedc3f2-7df8-4467-94b1-77b13b6554e3
2026-05-18 00:47:08 -07:00
Fusion (runfusion.ai)
48bd4d0b3e
test(FN-5012): tighten PrChecksList mobile selector regression
...
Fusion-Task-Id: FN-5012
Fusion-Task-Lineage: e83baffb-76ff-4317-8ff9-e576d5818a9c
2026-05-18 00:20:39 -07:00
Fusion (runfusion.ai)
770b7c8584
test(FN-5012): guard PR-flow CSS against mobile button overrides
...
Fusion-Task-Id: FN-5012
Fusion-Task-Lineage: e83baffb-76ff-4317-8ff9-e576d5818a9c
2026-05-18 00:20:39 -07:00
Fusion (runfusion.ai)
403a49138d
fix(FN-5012): drop mobile .btn override from PrChecksList
...
Fusion-Task-Id: FN-5012
Fusion-Task-Lineage: e83baffb-76ff-4317-8ff9-e576d5818a9c
2026-05-18 00:20:39 -07:00
Fusion (runfusion.ai)
e3c90d9f88
test(FN-5020): complete Step 2 — cover create-pr modal wiring
...
Fusion-Task-Id: FN-5020
Fusion-Task-Lineage: 9007731b-0171-4154-95e0-4fc4b67f0dbd
2026-05-18 00:02:23 -07:00
Fusion (runfusion.ai)
6d5cd9450b
feat(FN-5020): complete Step 1 — wire create-PR modal trigger
...
Fusion-Task-Id: FN-5020
Fusion-Task-Lineage: 9007731b-0171-4154-95e0-4fc4b67f0dbd
2026-05-18 00:02:23 -07:00
gsxdsm
8b50b754cd
chore(desktop): drop debug console.logs from launch-mode reset flow
...
The console.log breadcrumbs added while diagnosing the menu also
caused an uncaught "write EPIPE" when the parent terminal pipe was
already closed by the time the user clicked Change Launch Mode.
Now that the flow is verified working, remove the chatter and keep
only the actual error-path logging.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-17 23:32:10 -07:00
gsxdsm
aeee05ddc4
test: skip slow github copilot panel test and two flaky file-scope tests
...
- SettingsModal "renders github copilot device code panel" was the
single slowest dashboard test (~4s wall) due to userEvent + a 5s
waitFor. Skipping per request.
- merger-file-scope-invariant.test.ts "accepts declared scope as a
single changeset file" / "as a changeset glob" flake under
workspace-concurrent runs: the vi.mock of node:child_process
occasionally doesn't take effect, so execAsync("git diff --cached
--name-only") reaches the real git binary and reports unrelated
staged files. Same logic remains covered by the real-git fixture
tests in reliability-interactions/workflow-and-file-scope.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-17 23:25:26 -07:00
gsxdsm
10d5afdb8e
fix(desktop): Change Launch Mode menu performs reset entirely in main
...
Replace the renderer-event approach (which silently failed when the
renderer-side listener wasn't yet registered) with an onChangeLaunchMode
callback wired through AppMenuOptions. The callback runs
resetLaunchModeAndReload in main: writes shell settings to clear the
chosen mode, stops the embedded runtime, then navigates the window
directly to the renderer entrypoint with no cached query params so the
launch gate re-prompts.
Also surface the same flow from the dashboard's BackendConnectionErrorPage:
when running inside the desktop shell, the "Can't reach the Fusion backend"
page now offers a "Change Launch Mode…" button alongside Retry, so a user
who chose a broken backend isn't stuck without the Electron menubar.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-17 22:58:34 -07:00
gsxdsm
51e28fb7ca
fix(desktop): re-show hidden window on dock/Finder activate + log gate flow
...
The close handler hides the BrowserWindow instead of destroying it, so
once closed, subsequent dock or Finder activations were no-ops because
the activate handler only created a new window when mainWindow === null.
Show + focus the existing window if it's hidden so relaunch behaves as
expected. Also add console.log breadcrumbs in DesktopLaunchGate so we
can diagnose why the chooser sometimes appears not to render.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-17 22:24:40 -07:00
gsxdsm
75a712771e
feat(desktop): Connection → Change Launch Mode menu item
...
Adds a "Connection" submenu with a "Change Launch Mode…" item that lets
users switch between Run Locally and Connect to Remote after the initial
chooser. The menu sends shell:reset-desktop-mode-request to the renderer;
the dashboard's DesktopLaunchGate listens, calls the new
shell:resetDesktopMode IPC (clears hasCompletedModeSelection, stops the
embedded runtime), strips the cached serverBaseUrl/shellMode query params,
and reloads so the gate re-prompts.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-17 22:16:27 -07:00