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
gsxdsm
b143f6c88b
feat(dashboard): desktop launch gate for run-local vs connect-remote
...
Wrap <App /> in a DesktopLaunchGate that runs only inside the Electron shell.
On first run it shows a chooser (Run Locally / Connect Remote). On "local"
it calls setDesktopMode("local") so main starts the embedded runtime, polls
shell:getState until localRuntime.state === "running", then reloads with
?serverBaseUrl=http://127.0.0.1 :<port> so the dashboard's API calls route
to the embedded server (file:// origins can't resolve relative /api). On
"remote" it opens the existing connection manager. Replaces the dead-end
"can't reach backend" landing in the packaged desktop app.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-17 22:10:58 -07:00
Fusion (runfusion.ai)
53e0372bc9
test(FN-4986): complete Step 3 — update footer cluster alignment assertions
...
Fusion-Task-Id: FN-4986
Fusion-Task-Lineage: d7a2c969-f3ea-4f93-bcdb-f86521845fce
2026-05-17 21:34:06 -07:00
Fusion (runfusion.ai)
10d00423a4
feat(FN-4986): complete Step 2 — align footer chip cluster via first-chip anchor
...
Fusion-Task-Id: FN-4986
Fusion-Task-Lineage: d7a2c969-f3ea-4f93-bcdb-f86521845fce
2026-05-17 21:34:06 -07:00
gsxdsm
bf0e9a3e37
feat(FN-4766): merge fusion/fn-4766
2026-05-17 19:11:40 -07:00
gsxdsm
22729135e8
fix(dashboard): use queueMicrotask instead of setTimeout for iOS scroll reset in ChatView focus handler
2026-05-17 18:21:00 -07:00
gsxdsm
91ac073f8e
feat(FN-4940): merge fusion/fn-4940
2026-05-17 15:11:48 -07:00
Fusion (runfusion.ai)
b60f359088
test(FN-4937): complete Step 2 — cover matching import and linked issue permutations
...
Fusion-Task-Id: FN-4937
Fusion-Task-Lineage: 1eceb69d-b6b2-4256-9629-3841a03b68e9
2026-05-17 15:10:00 -07:00
Fusion (runfusion.ai)
b96298d11d
feat(FN-4937): complete Step 1 — merge github footer indicator logic
...
Fusion-Task-Id: FN-4937
Fusion-Task-Lineage: 1eceb69d-b6b2-4256-9629-3841a03b68e9
2026-05-17 15:10:00 -07:00
Fusion (runfusion.ai)
ae740bdb24
fix(FN-4764): add dismissible structured PR error blocks and styles
...
Fusion-Task-Id: FN-4764
Fusion-Task-Lineage: 14809ad5-8463-4e16-a934-1414225f17ae
2026-05-17 14:48:31 -07:00
Fusion (runfusion.ai)
26c3d330d3
feat(FN-4764): complete Step 2-4 — surface structured gh errors in API UI CLI
...
Fusion-Task-Id: FN-4764
Fusion-Task-Lineage: 14809ad5-8463-4e16-a934-1414225f17ae
2026-05-17 14:48:31 -07:00
Fusion (runfusion.ai)
abd4fad929
test(FN-4925): complete Step 6 — add mobile layout regression coverage
...
Fusion-Task-Id: FN-4925
Fusion-Task-Lineage: 31fe1419-89df-4d8b-b7fe-7a872801c665
2026-05-17 14:03:16 -07:00
Fusion (runfusion.ai)
f25c83a37b
feat(FN-4925): complete Step 4 — fix mobile dev server layout overlap
...
Fusion-Task-Id: FN-4925
Fusion-Task-Lineage: 31fe1419-89df-4d8b-b7fe-7a872801c665
2026-05-17 14:03:15 -07:00
Fusion (runfusion.ai)
f8c20e1b96
feat(FN-4763): complete Step 5 — surface PR conflict reclaim in panel
...
Fusion-Task-Id: FN-4763
Fusion-Task-Lineage: b3628e63-682b-4a39-9a7d-2c96278c5366
2026-05-17 13:46:24 -07:00
Fusion (runfusion.ai)
b99298d559
test(FN-4923): complete Step 2 — add tracking chip alignment regressions
...
Fusion-Task-Id: FN-4923
Fusion-Task-Lineage: 2ea94680-edd7-40a9-92a6-9774b97a75f4
2026-05-17 13:07:54 -07:00
Fusion (runfusion.ai)
171df2ad2b
feat(FN-4923): complete Step 1 — broaden chipFarRight timer-column guard
...
Fusion-Task-Id: FN-4923
Fusion-Task-Lineage: 2ea94680-edd7-40a9-92a6-9774b97a75f4
2026-05-17 13:07:54 -07:00
Fusion (runfusion.ai)
1543df69a4
fix(FN-4762): address review feedback for PR panel merge controls
...
Fusion-Task-Id: FN-4762
Fusion-Task-Lineage: 5c7ef3b8-fefc-4cc2-a703-634124d77cde
2026-05-17 12:11:51 -07:00
Fusion (runfusion.ai)
73454fae5c
feat(FN-4762): complete Step 3 — PR merge routes and dashboard controls
...
Fusion-Task-Id: FN-4762
Fusion-Task-Lineage: 5c7ef3b8-fefc-4cc2-a703-634124d77cde
2026-05-17 12:11:51 -07:00
Fusion (runfusion.ai)
439716165b
test(FN-4761): complete Step 5 — add review transition regression coverage
...
Fusion-Task-Id: FN-4761
Fusion-Task-Lineage: b6b1ed73-c396-4dd2-b97f-366272d05c7f
2026-05-17 11:39:19 -07:00
Fusion (runfusion.ai)
5bde911bdb
feat(FN-4761): sync PR reviews and surface review threads
...
Fusion-Task-Id: FN-4761
Fusion-Task-Lineage: b6b1ed73-c396-4dd2-b97f-366272d05c7f
2026-05-17 11:39:19 -07:00
Fusion (runfusion.ai)
ff7c2336cf
feat(FN-4911): complete Step 3 — add secrets view component
...
Fusion-Task-Id: FN-4911
Fusion-Task-Lineage: 021e3ee9-a776-4648-a17d-8ae1a7ebc5be
2026-05-17 11:11:00 -07:00
gsxdsm
724f8bf908
feat(FN-4906): merge fusion/fn-4906
2026-05-17 09:56:03 -07:00
Fusion (runfusion.ai)
9be005cd46
feat(FN-4760): complete Step 5 — wire live checks into PR panel
...
Fusion-Task-Id: FN-4760
Fusion-Task-Lineage: 71db4a53-ee59-49f0-a1f7-232954b86660
2026-05-17 08:49:51 -07:00
Fusion (runfusion.ai)
a58c5df697
feat(FN-4760): complete Step 4 — add PR checks list UI
...
Fusion-Task-Id: FN-4760
Fusion-Task-Lineage: 71db4a53-ee59-49f0-a1f7-232954b86660
2026-05-17 08:49:51 -07:00
Fusion (runfusion.ai)
d0573d8fe6
feat(FN-4759): complete Step 2-4 — render draft/check rollup badge
...
Fusion-Task-Id: FN-4759
Fusion-Task-Lineage: af79d2a6-fd7b-40e0-b3c9-6c74569d9aa0
2026-05-17 08:22:26 -07:00
Fusion (runfusion.ai)
7bd7ad4eac
fix(FN-4873): align PrPanel check-state typing with API payloads
...
Fusion-Task-Id: FN-4873
Fusion-Task-Lineage: 8aec8200-a12e-4b89-9b62-e61d19696723
2026-05-17 04:26:14 -07:00
Fusion (runfusion.ai)
a747479cc6
test(FN-4873): complete Step 5 — add PR checks and core export coverage
...
Fusion-Task-Id: FN-4873
Fusion-Task-Lineage: 8aec8200-a12e-4b89-9b62-e61d19696723
2026-05-17 04:26:14 -07:00
Fusion (runfusion.ai)
c84d9b8b05
fix(FN-4871): restore workspace typecheck compatibility
...
Fusion-Task-Id: FN-4871
Fusion-Task-Lineage: afa2af88-9c7d-4809-bf8f-2aa6cf79ce40
2026-05-17 04:20:00 -07:00
Fusion (runfusion.ai)
cec86d23ab
test(FN-4859): expand cache hydration coverage across views
...
Fusion-Task-Id: FN-4859
Fusion-Task-Lineage: 9254ee9f-5600-4895-8ac4-41c9d89fce4d
2026-05-17 03:34:56 -07:00
Fusion (runfusion.ai)
49de604f3a
test(FN-4859): complete Steps 6-7 — cache coverage and loader invalidation
...
Fusion-Task-Id: FN-4859
Fusion-Task-Lineage: 9254ee9f-5600-4895-8ac4-41c9d89fce4d
2026-05-17 03:34:56 -07:00
Fusion (runfusion.ai)
6b16985841
feat(FN-4859): complete Step 5 — hydrate mission and mailbox state
...
Fusion-Task-Id: FN-4859
Fusion-Task-Lineage: 9254ee9f-5600-4895-8ac4-41c9d89fce4d
2026-05-17 03:34:56 -07:00
Fusion (runfusion.ai)
0f625eac3a
test(FN-4757): complete Step 4 — add PrPanel coverage
...
Fusion-Task-Id: FN-4757
Fusion-Task-Lineage: 32236172-0b3b-4c19-b3a1-8ee0b91ea3ac
2026-05-17 03:28:21 -07:00
Fusion (runfusion.ai)
0c8cc02ca3
feat(FN-4757): complete Step 3 — wire PrPanel and remove PrSection
...
Fusion-Task-Id: FN-4757
Fusion-Task-Lineage: 32236172-0b3b-4c19-b3a1-8ee0b91ea3ac
2026-05-17 03:28:21 -07:00
Fusion (runfusion.ai)
3c6be85b96
feat(FN-4757): complete Step 2 — build PrPanel component
...
Fusion-Task-Id: FN-4757
Fusion-Task-Lineage: 32236172-0b3b-4c19-b3a1-8ee0b91ea3ac
2026-05-17 03:28:21 -07:00
Fusion (runfusion.ai)
d643f4c5cf
test(FN-4756): complete Step 4 — add PrCreateModal tests
...
Fusion-Task-Id: FN-4756
Fusion-Task-Lineage: 9a559f69-3ca1-4d94-9b35-9c7a0849d82c
2026-05-17 03:13:57 -07:00
Fusion (runfusion.ai)
d0fb08c037
feat(FN-4756): complete Step 2 — add PrCreateModal component
...
Fusion-Task-Id: FN-4756
Fusion-Task-Lineage: 9a559f69-3ca1-4d94-9b35-9c7a0849d82c
2026-05-17 03:13:57 -07:00
Fusion (runfusion.ai)
7c14e16b80
test(FN-4857): update room send expectations for attachment opts
...
Fusion-Task-Id: FN-4857
Fusion-Task-Lineage: 52e7b1cd-ec8f-4b6c-abfc-08c91e321b9e
2026-05-17 01:37:41 -07:00
Fusion (runfusion.ai)
74f0bd9e8d
feat(FN-4857): complete Step 6 — wire room send dispatch in ChatView
...
Fusion-Task-Id: FN-4857
Fusion-Task-Lineage: 52e7b1cd-ec8f-4b6c-abfc-08c91e321b9e
2026-05-17 01:37:40 -07:00
Fusion (runfusion.ai)
c7f98f8381
feat(FN-4857): complete Step 5 — enable room sends with attachments in QuickChat
...
Fusion-Task-Id: FN-4857
Fusion-Task-Lineage: 52e7b1cd-ec8f-4b6c-abfc-08c91e321b9e
2026-05-17 01:37:39 -07:00
Fusion (runfusion.ai)
3221e57b09
feat(FN-4855): complete Step 2-3 — harden disable route and modal state
...
Fusion-Task-Id: FN-4855
Fusion-Task-Lineage: 47f093b7-dffc-4c1a-8dee-2fe01d0c9ed6
2026-05-17 01:08:50 -07:00
gsxdsm
7a6a3d0d22
feat(FN-4856): merge fusion/fn-4856
2026-05-17 01:08:01 -07:00
Fusion (runfusion.ai)
4caee9be30
test(FN-4854): cover chat-room cache hydration and invalidation
...
Fusion-Task-Id: FN-4854
Fusion-Task-Lineage: 969ec04a-efe3-4dee-b183-2d4f2de6b388
2026-05-17 00:43:48 -07:00
Fusion (runfusion.ai)
384a6abe96
fix(FN-4849): include full room message shape in quick chat mapping
...
Fusion-Task-Id: FN-4849
Fusion-Task-Lineage: 624f86c4-0b0f-4543-90d2-381f890da401
2026-05-17 00:37:54 -07:00
Fusion (runfusion.ai)
b97709a3d4
feat(FN-4849): complete Step 2 — route room thread reads and sends
...
Fusion-Task-Id: FN-4849
Fusion-Task-Lineage: 624f86c4-0b0f-4543-90d2-381f890da401
2026-05-17 00:37:53 -07:00
gsxdsm
6d6a0242f0
feat(FN-4846): merge fusion/fn-4846
2026-05-16 23:20:31 -07:00
gsxdsm
7988a48576
feat(FN-4844): merge fusion/fn-4844
2026-05-16 23:20:13 -07:00
gsxdsm
df998cb54f
feat(FN-4829): merge fusion/fn-4829
2026-05-16 22:26:42 -07:00
Fusion (runfusion.ai)
9845678953
test(FN-4804): add quick chat dropdown regression coverage
...
Fusion-Task-Id: FN-4804
Fusion-Task-Lineage: d2a98aa6-1c5c-427b-ba72-f5d229fdeeb9
2026-05-16 21:17:15 -07:00
Fusion (runfusion.ai)
f5540a2a33
feat(FN-4804): complete Step 1 — preserve explicit session picks
...
Fusion-Task-Id: FN-4804
Fusion-Task-Lineage: d2a98aa6-1c5c-427b-ba72-f5d229fdeeb9
2026-05-16 21:17:15 -07:00