Commit Graph

2707 Commits

Author SHA1 Message Date
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