fix(onboarding): simplify agent setup copy

This commit is contained in:
gsxdsm
2026-06-22 05:37:58 -07:00
parent 08aeb5a145
commit 2bfac78b47
9 changed files with 14 additions and 14 deletions

View File

@@ -697,7 +697,7 @@ The final `createAgent(...)` call always uses the latest values from these step-
After first-project registration, first-run setup asks whether to create a first persistent agent before entering the dashboard. The CEO preset is selected by default because this first agent is framed as an optional coordinator that can help create tasks and keep direction across sessions.
Users can choose any existing preset, create the selected preset-scoped agent for the newly registered project, or skip the step and create agents later from the Agents view. Creating or assigning a persistent agent is not required for task work: Fusion still creates task-scoped temporary agents to plan, execute, review, and merge tasks.
Users can choose a preset, create the project agent, or skip it and create agents later from the Agents view. Agents are optional for task work: Fusion still starts temporary agents to plan, code, review, and merge tasks.
When `experimentalFeatures.agentOnboarding` is enabled, first-run setup also offers the same draft-first **AI Interview** path used by the New Agent dialog. Applying the interview draft updates the setup preview, but persistence remains explicit through **Create Agent**.

View File

@@ -595,7 +595,7 @@ Navigation:
Features:
- Switch between **List**, **Board**, and **Org chart** layouts
- Filter by role/state, include/exclude system agents, and inspect health/status
- First-run setup asks whether to create a first persistent agent after project registration. The default template is **CEO**, users can choose another preset, use the AI interview when `experimentalFeatures.agentOnboarding` is enabled, or skip the step. Task creation and execution do not require creating or assigning a persistent agent: Fusion automatically spawns temporary agents to plan, execute, review, and merge task work.
- First-run setup asks whether to create an optional project agent after project registration. The default template is **CEO**; users can choose another preset, use the AI interview when `experimentalFeatures.agentOnboarding` is enabled, or skip it. Fusion can still build tasks without an agent by starting temporary agents to plan, code, review, and merge task work.
- Start, pause, stop, and trigger agent runs from the view and from detail panels
- In **Agent detail**, use the kebab **Bulk agent actions** button in the header utility cluster (next to **Refresh** and **Close**) to run project-wide lifecycle transitions for non-ephemeral agents in the current project — **Pause All Agents** targets agents in the `active` or `running` state, while **Resume All Agents** targets agents in the `paused` state only
- Bulk menu items stay disabled when nothing is eligible and show an inline hint (`Loading eligible agents...`, `No active agents eligible`, `No paused agents eligible`, or the current eligible count such as `Pause 2 active/running agents`)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 258 KiB

After

Width:  |  Height:  |  Size: 269 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 177 KiB

After

Width:  |  Height:  |  Size: 160 KiB

View File

@@ -590,7 +590,7 @@ export function ModelOnboardingModal({
/*
FNXC:Onboarding 2026-06-22-04:16:
First-time provider/GitHub setup must pass through the same optional first-agent flow before first-task creation.
Users can create or skip a persistent coordinating agent because Fusion automatically spawns temporary agents to plan, execute, review, and merge tasks.
Users can create or skip a coordinating agent because Fusion can still start temporary agents to plan, code, review, and merge tasks.
*/
const ceoPreset = useMemo(
() => getPresetById("ceo") ?? AGENT_PRESETS[0]!,
@@ -2797,13 +2797,13 @@ export function ModelOnboardingModal({
{step === "agent" && (
<div className="setup-wizard-agent-step model-onboarding-agent-step">
<p className="setup-wizard-agent-intro">
{t("setup.firstAgentIntro", "You do not need to create or assign an agent for Fusion to build tasks. Fusion automatically spawns temporary agents to plan, execute, review, and merge task work. A persistent agent is optional and can coordinate work, help create tasks, and keep direction across sessions.")}
{t("setup.firstAgentIntro", "Agents are optional. Fusion can build tasks without one by starting temporary agents for planning, coding, review, and merge. Create an agent only if you want help coordinating tasks and direction.")}
</p>
{!hasProjectSelected && (
<div className="onboarding-project-prerequisite" data-testid="onboarding-agent-project-prerequisite">
<p className="onboarding-helper-text">
{t("setup.projectMustBeSelectedForAgent", "Set up a project before creating your first agent. You can also skip this and create tasks without a persistent agent.")}
{t("setup.projectMustBeSelectedForAgent", "Set up a project before creating an agent. You can skip this and create tasks without one.")}
</p>
<button
type="button"
@@ -3001,7 +3001,7 @@ export function ModelOnboardingModal({
{/* FNXC:Onboarding 2026-06-22-04:01: The provider/GitHub onboarding flow also reaches task creation, so it must repeat that users can create tasks without creating or assigning a persistent agent; Fusion spawns temporary plan/execute/review/merge agents for task work. */}
<OnboardingDisclosure summary={t("setup.whatHappensWhenCreateTask", "What happens when I create a task?")}>
<p className="onboarding-helper-text">
{t("setup.whatHappensWhenCreateTaskBody", "A task describes something you want done. You do not need to create or assign a persistent agent first: Fusion automatically spawns temporary agents to plan, execute, review, and merge task work. You can track progress on the board and review the results.")}
{t("setup.whatHappensWhenCreateTaskBody", "Describe the work you want done. You can create tasks without an agent: Fusion starts temporary agents to plan, code, review, and merge. Track everything on the board.")}
</p>
</OnboardingDisclosure>

View File

@@ -491,7 +491,7 @@ export function SetupWizardModal({
{state.step === "agent" && (
<div className="setup-wizard-agent-step">
<p className="setup-wizard-agent-intro">
{t("setup.firstAgentIntro", "You do not need to create or assign an agent for Fusion to build tasks. Fusion automatically spawns temporary agents to plan, execute, review, and merge task work. A persistent agent is optional and can coordinate work, help create tasks, and keep direction across sessions.")}
{t("setup.firstAgentIntro", "Agents are optional. Fusion can build tasks without one by starting temporary agents for planning, coding, review, and merge. Create an agent only if you want help coordinating tasks and direction.")}
</p>
<div className="setup-wizard-agent-layout">

View File

@@ -398,7 +398,7 @@ describe("SetupWizardModal", () => {
await waitFor(() => {
expect(mockRegisterProject).toHaveBeenCalled();
});
expect(screen.getByText(/You do not need to create or assign an agent/)).toBeDefined();
expect(screen.getByText(/Agents are optional/)).toBeDefined();
expect(screen.getByRole("radio", { name: "CEO selected" })).toHaveAttribute("aria-checked", "true");
expect(screen.getByText("Create Agent")).toBeDefined();
expect(screen.getByText("Skip for now")).toBeDefined();

View File

@@ -6598,7 +6598,7 @@
"firstAgentDraftName": "Draft agent",
"firstAgentContinueWithTemplates": "Continue with templates",
"firstAgentInterviewLoadError": "AI interview could not load. You can still create an agent from a template or skip this step.",
"firstAgentIntro": "You do not need to create or assign an agent for Fusion to build tasks. Fusion automatically spawns temporary agents to plan, execute, review, and merge task work. A persistent agent is optional and can coordinate work, help create tasks, and keep direction across sessions.",
"firstAgentIntro": "Agents are optional. Fusion can build tasks without one by starting temporary agents for planning, coding, review, and merge. Create an agent only if you want help coordinating tasks and direction.",
"firstAgentNoInstructions": "No inline instructions yet",
"firstAgentPreview": "Preview",
"firstAgentSkippedHint": "You can create agents later from the Agents view.",
@@ -6673,7 +6673,7 @@
"profileName": "Profile name",
"projectDirectory": "Project Directory",
"projectMustBeSelected": "A project must be selected before you can create tasks or import from GitHub.",
"projectMustBeSelectedForAgent": "Set up a project before creating your first agent. You can also skip this and create tasks without a persistent agent.",
"projectMustBeSelectedForAgent": "Set up a project before creating an agent. You can skip this and create tasks without one.",
"projectName": "Project Name",
"projectNameHintClone": "By default this follows the destination folder name unless you edit it.",
"projectNameHintExisting": "By default this follows the selected directory name unless you edit it.",
@@ -6780,7 +6780,7 @@
"whatDoesProjectSetupDo": "What does project setup do?",
"whatDoesProjectSetupDoBody": "Project setup registers a workspace so Fusion knows where to read files, run commands, and track task changes.",
"whatHappensWhenCreateTask": "What happens when I create a task?",
"whatHappensWhenCreateTaskBody": "A task describes something you want done. You do not need to create or assign a persistent agent first: Fusion automatically spawns temporary agents to plan, execute, review, and merge task work. You can track progress on the board and review the results.",
"whatHappensWhenCreateTaskBody": "Describe the work you want done. You can create tasks without an agent: Fusion starts temporary agents to plan, code, review, and merge. Track everything on the board.",
"whatIsApiKey": "What is an API key?",
"whatIsApiKeyBody": "An API key is a secret token that authenticates Fusion with the provider. You can find your key in the provider's dashboard under API settings. Keys are stored securely on your machine.",
"withGitHub1": "Import issues as tasks",

View File

@@ -6602,7 +6602,7 @@ export default interface Resources {
"firstAgentCustomDraft": "Custom agent draft",
"firstAgentDraftName": "Draft agent",
"firstAgentInterviewLoadError": "AI interview could not load. You can still create an agent from a template or skip this step.",
"firstAgentIntro": "You do not need to create or assign an agent for Fusion to build tasks. Fusion automatically spawns temporary agents to plan, execute, review, and merge task work. A persistent agent is optional and can coordinate work, help create tasks, and keep direction across sessions.",
"firstAgentIntro": "Agents are optional. Fusion can build tasks without one by starting temporary agents for planning, coding, review, and merge. Create an agent only if you want help coordinating tasks and direction.",
"firstAgentNoInstructions": "No inline instructions yet",
"firstAgentPreview": "Preview",
"firstAgentSkippedHint": "You can create agents later from the Agents view.",
@@ -6677,7 +6677,7 @@ export default interface Resources {
"profileName": "Profile name",
"projectDirectory": "Project Directory",
"projectMustBeSelected": "A project must be selected before you can create tasks or import from GitHub.",
"projectMustBeSelectedForAgent": "Set up a project before creating your first agent. You can also skip this and create tasks without a persistent agent.",
"projectMustBeSelectedForAgent": "Set up a project before creating an agent. You can skip this and create tasks without one.",
"projectName": "Project Name",
"projectNameHintClone": "By default this follows the destination folder name unless you edit it.",
"projectNameHintExisting": "By default this follows the selected directory name unless you edit it.",
@@ -6785,7 +6785,7 @@ export default interface Resources {
"whatDoesProjectSetupDo": "What does project setup do?",
"whatDoesProjectSetupDoBody": "Project setup registers a workspace so Fusion knows where to read files, run commands, and track task changes.",
"whatHappensWhenCreateTask": "What happens when I create a task?",
"whatHappensWhenCreateTaskBody": "A task describes something you want done. You do not need to create or assign a persistent agent first: Fusion automatically spawns temporary agents to plan, execute, review, and merge task work. You can track progress on the board and review the results.",
"whatHappensWhenCreateTaskBody": "Describe the work you want done. You can create tasks without an agent: Fusion starts temporary agents to plan, code, review, and merge. Track everything on the board.",
"whatIsApiKey": "What is an API key?",
"whatIsApiKeyBody": "An API key is a secret token that authenticates Fusion with the provider. You can find your key in the provider's dashboard under API settings. Keys are stored securely on your machine.",
"withGitHub1": "Import issues as tasks",