The /settings/notifications and /settings/ai loading tests passed on any
skeleton, including the webhook and Recipe search cards' own. They now
wait for those sections to settle and check the one skeleton left sits
before them, so removing the held section's skeleton fails the test.
docs/STATES.md listed /onboarding as the Regulars step. It now lists the
Welcome (/onboarding), Regulars (/onboarding/regulars) and Notifications
(/onboarding/notifications) steps, each tested at its own path.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
docs/STATES.md lists each handoff route and the added Settings screens
with its empty, loading and error state, all built on Skeleton,
ErrorBanner and EmptyState. web/src/states.test.tsx renders the three
variants of every route against a stubbed API, asserting the copy and
pressing Retry.
Task: 322a15db-b2ad-46f4-a2ba-cb3745dd0aff
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>