[eric] onboarding: stop auto-typing+sending canned prompts (no forced pdf app); steps 5/6/8 guide and let the user send their own task

This commit is contained in:
ciregenz
2026-06-19 17:18:44 -07:00
parent de2fce4f62
commit a69d6070f8
3 changed files with 22 additions and 26 deletions
@@ -39,15 +39,18 @@ export const step05: OnboardingStep = {
condition: { kind: 'event_bus', event: 'agent:attached_to_browser' },
timeoutMs: 90000,
},
// Guide, don't commandeer: invite the user to ask for any web task in their
// own words instead of typing + sending a canned prompt for them.
{ kind: 'move_to', target: S.chatInput },
{
kind: 'type_into',
target: S.chatInput,
text: 'Pull up the open swarm website (openswarm.com) and find the docs',
speedMs: 12,
kind: 'popup',
text: 'Now ask it to do something on the web in your own words, then send.',
},
{
kind: 'wait_user',
condition: { kind: 'event_bus', event: 'chat:message_sent' },
timeoutMs: 180000,
},
{ kind: 'move_to', target: S.chatSendButton },
{ kind: 'click', target: S.chatSendButton, simulate: true },
// Inline canvas-controls tour (hover + popup, no waits/clicks expected).
{ kind: 'move_to', target: S.canvasFitToView },
{ kind: 'popup', text: 'Heads up! This snaps everything back into view.' },
@@ -44,25 +44,22 @@ export const step06: OnboardingStep = {
condition: { kind: 'event_bus', event: 'agent:attached_to_browser' },
timeoutMs: 90000,
},
// Guide, don't commandeer: let the user tell the boss chat what to do with
// the helper, in their own words, instead of auto-typing + sending for them.
{ kind: 'move_to', target: S.chatInput },
{
kind: 'type_into',
target: S.chatInput,
// Source-agnostic; works for either step 3 prompt.
text: 'Turn what it dug up into a PDF report and save it to my downloads.',
speedMs: 12,
kind: 'popup',
text: 'Tell the boss chat what to have its helper do, your words, then send.',
},
{ kind: 'move_to', target: S.chatSendButton },
{ kind: 'click', target: S.chatSendButton, simulate: true },
// Confirm message went out; don't wait for the orchestrator to finish (legitimately runs minutes).
// Confirm a message went out; don't wait for the orchestrator to finish (legitimately runs minutes).
{
kind: 'wait_user',
condition: { kind: 'event_bus', event: 'chat:message_sent' },
timeoutMs: 30000,
timeoutMs: 180000,
},
{
kind: 'popup',
text: "On it! Your PDF will pop into Downloads when everyone's done. Go poke around in the meantime.",
text: "On it! The helper gets to work and reports back to the boss. Go poke around in the meantime.",
},
{ kind: 'delay', ms: 4000 },
{ kind: 'outro' },
@@ -33,22 +33,18 @@ export const step08: OnboardingStep = {
timeoutMs: 60000,
},
{ kind: 'delay', ms: 350 },
// Guide, don't commandeer: point at the chat input and let the user describe
// their OWN app. We never type a canned prompt or auto-send, so the tour
// doesn't spend a run building something the user didn't choose.
{ kind: 'move_to', target: S.chatInput },
{
kind: 'type_into',
target: S.chatInput,
text: 'Make me a pdf previewer app',
speedMs: 12,
kind: 'popup',
text: 'Describe any app you want, a tracker, a viewer, a game, type it here and send.',
},
// 120ms pause lets onInput's draft-state commit before clicking; send-button is disabled-while-empty.
{ kind: 'delay', ms: 120 },
{ kind: 'move_to', target: S.chatSendButton },
{ kind: 'click', target: S.chatSendButton, simulate: true },
// chat:message_sent only; app:generation_done has too many legitimate completion shapes.
{
kind: 'wait_user',
condition: { kind: 'event_bus', event: 'chat:message_sent' },
timeoutMs: 30000,
timeoutMs: 180000,
},
{
kind: 'popup',