Files
Toran Bruce RichardsandGPT-6 3b784e07a4 fix(platform): guide existing users to workflows in Otto (#14935)
🤖 Help returning users find their existing workflows after the Experts
rollout removed the Agents/Library sidebar entry.

### Why / What / How

**Why:** Existing users need a clear route to their saved agents, now
called workflows: **Team → Otto → Workflows**.

**What:** Add a dismissible “Your agents have moved” modal with an
optional 27-second video and a direct **Go to my workflows** action. The
recording shows the full workflow list, opens a workflow, and shows its
setup inputs.

**How:** This notice **only targets accounts created before September
21, 2026**: the strict cutoff is `created_at < 2026-09-21T00:00:00Z`
(the supplied release date interpreted as the start of that day in UTC).
Both `HIRE_EXPERTS` and `AUTOGPT_NEW_LAYOUT` must be enabled and ready,
and the account must have completed onboarding. Accounts created on or
after the cutoff do not see it.

Dismissal via **Got it**, the close button, Escape, outside click, or
**Go to my workflows** records an unrewarded, account-scoped
`WORKFLOWS_MOVED` onboarding step, with an immediate local fallback.
Once acknowledged, it stays dismissed across visits and, after the
server save, across devices. Playing or finishing the video alone does
not acknowledge it.

The notice waits for a safe landing page and yields to existing
welcome/tutorial dialogs, paywalls, chat handoffs, and active
interaction. The older Agents intro is suppressed for the migration
cohort; Marketplace and Build intros remain available. The Build intro’s
Otto action preserves explicit new-chat intent.

This branch was created directly from current `origin/master`; the PR
contains only the tutorial change and its media, with no commits from
`dev`.

### Demo

[Download the 27-second HD workflow tutorial (MP4, 14.9
MB)](https://raw.githubusercontent.com/Significant-Gravitas/AutoGPT/22d4e34a3d9c109f07bc623ef69adb625f4f94ab/autogpt_platform/frontend/public/videos/workflows-moved.mp4)

![The migration notice in the real
application](https://raw.githubusercontent.com/Significant-Gravitas/AutoGPT/6ea0ef043fb69fc2d94218284deb52aeafd42303/assets/workflows-moved-notice.webp)

Recorded from the real local application using a synthetic demo account.
The in-product video is 1920×1080 at 60 fps, with zooms, framing, and
captions added to real footage; one loading pause is shortened. Playback
is optional, silent, and never autoplays.

### Changes 🏗️

- Responsive, keyboard-accessible migration modal with written
directions, video playback/replay, and a video-error fallback.
- Locally optimized WebP poster and demo screenshot: 37% smaller
combined (125,292 → 78,842 bytes), with the original dimensions and
visually checked text clarity. Media URLs use the final bundled paths.
- Direct navigation to Otto’s Workflows tab with URL-backed tab
selection.
- Account-scoped dismissal through the existing authenticated onboarding
API; no database migration or credit reward.
- Regression coverage for cutoff boundaries, dismissal, account
switching, media controls, route intent, and competing tutorials
arriving in either order.
- Exact-file Git ignore and large-file-hook exceptions for the bundled
tutorial MP4; other assets retain the existing size limit.

### Agents and large language models used

Codex with GPT-6.

### Checklist 📋

#### For code changes:

- [x] I have clearly listed my changes in the PR description.
- [x] I have made a test plan.
- [x] Frontend dependencies installed from master’s frozen lockfile; API
client regenerated from the updated local schema.
- [x] `pnpm format` → `pnpm lint` → `pnpm types` passed on the
master-based checkout.
- [x] 247 focused tests passed: 149 feature/coexistence tests and 98
existing welcome tests. Format, lint, types, all 247 tests, and
applicable staged-file safety checks were rerun after the image and
review cleanups.
- [ ] Full `pnpm test:unit` suite: stopped at the existing Windows
currency-locale assertion in `home/__tests__/main.test.tsx:305`
(`US$12.50` versus `$12.50`), after 1,805 passing tests and 11 skips. No
unrelated test fix is included.
- [x] Staged-file safety checks passed, including Detect-secrets,
Gitleaks, Ruff, Black, isort, hook configuration, asset-size exception,
and whitespace checks.
- [x] Backend contract checks: new step acceptance, rejected
invalid/rewarded steps, authentication and owner scoping, idempotent
persistence, and no credit reward. Persistence and credit effects were
mocked; this is not a full backend test-suite run.
- [ ] Whole-backend Pyright and full API schema re-export: not run
locally because a master backend Poetry environment was unavailable;
left to CI.
- [x] Real browser checks of modal layout, video playback/replay,
dismissal, and navigation to the existing workflows during feature
development; the master-based app was also checked for saved dismissal
and the Team → Otto → Workflows route.
- [x] Branch ancestry and PR base checked against current
`origin/master`.

#### For configuration changes:

- [x] `.env.default` is already compatible; no environment variables
added.
- [x] `docker-compose.yml` is already compatible; no infrastructure
changes.
- [x] Media tracking exceptions are listed above.

---------

Co-authored-by: GPT-6 (Codex) <[email protected]>
2026-09-25 16:59:53 +00:00
..