Commit Graph

101 Commits

Author SHA1 Message Date
gsxdsm
2cfeb74407 fix(dashboard): polish first-run setup wizard (AI step, GitHub step, project step)
- AI Setup: connected providers now render first; 'Skip for now' hides
  once a provider is connected; footer buttons share one size.
- GitHub step: state-driven (no install/pitch content when connected),
  one type scale, real <code> literals, per-OS gh instructions behind a
  disclosure, single skip affordance; gh/OAuth status revalidates on
  window focus and OAuth relogin so later steps stop showing stale
  'not connected'.
- Project step: onboarding-driven opens keep 'Step 3 of 5' context;
  runtime-node picker no longer lists 'Local node' and 'local (local)'
  duplicates and hides itself when only the local node exists;
  isolation-mode cards no longer render a stretched native radio or
  uppercased descriptions.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-10 17:20:17 -07:00
gsxdsm
a4f5fbc0e9 FN-7624: fix onboarding GitHub sign-in erroring with model-not-found
Fixes the onboarding/settings GitHub step so it never offers a dashboard OAuth login for github (no github OAuth provider is ever registered; pi only ships anthropic/github-copilot/openai-codex), replacing the broken Connect OAuth button with gh CLI guidance and a clearer server-side error.

- Remove the "Connect OAuth (optional)" button and its login-instructions panel from the onboarding branch that runs when hasGithubProvider is false (ModelOnboardingModal.tsx), since it always called handleLogin("github") against a non-existent provider
- Update ModelOnboardingModal tests to cover the new gh-CLI-only flow
- Make POST /api/auth/login return a clear, actionable 400 naming the requested provider, the registered dashboard OAuth providers, and that GitHub integration uses gh CLI/token auth instead of a generic "Unknown provider" / model-not-found error
- Add routes-auth.test.ts coverage for the improved unknown-provider error message
- Add a patch changeset documenting the fix

Files changed:
 .changeset/fn-7624-github-onboarding-auth.md       |  7 +++++
 packages/dashboard/app/components/ModelOnboardingModal.tsx | 32 +++++++---------------
 packages/dashboard/app/components/__tests__/ModelOnboardingModal.test.tsx | 32 +++++++++++++++++++++-
 packages/dashboard/src/__tests__/routes-auth.test.ts | 22 +++++++++++++++
 packages/dashboard/src/routes/register-auth-routes.ts | 14 +++++++++-
 5 files changed, 83 insertions(+), 24 deletions(-)

Fusion-Task-Id: FN-7624
Fusion-Task-Lineage: e7be1b0a-6e50-479d-b56e-1284e8a94b7f
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-07 22:04:50 -07:00
gsxdsm
50cdab17b9 FN-7474: add GitHub onboarding action choices
Add first-run onboarding paths for GitHub OAuth and GitHub CLI setup while preserving existing GitHub warning behavior.

- Add a GitHub onboarding action model for OAuth, authenticated gh CLI, unauthenticated gh CLI, missing gh CLI, and skip states.
- Render in-flow GitHub OAuth connection, gh auth login guidance, and gh CLI install guidance with mobile styling and coverage.
- Update onboarding docs, locale resources, and the release changeset as a minor user-facing feature.
- Preserve the one-day GitHub warning-delay copy and dashboard OAuth browser behavior docs from main.

Files changed:
 .changeset/fn-7474-github-onboarding-actions.md    |   7 +
 docs/dashboard-guide.md                            |   2 +-
 docs/getting-started.md                            |   2 +-
 packages/cli/vitest.config.ts                      |  12 ++
 .../app/components/ModelOnboardingModal.css        |  68 ++++++++-
 .../app/components/ModelOnboardingModal.tsx        | 153 +++++++++++++++++++--
 .../__tests__/ModelOnboardingModal.test.tsx        | 101 +++++++++++++-
 packages/dashboard/vitest.config.ts                |  20 +++
 packages/i18n/locales/en/app.json                  |  11 +-
 packages/i18n/locales/es/app.json                  |  11 +-
 packages/i18n/locales/fr/app.json                  |  11 +-
 packages/i18n/locales/ko/app.json                  |  11 +-
 packages/i18n/locales/zh-CN/app.json               |  11 +-
 packages/i18n/locales/zh-TW/app.json               |  11 +-
 packages/i18n/src/resources.d.ts                   |  11 +-
 15 files changed, 413 insertions(+), 29 deletions(-)

Fusion-Task-Id: FN-7474

Fusion-Task-Lineage: c06d3db5-da4b-43f7-8b74-a41f6a041029

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-03 21:46:59 -07:00
gsxdsm
315f3bc32c FN-7470: show Git prerequisite during onboarding
Add Git availability checks to the first-run GitHub onboarding flow so missing host prerequisites are visible before project setup.

- Probe the server-host Git CLI with a bounded core helper and expose status through the auth status API.
- Render ready/missing Git prerequisite guidance in the GitHub onboarding step with install instructions and localized strings.
- Cover the probe, auth route, and onboarding UI states with regression tests, docs, and a changeset.

Files changed:
 .changeset/fn-7470-git-onboarding.md               |  7 ++
 docs/dashboard-guide.md                            |  2 +
 docs/getting-started.md                            |  2 +-
 packages/core/src/__tests__/git-cli-status.test.ts | 83 +++++++++++++++++++++
 packages/core/src/git-cli-status.ts                | 56 ++++++++++++++
 packages/core/src/index.ts                         |  7 ++
 packages/dashboard/app/api/legacy.ts               |  8 ++
 .../app/components/ModelOnboardingModal.css        | 59 +++++++++++++++
 .../app/components/ModelOnboardingModal.tsx        | 53 ++++++++++++-
 .../__tests__/ModelOnboardingModal.test.tsx        | 87 ++++++++++++++++++++++
 .../dashboard/src/__tests__/routes-auth.test.ts    | 62 ++++++++++++++-
 .../dashboard/src/routes/register-auth-routes.ts   | 13 +++-
 packages/i18n/locales/en/app.json                  | 11 ++-
 packages/i18n/locales/es/app.json                  | 44 ++++++++++-
 packages/i18n/locales/fr/app.json                  | 44 ++++++++++-
 packages/i18n/locales/ko/app.json                  | 44 ++++++++++-
 packages/i18n/locales/zh-CN/app.json               | 44 ++++++++++-
 packages/i18n/locales/zh-TW/app.json               | 44 ++++++++++-
 packages/i18n/src/resources.d.ts                   |  9 +++
 19 files changed, 661 insertions(+), 18 deletions(-)

Fusion-Task-Id: FN-7470
Fusion-Task-Lineage: 56d6f118-0d82-4f89-bcaa-b01e72a1bf8b
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-03 21:45:21 -07:00
gsxdsm
d16c8b429b FN-7468: expand onboarding quick-start providers
Expand onboarding provider setup so practical first-run choices and advanced controls stay anchored to quick start.

- Add OpenRouter to the curated quick-start provider set and ordering.
- Move advanced/all-provider and custom-provider controls under the quick-start provider section.
- Cover provider ordering, split Anthropic behavior, nested advanced controls, and empty states in onboarding tests.
- Add a minor changeset for the published Fusion package.

Files changed:
 .changeset/fn-7468-onboarding-quick-providers.md   |   7 ++
 .../app/components/ModelOnboardingModal.tsx        |  88 ++++++++--------
 .../__tests__/ModelOnboardingModal.test.tsx        | 116 +++++++++++++++++++--
 .../components/__tests__/onboarding-flow.test.tsx  |  17 +--
 4 files changed, 173 insertions(+), 55 deletions(-)

Fusion-Task-Id: FN-7468

Fusion-Task-Lineage: 744d8a9f-d03d-4909-a00a-00bbae4e59c7

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-03 21:45:20 -07:00
gsxdsm
da662c41a7 fix(onboarding,desktop): don't error on duplicate first agent; wire Switch-server button
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>
2026-07-03 12:54:38 -07:00
gsxdsm
55f260ad73 fix(dashboard): persist onboarding model default + defer CLI-install banner
Two false-positive first-run banners:

1. "Select Default Model" recommendation appeared even after choosing a model in onboarding.
   The picked model lived only in local state until completeOnboarding ran on the final step, so
   selecting a model then exiting/skipping before the last step lost the choice — and
   defaultProvider/defaultModelId stayed unset, tripping the recommendation. Now the pick is persisted
   immediately in handleModelSelect, and completeOnboarding falls back to the first available model
   when the operator connected a provider but never opened the dropdown. Either path leaves a durable
   global default so the recommendation no longer misfires.

2. "Install the Fusion CLI" banner showed immediately on first run. Added a 3-day grace period keyed
   off the first time the banner becomes eligible; Settings -> General -> CLI Binary still installs on
   demand meanwhile, so this only defers the passive nudge.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-02 23:49:43 -07:00
gsxdsm
0771c34b0b fix(dashboard): mark GitHub onboarding step done when authenticated via gh CLI
On the GitHub onboarding step, when GitHub is authenticated via the gh CLI (no OAuth provider),
the "Continue with gh CLI auth" button called setStep("project-setup") directly, skipping the
completion bookkeeping — so "github" was never added to completedSteps and step 2 never checked
off in the progress indicator. Advance via handleNext when ready via gh CLI (marks the step
completed) and via handleSkip when GitHub isn't connected (marks it skipped).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-02 23:31:15 -07:00
gsxdsm
4708d0b644 fix(dashboard): tidy first-run onboarding (drop research note; scope remote-connect card)
- Remove the "Research runs require provider credentials and an enabled Research View…" helper note
  from the AI-setup step.
- Show the "Connect remote Fusion server" card only when not already connected to a remote server
  (no active remote profile) — on any host including web — and never in LOCAL desktop mode, where the
  local runtime is already the backend and prompting for a remote URL just confused first-run setup.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-02 23:09:37 -07:00
gsxdsm
03d4f95e8a FN-7224: separate Anthropic subscription and API-key auth
Separate Claude subscription OAuth from raw Anthropic API-key authentication surfaces.

- Add synthetic Anthropic Subscription and Anthropic API Key provider IDs while preserving upstream credential storage compatibility.\n- Map dashboard auth routes, CLI auth storage, Settings, and onboarding flows so OAuth login/logout and API-key save/clear no longer share one user-facing card.\n- Extend auth tests, docs, icons, and the release changeset for the split Anthropic authentication behavior.\n\nFiles changed:\n .changeset/fn-7224-separate-anthropic-api-key.md   |   7 +\n docs/dashboard-guide.md                            |   2 +-\n docs/settings-reference.md                         |   2 +-\n .../src/commands/__tests__/provider-auth.test.ts   | 233 +++++++++++++++++++--\n packages/cli/src/commands/provider-auth.ts         | 202 +++++++++++++++---\n packages/dashboard/app/api/legacy.ts               |   2 -\n .../app/components/ModelOnboardingModal.tsx        | 146 ++++---------\n packages/dashboard/app/components/ProviderIcon.tsx |   7 +\n .../__tests__/AuthenticationSection.test.tsx       |  89 ++++----\n .../__tests__/SettingsModal.models-auth.test.tsx   |  77 ++++---\n .../components/__tests__/onboarding-flow.test.tsx  |  29 ++-\n .../components/__tests__/settings-mobile.test.tsx  |  17 +-\n .../settings/sections/AuthenticationSection.tsx    |  20 +-\n .../dashboard/src/__tests__/routes-auth.test.ts    | 111 ++++++----\n .../dashboard/src/routes/register-auth-routes.ts   |  93 +++++---\n 15 files changed, 713 insertions(+), 324 deletions(-)

Fusion-Task-Id: FN-7224

Fusion-Task-Lineage: a2db2cf6-3452-4516-81e5-41dcdf47e1d2

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-29 18:32:36 -07:00
gsxdsm
013d50fe8b FN-7206: add Anthropic API-key authentication
Add Anthropic API-key authentication alongside the existing OAuth flow.

- Expose Anthropic as a built-in API-key provider without hiding its OAuth controls.
- Render dual-auth Anthropic cards in Settings and model onboarding with key hints, save, and clear actions.
- Cover API status, CLI provider classification, desktop/mobile settings, and onboarding flows with tests and docs.

Files changed:
 .changeset/fn-7206-anthropic-api-key.md            |   7 +
 docs/dashboard-guide.md                            |   2 +
 docs/settings-reference.md                         |   4 +
 .../src/commands/__tests__/provider-auth.test.ts   |  51 ++++---
 packages/cli/src/commands/provider-auth.ts         |  10 +-
 packages/dashboard/app/api/legacy.ts               |   2 +
 .../app/components/ModelOnboardingModal.tsx        | 121 +++++++++++++++-
 .../__tests__/AuthenticationSection.test.tsx       | 141 +++++++++++++++++++
 .../__tests__/SettingsModal.models-auth.test.tsx   |  51 +++++++
 .../__tests__/SettingsModal.test-harness.tsx       |   2 +
 .../components/__tests__/onboarding-flow.test.tsx  |  28 ++++
 .../components/__tests__/settings-mobile.test.tsx  |  16 ++-
 .../settings/sections/AuthenticationSection.tsx    | 153 ++++++++++-----------
 .../dashboard/src/__tests__/routes-auth.test.ts    |  70 ++++++++++
 .../dashboard/src/routes/register-auth-routes.ts   |  17 ++-
 15 files changed, 569 insertions(+), 106 deletions(-)

Fusion-Task-Id: FN-7206

Fusion-Task-Lineage: 3559b7ea-47c6-4f8c-9aa1-5318f47ce07e

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-28 17:03:11 -07:00
gsxdsm
3c49f591b7 fix(FN-000): address onboarding review feedback 2026-06-22 09:13:58 -07:00
gsxdsm
2bfac78b47 fix(onboarding): simplify agent setup copy 2026-06-22 05:37:58 -07:00
gsxdsm
1432724a2b fix(onboarding): simplify first-run project setup 2026-06-22 05:20:22 -07:00
gsxdsm
f0fbc59991 feat(onboarding): align first-agent setup flow 2026-06-22 04:39:35 -07:00
gsxdsm
0c0581471e fix(onboarding): clarify temporary task agents in setup 2026-06-22 04:05:17 -07:00
gsxdsm
b760fa0df9 FN-6769: localize remaining dashboard strings
Localize the remaining dashboard UI clusters and refresh the generated i18n resources.

- Replace hardcoded labels across agent, plugin, mission, workflow node, research, document, activity, and miscellaneous dashboard components with app namespace translations.
- Add and synchronize locale catalog entries for English, Spanish, French, Korean, Simplified Chinese, and Traditional Chinese.
- Update i18n lint configuration and generated resource types, with a patch changeset for the published CLI package.

Files changed:
 .changeset/fn-6769-i18n-cluster.md                 |   5 +
 i18next.config.ts                                  |  47 +--
 .../dashboard/app/components/ActiveAgentsPanel.tsx |   2 +-
 packages/dashboard/app/components/ActivityFeed.tsx |  12 +-
 .../dashboard/app/components/ActivityLogModal.tsx  |   4 +-
 packages/dashboard/app/components/AddNodeModal.tsx |   4 +-
 .../dashboard/app/components/AgentDetailView.tsx   |   6 +-
 .../app/components/AgentGenerationModal.tsx        |   2 +-
 .../dashboard/app/components/AgentImportModal.tsx  |   4 +-
 .../app/components/AgentOnboardingModal.tsx        |   4 +-
 .../app/components/AgentPromptsManager.tsx         |   2 +-
 .../dashboard/app/components/AgentRunHistory.tsx   |   2 +-
 .../dashboard/app/components/AgentsOverviewBar.tsx |   2 +-
 .../dashboard/app/components/BranchGroupCard.tsx   |   4 +-
 .../dashboard/app/components/CliBinaryPanel.tsx    |   8 +-
 .../app/components/CursorCliProviderCard.tsx       |   4 +-
 .../dashboard/app/components/DashboardLoader.tsx   |   4 +-
 .../dashboard/app/components/DevServerView.tsx     |   8 +-
 .../dashboard/app/components/DocumentsView.tsx     |   6 +-
 .../dashboard/app/components/ErrorBoundary.tsx     |   9 +-
 .../dashboard/app/components/ExecutorStatusBar.tsx |   5 +-
 .../dashboard/app/components/GitHubStarPrompt.tsx  |  14 +-
 .../dashboard/app/components/GitManagerModal.tsx   |   4 +-
 .../dashboard/app/components/GroupTaskModal.tsx    |   2 +-
 packages/dashboard/app/components/Header.tsx       |   4 +-
 .../dashboard/app/components/HermesRuntimeCard.tsx |   2 +-
 packages/dashboard/app/components/InsightsView.tsx |   2 +-
 .../dashboard/app/components/IssueMentionPopup.tsx |   5 +-
 packages/dashboard/app/components/MailboxView.tsx  |   6 +-
 .../components/MilestoneSliceInterviewModal.tsx    |   2 +-
 .../app/components/MissionInterviewModal.tsx       |   2 +-
 .../dashboard/app/components/MissionManager.tsx    |   8 +-
 .../app/components/ModelOnboardingModal.tsx        |   2 +-
 .../dashboard/app/components/NodeDetailModal.tsx   |   2 +-
 .../app/components/PiExtensionsManager.tsx         |  10 +-
 .../dashboard/app/components/ProjectSelector.tsx   |   6 +-
 packages/dashboard/app/components/QuickChatFAB.tsx |  44 +--
 packages/dashboard/app/components/ResearchView.tsx |   2 +-
 packages/dashboard/app/components/RoutineCard.tsx  |   6 +-
 .../dashboard/app/components/RoutineEditor.tsx     |   2 +-
 packages/dashboard/app/components/RoutingTab.tsx   |   2 +-
 packages/dashboard/app/components/ScheduleCard.tsx |   6 +-
 packages/dashboard/app/components/ScheduleForm.tsx |   2 +-
 packages/dashboard/app/components/ScriptsModal.tsx |   2 +-
 .../app/components/StashConflictModal.tsx          |   4 +-
 .../dashboard/app/components/TerminalModal.tsx     |   2 +-
 .../app/components/nodes/WorkflowNodeTypes.tsx     |  47 +--
 packages/i18n/locales/en/app.json                  | 274 +++++++--------
 packages/i18n/locales/es/app.json                  | 144 ++++++--
 packages/i18n/locales/fr/app.json                  | 144 ++++++--
 packages/i18n/locales/ko/app.json                  | 144 ++++++--
 packages/i18n/locales/zh-CN/app.json               | 144 ++++++--
 packages/i18n/locales/zh-TW/app.json               | 144 ++++++--
 packages/i18n/src/resources.d.ts                   | 375 +++++++++++++++++++--
 54 files changed, 1261 insertions(+), 442 deletions(-)

Fusion-Task-Id: FN-6769

Fusion-Task-Lineage: a8733dc9-3b48-47e6-88c4-020f83ab41de
2026-06-20 05:04:25 -07:00
gsxdsm
a2e96b132a feat(i18n): round-2 sweep — 488 residual strings migrated, markup fidelity restored (#1352)
- 51 fix agents covered every dirty batch from the round-1 verifiers:
  helper-function labels (roles, statuses, relative time), constant
  label maps (SETTINGS_SECTIONS, PROVIDER_INFO, EVENT_TYPE_LABELS),
  TUI help overlay + tab labels, toasts, placeholders, aria-labels
- Inline markup flattened by round 1 restored with <Trans>
  (DbCorruptionBanner storage-docs link, UpdateAvailableBanner code chip)
- Catalogs merged: +527 en keys across 5 locales; CLI bundles + app
  locale tree regenerated (6 locales)
- All 23 sweep-caused test regressions fixed: delta vs the clean-main
  baseline is now zero (remaining 4 local failures reproduce identically
  on origin/main; CI-green upstream)
- typecheck/lint clean; TUI 82/82, core locale 9/9

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-03 20:52:44 -07:00
gsxdsm
1e49494bac feat(i18n): full-sweep string migration — 5,930 keys across 5 locales (#1352)
Migration (multi-agent sweep over 216 files, 60 batches):
- Every user-visible dashboard + TUI string moved to t() with the exact
  English inline default (en rendering byte-identical)
- Catalogs merged from per-batch fragments: en/zh-CN/zh-TW/fr/es now
  carry ~5,930 keys each across common/app/errors/cli namespaces;
  CLI bundles regenerated (6 locales incl. ko)

Integration fixes:
- 18 type errors: reserved {{count}} interpolations renamed, malformed
  plural call, hand-rolled t-param types replaced with TFunction<"app">
- 23 lint errors: superseded label constants/helpers removed
- ExecutorStatusBar hook-order violation (keyboard-open early return
  moved below hooks)
- TUI tests wrapped in I18nextProvider (uninitialized fallback renders
  literal {{placeholders}}); dashboard vitest.setup boots a minimal en
  i18next instance for the same reason

Known WIP (next commits): ~457 residual strings across 50 batches,
Korean drafts for swept keys, and a dashboard test-suite pass that is
still being stabilized (~283 failures under investigation — fake-timer
waitFor interaction, likely stale node_modules vs merged lockfile).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-03 19:06:53 -07:00
gsxdsm
d5b33367c1 FN-5698: clear OAuth relogin banner after successful login
Clear OAuth re-login banner entries immediately after provider re-authentication.

- add a shared oauth relogin success browser event constant in auth utilities
- dispatch relogin success events from Settings and Model Onboarding OAuth success flows
- update OAuthReloginBanner to listen for relogin success, optimistically clear matching provider rows, and trigger immediate status refresh
- add banner tests covering immediate clearing, refetch behavior, unrelated-provider events, and poll-only behavior
- document the immediate-clear behavior in dashboard docs and add a patch changeset for @runfusion/fusion

Files changed:
 .changeset/fn-5698-relogin-banner-auto-clear.md    |  5 ++
 docs/dashboard-guide.md                            |  4 +
 packages/dashboard/app/auth.ts                     |  1 +
 .../app/components/ModelOnboardingModal.tsx        |  3 +-
 .../app/components/OAuthReloginBanner.tsx          | 70 +++++++++--------
 .../dashboard/app/components/SettingsModal.tsx     |  3 +-
 .../__tests__/OAuthReloginBanner.test.tsx          | 90 ++++++++++++++++++++++
 7 files changed, 144 insertions(+), 32 deletions(-)

Fusion-Task-Id: FN-5698

Fusion-Task-Lineage: 1e2f8055-4f77-4e16-ac15-44891de13f55
2026-05-29 11:25:11 -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
Fusion
87af2ce991 feat(FN-4673): complete Step 1 — defer copilot auto-open
Fusion-Task-Id: FN-4673
Fusion-Task-Lineage: 165601b1-c20c-40d5-addb-3c42d710d66d
2026-05-15 15:14:14 -07:00
Fusion
dc46a68b6e test(FN-4554): cover onboarding copilot device-code panel
Fusion-Task-Id: FN-4554
Fusion-Task-Lineage: 12d517c5-1954-4b27-8c63-c7f0dde93d3f
2026-05-14 22:16:44 -07:00
Fusion
603fde96b4 feat(FN-4554): complete Step 4 — surface copilot device code in UI
Fusion-Task-Id: FN-4554
Fusion-Task-Lineage: 12d517c5-1954-4b27-8c63-c7f0dde93d3f
2026-05-14 22:16:44 -07:00
Fusion
1241c0f12f feat(FN-4160): warn before OAuth login when manual code mode is active
Adds user-facing warnings before OAuth login flows in both onboarding and settings, surfacing that manual code authentication is available as an alternative, with corresponding documentation updates and test coverage for the new warning UI.

Fusion-Task-Id: FN-4160
2026-05-12 17:04:32 -07:00
Fusion
7b9e5259d3 feat(FN-3403): add shell multi-profile support with connection manager onbo
Merges shell multi-profile support for desktop (FN-3403) — spanning new connection-manager flows, shell onboarding interoperability, mobile connection profiles, desktop IPC/shell-settings plumbing, and tokenized titlebar styles — with a secondary migration of the WhatsApp plugin to the Baileys pairi

Fusion-Task-Id: FN-3403
2026-05-07 18:35:45 -07:00
Fusion
3735e0565a feat(FN-3396): bundle Cursor CLI as a plugin provider with dashboard auth w
Merges FN-3396's full Cursor CLI provider integration (Steps 1–4): defines a CLI-backed provider contract, adds the `fusion-plugin-cursor-runtime` plugin package with process management and runtime probes, wires dashboard auth flows and UI (ProviderCard, onboarding modal, settings), and bundles the

Fusion-Task-Id: FN-3396
2026-05-07 04:17:52 -07:00
Fusion
f5268019f9 feat(FN-3260): document static slot-host rendering contract
Documents the static slot-host rendering contract in `docs/PLUGIN_AUTHORING.md`, clarifying how plugins should interact with the rendering system.

Fusion-Task-Id: FN-3260
2026-05-04 21:21:22 -07:00
Fusion
b7ac46ecef feat(FN-3195): document llama.cpp provider setup and onboarding
Docs(FN-3195): adds llama.cpp provider setup and onboarding documentation to the main and dashboard READMEs.

Fusion-Task-Id: FN-3195
2026-05-04 10:18:38 -07:00
Fusion
f1ee69e59a feat(FN-3014): document research recovery semantics
Documents research recovery semantics in the CLI reference and settings reference, adding 9 lines of documentation across both files.

Fusion-Task-Id: FN-3014
2026-05-04 09:20:07 -07:00
Fusion
b8d36506db feat(FN-3071): add droid runtime plugin with event bridge, process manageme
This merge introduces a droid runtime plugin system with event bridge and process management (FN-3228), stabilizes plugin workspace verification gates and suppresses placeholder plugin shells in onboarding/settings flows (FN-3071), tokenizes danger/error styling in task detail components (FN-3350),

Fusion-Task-Id: FN-3071
2026-05-04 04:30:16 -07:00
Fusion
37954f3569 feat(FN-3349): add in-review retry mechanism and delivery docs
This merge adds a changeset for feature FN-3349 (in-review retry behavior) and delivery documentation to the `@runfusion/fusion` package.

Fusion-Task-Id: FN-3349
2026-05-04 01:20:43 -07:00
gsxdsm
a3ce8e1f8e fix(FN-XXX): unify codex auth and chat fallback 2026-05-03 23:08:05 -07:00
Fusion
5fd4cdc5df feat(FN-3068): wire plugin slot mounts and enhance planning mode modal UI
This merge incorporates UI enhancements for the planning mode modal and quick chat FAB, moves the drag handle into provider actions, wires required plugin slot mounts, and adds tests for MobileNavBar and UsageIndicator components. The changes span the dashboard UI components with styling and behavio

Fusion-Task-Id: FN-3068
2026-05-03 04:10:07 -07:00
Fusion
4f897d1a46 feat(FN-3067): polish onboarding disclosure UX, plugin slot fallback, and m
Merge brings FN-3067 UX revisions across onboarding components, including reduced ModelOnboardingModal complexity, new fallback styling for PluginSlot, and polish to OnboardingDisclosure, OnboardingResumeCard, and PostOnboardingRecommendations with minor updates to PlanningModeModal and SettingsModa

Fusion-Task-Id: FN-3067
2026-05-02 21:17:01 -07:00
Fusion
4d13ba01ea feat(FN-3059): align provider metadata and documentation
Merged feat(FN-3059) which aligns provider metadata and documentation across the codebase, updating README and getting-started docs plus refinements to the CustomProviderForm and ProviderIcon dashboard components.

Fusion-Task-Id: FN-3059
2026-05-01 17:39:47 -07:00
Fusion
2948ffac71 feat(FN-2981): add droid-cli auth and status routes with experimental agent
This merge lands v0.12.0 with two major features: a droid-cli provider integration adding auth routes, status endpoints, and a settings toggle hook for controlling CLI-based authentication, plus a new experimental agent onboarding modal with a create-agent form. The release also stabilizes engine st

Fusion-Task-Id: FN-2981
2026-05-01 09:14:10 -07:00
Fusion
17d45b8fe7 feat(FN-2980): add droid cli provider card to onboarding
Adds a new Droid CLI provider card to the onboarding flow, including a dedicated provider icon, simplified card CSS, and token fallback fixes for droid provider authentication. The changes wire the card into the ModelOnboardingModal and add test coverage for the card component, icon, and onboarding

Fusion-Task-Id: FN-2980
2026-05-01 05:15:19 -07:00
Fusion
0ec5dfa3b1 feat(FN-2978): add droid-cli package with provider registration and model d
This merge introduces a new `packages/droid-cli` package that bridges AI agent execution as a subprocess, including process management, event streaming, tool mapping, MCP configuration, and thinking-mode support. It also adds the `DroidCliProviderCard` dashboard UI component with onboarding flows an

Fusion-Task-Id: FN-2978
2026-05-01 03:47:10 -07:00
Fusion
dca83061ed feat(FN-3047): add cancellable auth flow with recoverable pending login UX
This merge implements a recoverable pending-login auth flow (FN-3047) across three phases: cancellable in-progress auth routes in the API, an extended auth client contract, and updated ModelOnboardingModal/SettingsModal UI with proper cancel-button visibility during logout. It also adds `dashboard-r

Fusion-Task-Id: FN-3047
2026-05-01 01:14:22 -07:00
Fusion
18d97ca028 feat(FN-3007): merge fusion/fn-3007
Commits merged:
- feat(FN-3007): complete Step 4 — document system memory usage bar
- fix(FN-3007): restore custom provider mapper type compatibility
- test(FN-3007): complete Step 2 — cover memory bar semantics and severity
- feat(FN-3007): complete Step 1 — add semantic memory usage progressbar
- test(FN-3007): complete Step 2 — cover memory usage progress semantics
- feat(FN-3007): complete Step 1 — add system memory usage bar

Files changed:
docs/architecture.md                               |  2 +-
 .../app/components/ModelOnboardingModal.tsx        | 27 ++++++------
 .../dashboard/app/components/SettingsModal.tsx     | 27 ++++++------
 .../dashboard/app/components/SystemStatsModal.css  | 48 ++++++++++++++++++++++
 .../dashboard/app/components/SystemStatsModal.tsx  | 29 +++++++++++--
 .../components/__tests__/SystemStatsModal.test.tsx | 33 +++++++++++++++
 6 files changed, 133 insertions(+), 33 deletions(-)

Fusion-Task-Id: FN-3007
2026-04-29 23:54:29 -07:00
Fusion
8c641a8291 feat(FN-3006): merge fusion/fn-3006
Commits merged:
- fix(FN-3006): complete Step 3 — repair dashboard typecheck mapper signatures
- test(FN-3006): complete Step 2 — cover Use default reselection flow
- feat(FN-3006): complete Step 1 — resolve default model selection target

Files changed:
.../app/components/ModelOnboardingModal.tsx        | 24 ++++++---
 packages/dashboard/app/components/QuickChatFAB.tsx | 13 +++--
 .../dashboard/app/components/SettingsModal.tsx     | 24 ++++++---
 .../app/components/__tests__/QuickChatFAB.test.tsx | 61 ++++++++++++++++++++++
 4 files changed, 103 insertions(+), 19 deletions(-)

Fusion-Task-Id: FN-3006
2026-04-29 23:43:41 -07:00
Fusion
e3c99ef290 feat(FN-3005): merge fusion/fn-3005
Commits merged:
- fix(FN-3005): restore dashboard typecheck for custom providers
- feat(FN-3005): complete Step 1 — use explicit mode labels
- test(FN-3005): complete Step 3 — assert explicit mode toggle labels
- feat(FN-3005): complete Step 2 — fit explicit mode labels in header

Files changed:
packages/dashboard/app/components/ModelOnboardingModal.tsx        | 2 +-
 packages/dashboard/app/components/QuickChatFAB.css                | 4 ++--
 packages/dashboard/app/components/QuickChatFAB.tsx                | 4 ++--
 packages/dashboard/app/components/SettingsModal.tsx               | 6 +++---
 packages/dashboard/app/components/__tests__/QuickChatFAB.test.tsx | 4 ++--
 5 files changed, 10 insertions(+), 10 deletions(-)

Fusion-Task-Id: FN-3005
2026-04-29 22:25:20 -07:00
Fusion
c3d2e98f81 feat(FN-3004): merge fusion/fn-3004
- **New `fn custom-provider` CLI commands** (`register`, `unregister`, `list`) for managing custom AI providers; `dashboard.ts` and `serve.ts` now initialize the registry, and `packages/engine/src/custom-providers.ts` exposes the engine integration
- **Custom provider registration API** in `packages/dashboard/src/routes/register-agent-core-routes.ts` with `POST /api/agent-core/register-custom-provider`; providers are persisted in `store.ts` and exposed via `GET /api/agent-core/custom-providers`
- **Agent heartbeat improvements** (`packages/engine/src/agent-heartbeat.ts`): clearer conflict semantics when task is checked out by another agent, refactored `WakeContext` handling, and budget enforcement at heartbeat time
- **Inline quick chat composer** (FN-3004): `QuickChatFAB` reworked with inline attachment row, improved prompt template logic, and full TypeScript coverage in `QuickChatFAB.test.tsx`
- **Settings and onboarding**: `SettingsModal.tsx` surfaces custom provider management; `ModelOnboardingModal.tsx` updated to use the new registry
- **Agent instructions expanded** (`packages/engine/src/agent-instructions.ts`): richer system prompt injection for spawned agents including agent personality/soul, ratings context, and parent assignment details
- **`agent-store.ts`** now tracks `reportsTo` for spawned agent hierarchy and exposes `list_agents` and `delegate_task` tools via the pi extension
- **Database layer**: `db.ts` uses `prepareSelect()` helpers for query consistency; WAL mode enforced; foreign-key checks enabled in test suite
- **New tests**: `custom-provider-registry.test.ts`, `pi-create-fn-agent.test.ts`, `agent-heartbeat.test.ts`, `notifier.test.ts`, `routes.test.ts` for dashboard core routes, plus coverage for `QuickChatFAB`, `TaskCard`, and `UpdateAvailableBanner`
- **TaskCard**: status badge now uses `--card-status-badge--{status}` CSS classes instead of inline style helpers; `TaskCard.test.tsx` updated to match

Commits merged:
- fix(FN-3004): restore dashboard typecheck for custom provider state
- test(FN-3004): complete Step 2 — cover inline composer attachment row
- feat(FN-3004): complete Step 1 — inline quick chat composer row
- feat(FN-3003): merge fusion/fn-3003
- feat(FN-2962): merge fusion/fn-2962
- fix(FN-XXX): update release notes link in update notification

Files changed:
.changeset/fix-update-release-notes-link.md        |   5 +
 .changeset/register-custom-providers.md            |   5 +
 docs/architecture.md                               |   2 +
 .../__tests__/custom-provider-registry.test.ts     | 167 +++++++++++++++++++++
 .../cli/src/commands/__tests__/dashboard.test.ts   |   4 +
 packages/cli/src/commands/__tests__/serve.test.ts  |   3 +
 .../cli/src/commands/custom-provider-registry.ts   |  96 ++++++++++++
 packages/cli/src/commands/dashboard.ts             |  28 ++++
 packages/cli/src/commands/serve.ts                 |  28 ++++
 packages/core/src/__tests__/db.test.ts             |  26 ++--
 packages/core/src/__tests__/insight-store.test.ts  |   8 +-
 packages/core/src/__tests__/mission-store.test.ts  |   2 +-
 packages/core/src/__tests__/roadmap-store.test.ts  |   2 +-
 packages/core/src/__tests__/run-audit.test.ts      |   2 +-
 packages/core/src/__tests__/task-documents.test.ts |   2 +-
 packages/core/src/agent-store.ts                   |  16 +-
 packages/core/src/db.ts                            |  13 +-
 packages/core/src/index.ts                         |   2 +-
 packages/core/src/store.ts                         |  35 ++++-
 packages/core/src/types.ts                         |  33 ++++
 packages/dashboard/app/api/legacy.ts               |  11 ++
 .../dashboard/app/components/AgentDetailView.tsx   |  92 +++++++++++-
 .../app/components/ModelOnboardingModal.tsx        |  15 +-
 packages/dashboard/app/components/QuickChatFAB.css |  19 ++-
 packages/dashboard/app/components/QuickChatFAB.tsx |  95 ++++++------
 .../dashboard/app/components/SettingsModal.tsx     |  39 ++++-
 packages/dashboard/app/components/TaskCard.tsx     |  46 ++++--
 .../app/components/UpdateAvailableBanner.tsx       |   2 +-
 .../app/components/__tests__/QuickChatFAB.test.tsx |  23 +++
 .../app/components/__tests__/TaskCard.test.tsx     |   2 +-
 .../__tests__/UpdateAvailableBanner.test.tsx       |   2 +-
 .../src/__tests__/routes-agent-skills.test.ts      |   1 +
 packages/dashboard/src/__tests__/routes.test.ts    |  34 +++++
 .../src/routes/register-agent-core-routes.ts       |  78 ++++++++++
 .../dashboard/src/routes/register-git-github.ts    |  16 +-
 .../engine/src/__tests__/agent-heartbeat.test.ts   |  59 ++++++++
 packages/engine/src/__tests__/notifier.test.ts     |  33 ++++
 .../src/__tests__/pi-create-fn-agent.test.ts       |  36 +++++
 .../engine/src/__tests__/project-engine.test.ts    |  53 ++++++-
 packages/engine/src/agent-heartbeat.ts             |  86 ++++++++++-
 packages/engine/src/agent-instructions.ts          | 103 ++++++++++++-
 packages/engine/src/custom-providers.ts            |  15 ++
 packages/engine/src/index.ts                       |   3 +
 packages/engine/src/notifier.ts                    |   3 +-
 packages/engine/src/pi.ts                          |  30 ++++
 packages/engine/src/project-engine.ts              |  12 +-
 46 files changed, 1254 insertions(+), 133 deletions(-)

Fusion-Task-Id: FN-3004
2026-04-29 21:53:55 -07:00
Fusion
7211363845 feat(FN-3003): merge fusion/fn-3003
- Unify notification service ownership across the engine: `Notifier` now operates on `ProjectEngine` rather than its own `Core` reference, resolving stale-closure issues during engine lifecycle
- Add regression tests in `notifier.test.ts` covering merge dedupe wiring and ownership initialization
- Expand `project-engine.test.ts` to cover ownership state transitions and `ProjectEngine`-notifier integration
- Fix TypeScript regressions in `ModelOnboardingModal.tsx` and `SettingsModal.tsx` introduced by custom provider types
- Document the notification ownership model in `docs/architecture.md`

Commits merged:
- feat(FN-3003): complete Step 4 — document notification ownership model
- fix(FN-3003): resolve dashboard custom provider typecheck regressions
- test(FN-3003): complete Step 2 — add merge dedupe wiring regressions
- feat(FN-3003): complete Step 1 — unify notification service ownership

Files changed:
docs/architecture.md                               |  2 +
 .../app/components/ModelOnboardingModal.tsx        | 13 +++++-
 .../dashboard/app/components/SettingsModal.tsx     | 17 +++++--
 packages/engine/src/__tests__/notifier.test.ts     | 33 ++++++++++++++
 .../engine/src/__tests__/project-engine.test.ts    | 53 +++++++++++++++++++---
 packages/engine/src/notifier.ts                    |  3 +-
 packages/engine/src/project-engine.ts              | 12 +++--
 7 files changed, 116 insertions(+), 17 deletions(-)

Fusion-Task-Id: FN-3003
2026-04-29 21:48:13 -07:00
Fusion
38f5159719 feat(FN-2962): merge fusion/fn-2962
- Add changeset for `@runfusion/fusion` minor release introducing custom provider registration support

Commits merged:
- feat(FN-2962): complete Step 8 — add changeset and documentation

Files changed:
.changeset/register-custom-providers.md | 5 +++++
 1 file changed, 5 insertions(+)

Fusion-Task-Id: FN-2962
2026-04-29 21:42:44 -07:00
Fusion
fec6cd82ec feat(FN-2990): merge fusion/fn-2990
- Finalize the downstream porting plan in `docs/research/pi-autoresearch-analysis.md` with updated guidance and recommendations

Commits merged:
- docs(FN-2990): complete Step 6 — finalize downstream porting plan

Files changed:
docs/research/pi-autoresearch-analysis.md | 24 +++++++++++++++++++++++-
 1 file changed, 23 insertions(+), 1 deletion(-)

Fusion-Task-Id: FN-2990
2026-04-29 20:58:34 -07:00
Fusion
567873bc02 feat(FN-2959): merge fusion/fn-2959-2
- Add custom provider CRUD routes (`POST/GET/PUT/DELETE /api/custom-providers`) with auth validation and storage in `~/.fusion/settings.json`; registers via `register-custom-provider-routes.ts`
- Add `CustomProviderForm` component for user-defined provider configuration (endpoint URL, API key, model ID); includes dedicated CSS
- Add custom provider section to `SettingsModal` under the "Models" tab with provider list and add/disable controls
- Add custom provider selection to `ModelOnboardingModal` onboarding flow so new users can use their own endpoints
- Add changeset (`custom-openai-anthropic-providers.md`) for `@runfusion/fusion` minor release
- Add unit tests for `CustomProviderForm`, `ModelOnboardingModal`, `SettingsModal`, custom-provider routes, and `useTasks` hook; update existing mocks

Commits merged:
- feat(FN-2959): complete Step 6 — add changeset and docs
- test(FN-2959): update settings modal mocks for custom provider API
- feat(FN-2959): complete Step 4 — add onboarding custom provider flow
- feat(FN-2959): complete Step 3 — add settings custom provider disclosure
- feat(FN-2959): complete Step 2 — add custom provider form component
- feat(FN-2959): complete Step 1 — add custom provider CRUD routes
- feat(FN-2975): merge fusion/fn-2975

Files changed:
.changeset/custom-openai-anthropic-providers.md    |   5 +
 packages/dashboard/app/api/legacy.ts               |  41 ++++
 .../app/components/CustomProviderForm.css          |  45 ++++
 .../app/components/CustomProviderForm.tsx          | 203 ++++++++++++++++
 .../app/components/ModelOnboardingModal.css        |  14 ++
 .../app/components/ModelOnboardingModal.tsx        |  62 ++++-
 .../dashboard/app/components/SettingsModal.css     |  38 +++
 .../dashboard/app/components/SettingsModal.tsx     |  91 +++++++-
 .../__tests__/CustomProviderForm.test.tsx          |  60 +++++
 .../__tests__/ModelOnboardingModal.test.tsx        |  23 ++
 .../components/__tests__/SettingsModal.test.tsx    |  13 ++
 .../__tests__/SettingsModalNodeRouting.test.tsx    |   4 +
 .../components/__tests__/settings-mobile.test.tsx  |   4 +
 .../dashboard/app/hooks/__tests__/useTasks.test.ts |  48 ++++
 packages/dashboard/app/hooks/useTasks.ts           |   4 +-
 packages/dashboard/src/auth-paths.ts               |   4 +
 packages/dashboard/src/routes.ts                   |   2 +
 .../__tests__/custom-provider-routes.test.ts       | 118 ++++++++++
 .../src/routes/register-custom-provider-routes.ts  | 254 +++++++++++++++++++++
 19 files changed, 1027 insertions(+), 6 deletions(-)

Fusion-Task-Id: FN-2959
2026-04-29 20:15:05 -07:00
Fusion
b0cda2398b feat(FN-2923): merge fusion/fn-2923
- Add task `source` provenance field tracking how tasks enter the system (e.g. `"manual"`, `"heartbeat"`, `"executor"`, `"triage"`, `"cron"`, `"routine"`)
- Wire `source` into shared create-task tools, executor agent, triage agent, cron runner, and routine runner
- Add `source` to heartbeat task creation in `agent-heartbeat.ts` and mission execution loop in `mission-execution-loop.ts`
- Wire `source` field into dashboard routes (`register-planning-subtask-routes.ts`, `register-task-workflow-routes.ts`) and GitHub integration (`register-git-github.ts`)
- Add `source` to the API layer and task store handlers in the dashboard
- Expose `source` in the `fn` CLI task command and `task-plan` extension tool
- Add integration tests for provenance across engine (agent-tools, agent-heartbeat, cron-runner, triage, pr-comment-handler) and dashboard routes
- Update existing tests to assert the correct source values
- Bulk-revert stale changeset files that were superseded by the v0.9.1 release commit

Commits merged:
- test(FN-2923): complete Step 14 — align tests with task source provenance
- test(FN-2923): complete Steps 12-13 — update and add provenance tests
- feat(FN-2923): complete Step 10 — wire CLI task provenance
- feat(FN-2923): complete Step 9 — wire dashboard UI and API source fields
- feat(FN-2923): complete Step 8 — wire dashboard route provenance
- feat(FN-2923): complete Step 7 — wire remaining engine provenance
- feat(FN-2923): complete Step 6 — add routine create-task provenance
- feat(FN-2923): complete Step 5 — add cron create-task provenance
- feat(FN-2923): complete Step 4 — add triage subtask source
- feat(FN-2923): complete Step 3 — add executor create-task source
- feat(FN-2923): complete Step 2 — add heartbeat task provenance
- feat(FN-2923): complete Step 1 — add provenance to shared create-task tools
- feat(FN-2945): merge fusion/fn-2945
- chore(release): v0.9.1

Files changed:
.changeset/active-agents-no-stuck-connecting.md    | 13 ---
 .changeset/active-agents-panel-hoist-heartbeat.md  | 13 ---
 .changeset/fix-agent-heartbeat-terminal-links.md   |  5 --
 .changeset/fix-experimental-defaults.md            |  5 --
 .changeset/improve-git-manager-diff-pane.md        |  5 --
 .changeset/insights-two-pane-layout.md             |  5 --
 .changeset/show-planning-tasks-immediately.md      |  5 --
 CHANGELOG.md                                       | 92 ++++++++++++++++++++++
 package.json                                       |  2 +-
 packages/cli-alias/CHANGELOG.md                    | 15 ++++
 packages/cli-alias/package.json                    |  2 +-
 packages/cli/CHANGELOG.md                          | 12 +++
 packages/cli/package.json                          |  2 +-
 packages/cli/src/__tests__/task-plan.test.ts       |  1 +
 packages/cli/src/commands/__tests__/task.test.ts   | 15 +++-
 packages/cli/src/commands/task.ts                  | 15 +++-
 packages/cli/src/extension.ts                      |  9 +++
 packages/core/CHANGELOG.md                         |  7 ++
 packages/core/package.json                         |  2 +-
 packages/dashboard/CHANGELOG.md                    | 14 ++++
 .../app/__tests__/agent-css-classes.test.ts        |  3 +-
 packages/dashboard/app/__tests__/api.test.ts       | 13 +++
 packages/dashboard/app/api/legacy.ts               |  2 +
 packages/dashboard/app/components/AgentsView.css   | 22 +++---
 .../app/components/ModelOnboardingModal.tsx        |  5 +-
 packages/dashboard/app/components/TodoView.tsx     |  2 +
 .../__tests__/ModelOnboardingModal.test.tsx        |  4 +-
 .../app/components/__tests__/QuickChatFAB.test.tsx | 14 +---
 .../app/components/__tests__/TodoView.test.tsx     |  4 +-
 .../__tests__/agents-view-mobile.test.tsx          |  5 +-
 .../components/__tests__/onboarding-flow.test.tsx  |  2 +-
 .../app/hooks/__tests__/useTaskHandlers.test.ts    |  4 +-
 packages/dashboard/app/hooks/useTaskHandlers.ts    |  4 +-
 packages/dashboard/package.json                    |  2 +-
 packages/dashboard/src/__tests__/routes.test.ts    | 14 ++++
 packages/dashboard/src/routes.ts                   |  4 +
 .../dashboard/src/routes/register-git-github.ts    | 12 +++
 .../src/routes/register-planning-subtask-routes.ts |  3 +
 .../src/routes/register-task-workflow-routes.ts    |  7 ++
 packages/desktop/CHANGELOG.md                      |  7 ++
 packages/desktop/package.json                      |  2 +-
 packages/engine/CHANGELOG.md                       | 11 +++
 packages/engine/package.json                       |  2 +-
 .../engine/src/__tests__/agent-heartbeat.test.ts   | 10 +++
 .../src/__tests__/agent-tools-delegation.test.ts   |  2 +
 packages/engine/src/__tests__/agent-tools.test.ts  | 37 +++++++++
 packages/engine/src/__tests__/cron-runner.test.ts  |  4 +
 .../src/__tests__/pr-comment-handler.test.ts       |  8 ++
 packages/engine/src/__tests__/triage.test.ts       |  2 +
 packages/engine/src/agent-heartbeat.ts             | 13 ++-
 packages/engine/src/agent-tools.ts                 | 13 ++-
 packages/engine/src/cron-runner.ts                 |  7 +-
 packages/engine/src/executor.ts                    |  2 +-
 packages/engine/src/mission-execution-loop.ts      |  8 ++
 packages/engine/src/pr-comment-handler.ts          |  5 ++
 packages/engine/src/project-engine.ts              |  8 ++
 packages/engine/src/routine-runner.ts              |  4 +
 packages/engine/src/triage.ts                      |  4 +
 packages/mobile/CHANGELOG.md                       |  7 ++
 packages/mobile/package.json                       |  2 +-
 packages/pi-claude-cli/CHANGELOG.md                |  7 ++
 packages/pi-claude-cli/package.json                |  2 +-
 packages/plugin-sdk/CHANGELOG.md                   | 10 +++
 packages/plugin-sdk/package.json                   |  2 +-
 .../examples/fusion-plugin-auto-label/CHANGELOG.md |  8 ++
 .../examples/fusion-plugin-auto-label/package.json |  2 +-
 .../examples/fusion-plugin-ci-status/CHANGELOG.md  |  8 ++
 .../examples/fusion-plugin-ci-status/package.json  |  2 +-
 .../fusion-plugin-notification/CHANGELOG.md        |  8 ++
 .../fusion-plugin-notification/package.json        |  2 +-
 .../fusion-plugin-settings-demo/CHANGELOG.md       |  8 ++
 .../fusion-plugin-settings-demo/package.json       |  2 +-
 plugins/fusion-plugin-hermes-runtime/CHANGELOG.md  |  8 ++
 plugins/fusion-plugin-hermes-runtime/package.json  |  2 +-
 .../fusion-plugin-openclaw-runtime/CHANGELOG.md    |  8 ++
 .../fusion-plugin-openclaw-runtime/package.json    |  2 +-
 .../fusion-plugin-paperclip-runtime/CHANGELOG.md   |  8 ++
 .../fusion-plugin-paperclip-runtime/package.json   |  2 +-
 78 files changed, 499 insertions(+), 115 deletions(-)

Fusion-Task-Id: FN-2923
2026-04-29 17:23:22 -07:00
gsxdsm
a2ebfecd3d fix(dashboard): move onboarding default model picker above advanced settings
Surface the Default Model selector directly after the authenticated
provider list so users see it without scrolling past the disclosures.
Hydration of the previously-saved default on reopen was already in
place — this just relocates the existing block.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-28 16:04:29 -07:00