Preview HyperTwist desktop workflows on auth pages

This commit is contained in:
axiomlogicnexus 2026-06-30 00:41:53 +00:00
parent 4e5f48f0c1
commit efb3bb6a99
3 changed files with 37 additions and 1 deletions

View file

@ -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 () => {

View file

@ -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 (
<div className="card-grid top-gap">
<article className="card card--compact">
<h3>What the desktop runtime is for once you are signed in</h3>
<p>
Browser access resolves account, release, and pairing posture. The actual simulator work still happens in the desktop runtime afterward.
</p>
</article>
{desktopWorkflowTracks.slice(0, 2).map((track) => (
<article key={track.title} className="card card--compact">
<h3>{track.title}</h3>
<p>{track.description}</p>
<ul className="list top-gap">
{track.steps.map((step) => (
<li key={step}>{step}</li>
))}
</ul>
</article>
))}
</div>
)
}
function AuthBrowserDesktopRealityPanel() {
return (
<div className="top-gap">
@ -341,6 +365,7 @@ export function LoginPage() {
</div>
<AuthBrowserDesktopRealityPanel />
<AuthAccessGuide nextPath={nextPath} />
<AuthWorkflowPreview />
</AuthShell>
</>
)
@ -439,6 +464,7 @@ export function RegisterPage() {
</div>
<AuthBrowserDesktopRealityPanel />
<AuthAccessGuide nextPath={nextPath} />
<AuthWorkflowPreview />
</AuthShell>
</>
)

View file

@ -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',