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
f9cf3f1bde
feat(FN-4921): merge fusion/fn-4921
2026-05-17 19:11:59 -07:00
gsxdsm
bf0e9a3e37
feat(FN-4766): merge fusion/fn-4766
2026-05-17 19:11:40 -07:00
Fusion (runfusion.ai)
f5cd0dd472
feat(FN-4971): add PrInfo regression test
...
Adds a regression test for the PrInfo endpoint to guard against FN-4971, covering the legacy PR info API path in the dashboard package.
Fusion-Task-Id: FN-4971
2026-05-17 19:03:51 -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
4dc281f5c3
feat(FN-4977): merge fusion/fn-4977
2026-05-17 17:42:04 -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)
412ee29a24
fix(FN-4763): align PrInfo typing with mergeable conflict state
...
Fusion-Task-Id: FN-4763
Fusion-Task-Lineage: b3628e63-682b-4a39-9a7d-2c96278c5366
2026-05-17 13:46:24 -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)
3ba9e13f75
feat(FN-4924): complete Step 2-3 — tighten tasks hydration and failed-refresh cache clearing
...
Fusion-Task-Id: FN-4924
Fusion-Task-Lineage: a5f882e1-8348-4f9d-89be-15994adc148c
2026-05-17 12:41:21 -07:00
Fusion (runfusion.ai)
13bcb8ed85
feat(FN-4924): complete Step 1 — add tasks TTL constant
...
Fusion-Task-Id: FN-4924
Fusion-Task-Lineage: a5f882e1-8348-4f9d-89be-15994adc148c
2026-05-17 12:41:21 -07:00
Fusion (runfusion.ai)
01caeb6d88
feat(FN-4762): merge fusion/fn-4762
...
Commits merged:
- merge fusion/fn-4762
Files changed:
AGENTS.md | 25 ++++++++++++++++++++++---
docs/README.md | 6 ++++++
packages/core/src/store.ts | 4 ++--
packages/dashboard/app/App.tsx | 10 ++++++++--
packages/dashboard/src/__tests__/github.test.ts | 3 ++-
5 files changed, 40 insertions(+), 8 deletions(-)
Fusion-Task-Id: FN-4762
Fusion-Task-Lineage: 5c7ef3b8-fefc-4cc2-a703-634124d77cde
2026-05-17 12:24:45 -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
gsxdsm
3c2bbf36c5
fix: add missing lastReviewDecision to legacy PrInfo type
...
PrPanel.tsx references prInfo.lastReviewDecision but the local
PrInfo interface in legacy.ts was missing this field, breaking
typecheck on main.
2026-05-17 12:10:14 -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)
eaa67616a4
test(FN-4924): align useAgents cache assertions with envelope format
...
Fusion-Task-Id: FN-4924
Fusion-Task-Lineage: a5f882e1-8348-4f9d-89be-15994adc148c
2026-05-17 11:33:56 -07:00
Fusion (runfusion.ai)
cf12704885
feat(FN-4924): apply cache ttl hydration across dashboard hooks
...
Fusion-Task-Id: FN-4924
Fusion-Task-Lineage: a5f882e1-8348-4f9d-89be-15994adc148c
2026-05-17 11:33:56 -07:00
Fusion (runfusion.ai)
7ad3449c8f
feat(FN-4924): complete Step 1 — add swr cache envelope ttl
...
Fusion-Task-Id: FN-4924
Fusion-Task-Lineage: a5f882e1-8348-4f9d-89be-15994adc148c
2026-05-17 11:33:56 -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
Fusion (runfusion.ai)
3d729c7a50
feat(FN-4916): complete Step 4 — enforce built stylesheet order
...
Fusion-Task-Id: FN-4916
Fusion-Task-Lineage: 80b56c97-04c6-4cd4-bb83-e3ef8faaa4ee
2026-05-17 10:37:55 -07:00
Fusion (runfusion.ai)
007fb43da0
test(FN-4916): complete Step 3 — add theme link regression coverage
...
Fusion-Task-Id: FN-4916
Fusion-Task-Lineage: 80b56c97-04c6-4cd4-bb83-e3ef8faaa4ee
2026-05-17 10:37:54 -07:00
Fusion (runfusion.ai)
e25f8b20aa
feat(FN-4916): complete Step 1 — add static theme-data link
...
Fusion-Task-Id: FN-4916
Fusion-Task-Lineage: 80b56c97-04c6-4cd4-bb83-e3ef8faaa4ee
2026-05-17 10:37:54 -07:00
gsxdsm
724f8bf908
feat(FN-4906): merge fusion/fn-4906
2026-05-17 09:56:03 -07:00
Fusion (runfusion.ai)
2a9ef2ba36
fix(FN-4905): unblock workspace verification type errors
...
Fusion-Task-Id: FN-4905
Fusion-Task-Lineage: 677b6f08-90d7-4785-a0b8-195acc42f79e
2026-05-17 09:51:49 -07:00
Fusion (runfusion.ai)
3d0cce72f2
feat(FN-4885): complete Step 7 — finalize docs and changeset
...
Fusion-Task-Id: FN-4885
Fusion-Task-Lineage: 31110eed-5ca3-4d67-8f11-581185056dc6
2026-05-17 09:31:07 -07:00
Fusion (runfusion.ai)
5793c4bcd7
feat(FN-4885): complete Step 6 — add deadlock disposition dashboard copy
...
Fusion-Task-Id: FN-4885
Fusion-Task-Lineage: 31110eed-5ca3-4d67-8f11-581185056dc6
2026-05-17 09:31:07 -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)
76c5142f4f
feat(FN-4760): complete Step 3 — add PR checks polling hook
...
Fusion-Task-Id: FN-4760
Fusion-Task-Lineage: 71db4a53-ee59-49f0-a1f7-232954b86660
2026-05-17 08:49:51 -07:00
Fusion (runfusion.ai)
49daa3046d
feat(FN-4760): complete Step 2 — add PR checks endpoint and client
...
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