diff --git a/website/src/__tests__/public-auth-pages.test.tsx b/website/src/__tests__/public-auth-pages.test.tsx index 155d03b..c8c8ebc 100644 --- a/website/src/__tests__/public-auth-pages.test.tsx +++ b/website/src/__tests__/public-auth-pages.test.tsx @@ -212,6 +212,8 @@ describe('public auth and download pages', () => { expect(screen.getByText('Current input, XR, and settings truth')).toBeTruthy() expect(screen.getByText('Protected browser dashboard')).toBeTruthy() expect(screen.getByText('Native Unreal desktop runtime')).toBeTruthy() + expect(screen.getByText('What the desktop runtime is for once you are signed in')).toBeTruthy() + expect(screen.getByText('1. Run a classic-cube training session')).toBeTruthy() await userEvent.type(screen.getByLabelText('Email'), 'operator@hypertwist.app') await userEvent.type(screen.getByLabelText('Password'), 'password123') @@ -238,6 +240,8 @@ describe('public auth and download pages', () => { expect(screen.getByText('Why the browser is intentionally narrower')).toBeTruthy() expect(screen.getByText('Protected browser dashboard')).toBeTruthy() expect(screen.getByText('Native Unreal desktop runtime')).toBeTruthy() + expect(screen.getByText('What the desktop runtime is for once you are signed in')).toBeTruthy() + expect(screen.getByText('2. Run a recognition and correction workflow')).toBeTruthy() await userEvent.type(screen.getByLabelText('Name'), 'Operator') await userEvent.type(screen.getByLabelText('Email'), 'operator@hypertwist.app') @@ -298,6 +302,7 @@ describe('public auth and download pages', () => { expect(screen.getByText('Browser account access does not replace the simulator.')).toBeTruthy() expect(screen.getByRole('link', { name: 'Open support' }).getAttribute('href')).toBe('/support?topic=operator-access') expect(screen.getByText('Protected operator dashboard')).toBeTruthy() + expect(screen.getByText('What the desktop runtime is for once you are signed in')).toBeTruthy() }) it('shows enabled OAuth buttons and routes provider clicks through the login handler', async () => { diff --git a/website/src/pages/auth-pages.tsx b/website/src/pages/auth-pages.tsx index 380e42e..8d9d8e3 100644 --- a/website/src/pages/auth-pages.tsx +++ b/website/src/pages/auth-pages.tsx @@ -10,7 +10,7 @@ import { } from '../auth/supertokens-runtime' import { SiteMetadata } from '../components/seo/SiteMetadata' import { OperationalStatusCallout } from '../components/ui/OperationalStatusCallout' -import { browserDesktopRealityCards, deliverySurfaceCards, operatorManualTracks } from '../site-data' +import { browserDesktopRealityCards, deliverySurfaceCards, desktopWorkflowTracks, operatorManualTracks } from '../site-data' import { buildSupportPath, getDownloadPlatformLabel, normalizeDownloadPlatform } from '../site-routes' function AuthShell({ @@ -165,6 +165,30 @@ function AuthAccessGuide({ nextPath }: { nextPath: string }) { ) } +function AuthWorkflowPreview() { + return ( +
+
+

What the desktop runtime is for once you are signed in

+

+ Browser access resolves account, release, and pairing posture. The actual simulator work still happens in the desktop runtime afterward. +

+
+ {desktopWorkflowTracks.slice(0, 2).map((track) => ( +
+

{track.title}

+

{track.description}

+ +
+ ))} +
+ ) +} + function AuthBrowserDesktopRealityPanel() { return (
@@ -341,6 +365,7 @@ export function LoginPage() {
+ ) @@ -439,6 +464,7 @@ export function RegisterPage() { + ) diff --git a/website/src/site-data.ts b/website/src/site-data.ts index 1bfefcd..712821a 100644 --- a/website/src/site-data.ts +++ b/website/src/site-data.ts @@ -1143,6 +1143,11 @@ export const publicManualRouteAtlasCards = [ ] as const export const changelogEntries = [ + { + date: 'June 30, 2026', + title: 'Login and registration now preview the real desktop workflows too', + details: 'The public auth entry pages now keep a compact desktop-workflow preview beside the existing access and topology guidance, so operators can see the concrete classic-cube and recognition workflows they are signing in for before they ever cross into the protected browser shell.', + }, { date: 'June 30, 2026', title: 'Protected browser routes now teach the concrete desktop workflows too',