First-run project setup surfaced a blocking "Agent with this name already exists" error when creating the default CEO. The default first agent can be created from more than one first-run surface (the unified ModelOnboarding agent step and the project-setup SetupWizard sub-flow), and agent names are unique per store, so the second create returned 409. The step's goal — a first agent exists — was already satisfied, so both onboarding surfaces now treat a name collision as success and advance instead of blocking. The user still creates the agent; they just aren't punished for the flow offering it twice. Separately, the desktop header "Desktop local mode / Switch server" button did nothing: main relays the click as a `shell:open-connection-manager` IPC (webContents.send), but the preload never forwarded it to the `window` DOM event ShellContext listens for, so the signal was dropped. Add the preload bridge so the button opens NativeShellConnectionManager (Local/Remote toggle + remote-server profiles), letting operators switch between running locally, connecting to a remote server, or a different remote. Regression tests: SetupWizard advances on an already-exists agent; preload dispatches the window event on the IPC. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Changeset Format Guide
Each changeset file in this directory describes one user-facing change for release notes.
Required body format
---
"@runfusion/fusion": minor
---
summary: Add a Command Center productivity control for LOC backfills.
category: feature
dev: Uses the new `fn_backfill_loc` tool; settings key `commandCenter.locBackfill`.
Fields
| Field | Required | Description |
|---|---|---|
summary |
Yes | One line, user-facing, max 120 chars. Describe what changed for the operator. |
category |
Yes | One of: feature, fix, breaking, security, performance, internal. |
dev |
No | Developer or migration detail. Preserved in per-package CHANGELOGs but excluded from distilled release notes. |
Audience
The summary is the only content that appears in end-user release notes by default. Write for Fusion operators — describe behavior, fixes, and what changed. Avoid internal class names, file paths, and implementation detail.
Bump types
patch— bug fixes, internal changesminor— new features, CLI additions, toolsmajor— breaking changes
Validation
Run pnpm check:changesets to validate. The linter runs in the PR-check gate and test:gate. Legacy freeform changesets pass with a warning during the transition period.