Mirror native control roster into operator shell

This commit is contained in:
axiomlogicnexus 2026-06-24 10:27:24 +00:00
parent 02f14da717
commit 8219409959
5 changed files with 129 additions and 1 deletions

View file

@ -406,6 +406,35 @@ Latest public-manual control-roster follow-up later on `2026-06-24`:
- `Quality: 6189`
- `All rules pass`
Latest protected control-roster continuation later on `2026-06-24`:
- the same signed-in operator shell now also mirrors the native control and
settings truth instead of leaving that detail only on the public manual
- `website/src/pages/app-pages.tsx` now projects a shared protected
control-roster panel into:
- `/app`
- `/app/browser-access`
- `/app/account`
- that continuation keeps the signed-in browser shell honest about the current
desktop runtime by exposing:
- the shipped `classic-wca-keyboard/v1` profile
- the scenic immersive preset families
- the current `Magic120Cell` and `MagicCube5D` selector/view ownership
- selector-recall continuity truth
- the explicit unfinished XR/controller-rebinding boundary
- this closes the information-quality drop that previously happened after
sign-in, where public pages had more concrete simulator-control truth than
adjacent protected routes
- focused validation for that protected continuation stayed green under:
- `npm --prefix website run type-check`
- `npm --prefix website test -- --run src/__tests__/protected-app-pages.test.tsx src/__tests__/DashboardOverviewPage.test.tsx`
- `2` test files passed
- `9` tests passed
- the broader website suite also stayed green under:
- `npm --prefix website test -- --run`
- `41` test files passed
- `168` tests passed
Latest protected-surface resilience follow-up later on `2026-06-23`:
- the shared release-manifest fallback was tightened so protected browser

View file

@ -67,6 +67,10 @@ manual:
preset families, dedicated-family selector/view ownership, bounded
selector-recall persistence truth, and the still-unfinished
XR/controller-rebinding boundary
- the protected dashboard, browser-access, and account routes now also mirror
that same native control/settings roster after sign-in, so entitled users do
not lose the current simulator-control truth when they move from the public
manual into the operator shell
- the protected app shell now also carries richer operator-facing browser
boundary, account, entitlement, and notices guidance instead of treating
those routes as thin placeholders beside the main dashboard
@ -201,6 +205,26 @@ Latest public-manual control-roster follow-up later on `2026-06-24`:
- `41` test files passed
- `168` tests passed
Latest protected control-roster follow-up later on `2026-06-24`:
- the protected operator shell now mirrors the same native control/settings
truth after sign-in instead of leaving that detail only on the public manual
- `/app`, `/app/browser-access`, and `/app/account` now each carry the shipped
desktop roster and the explicit XR/controller boundary:
- the shipped `classic-wca-keyboard/v1` profile
- the scenic immersive preset families
- current `Magic120Cell` and `MagicCube5D` selector/view ownership
- persisted selector-recall truth
- the still-unfinished XR/controller-rebinding boundary
- focused protected validation stayed green under:
- `npm --prefix website test -- --run src/__tests__/protected-app-pages.test.tsx src/__tests__/DashboardOverviewPage.test.tsx`
- `2` test files passed
- `9` tests passed
- the broader current website suite stayed green again under:
- `npm --prefix website test -- --run`
- `41` test files passed
- `168` tests passed
Current dependency-health truth from the `2026-06-23` hardening pass:
- `website/` production audit is clean

View file

@ -187,6 +187,9 @@ describe('DashboardOverviewPage', () => {
expect(screen.getByText('Public auth runtime posture: local-or-mixed')).toBeTruthy()
expect(screen.getByText('Packaged validation passed')).toBeTruthy()
expect(screen.getByText(/Magic120Cell dedicated-family training map: passed/i)).toBeTruthy()
expect(screen.getByText('Native control and settings roster')).toBeTruthy()
expect(screen.getAllByText(/classic-wca-keyboard\/v1/i).length).toBeGreaterThan(0)
expect(screen.getByText('XR groundwork exists, but the full VR lane is not finished')).toBeTruthy()
expect(screen.getByText('Desktop rollout follow-through')).toBeTruthy()
expect(screen.getByText('Current product-surface map')).toBeTruthy()
expect(screen.getByText('Embedded simulator browser shell')).toBeTruthy()

View file

@ -191,6 +191,8 @@ describe('protected app pages', () => {
renderPage(<BrowserAccessPage />, '/app/browser-access')
expect(await screen.findByText('Current browser posture')).toBeTruthy()
expect(screen.getByText('Native control and XR boundary')).toBeTruthy()
expect(screen.getByText('Shipped classic control profile')).toBeTruthy()
expect(await screen.findByText(byExactTextContent('Auth runtime mode: public', 'LI'))).toBeTruthy()
expect(await screen.findByText(byExactTextContent('Configured release targets: 1/2', 'LI'))).toBeTruthy()
expect(screen.getByText('Operator escalation map')).toBeTruthy()
@ -204,6 +206,8 @@ describe('protected app pages', () => {
renderPage(<AccountPage />, '/app/account')
expect(await screen.findByText('Session profile')).toBeTruthy()
expect(screen.getByText('Current simulator control ownership')).toBeTruthy()
expect(screen.getAllByText(/classic-wca-keyboard\/v1/i).length).toBeGreaterThan(0)
expect(screen.getByText(byExactTextContent('Billing source: session', 'LI'))).toBeTruthy()
expect(await screen.findByText(byExactTextContent('Manifest viewer access: active', 'LI'))).toBeTruthy()
expect(await screen.findByText(byExactTextContent('Windows: Primary shipping lane (Version 1.0.0, Channel candidate)', 'LI'))).toBeTruthy()

View file

@ -10,7 +10,15 @@ import { resolvePublicLaunchStatusSummary } from '../public-launch'
import { downloadTargets, launchReadiness, mplSourceUrl, openSourceRepoUrl, publicDocsUrl, releaseNotesUrl } from '../site-config'
import { buildReleaseMetadataItems, resolveReleaseManifestView, type ReleaseManifestView } from '../release-manifest'
import { buildSupportPath, getDownloadPlatformLabel, normalizeDownloadPlatform } from '../site-routes'
import { desktopDownloadSteps, desktopFirstLaunchCards, productSurfaceMatrixRows, roadmapHonestyCards, supportEscalationCards } from '../site-data'
import {
controlProfileRosterCards,
desktopDownloadSteps,
desktopFirstLaunchCards,
inputAndDevicePostureCards,
productSurfaceMatrixRows,
roadmapHonestyCards,
supportEscalationCards,
} from '../site-data'
function Panel({
title,
@ -255,6 +263,50 @@ function SupportEscalationChecklist({
)
}
function ControlRosterManualPanel({
title,
kicker,
description,
}: {
title: string
kicker: string
description: string
}) {
const xrBoundaryCard = inputAndDevicePostureCards.find(
(card) => card.title === 'XR groundwork exists, but the full VR lane is not finished',
)
return (
<Panel title={title} kicker={kicker}>
<p>{description}</p>
<div className="card-grid top-gap">
{controlProfileRosterCards.map((card) => (
<article key={card.title} className="card card--compact">
<h3>{card.title}</h3>
<p>{card.description}</p>
<ul className="list top-gap">
{card.bullets.map((bullet) => (
<li key={bullet}>{bullet}</li>
))}
</ul>
</article>
))}
{xrBoundaryCard ? (
<article className="card card--compact">
<h3>{xrBoundaryCard.title}</h3>
<p>{xrBoundaryCard.description}</p>
<ul className="list top-gap">
{xrBoundaryCard.bullets.map((bullet) => (
<li key={bullet}>{bullet}</li>
))}
</ul>
</article>
) : null}
</div>
</Panel>
)
}
export function DashboardOverviewPage() {
const {
user,
@ -456,6 +508,12 @@ export function DashboardOverviewPage() {
)}
</Panel>
<ControlRosterManualPanel
title="Native control and settings roster"
kicker="Desktop runtime truth"
description="This protected dashboard now mirrors the native operator and training inspect surfaces so signed-in users can see the shipped control profile, scenic presets, dedicated-family selectors, selector-recall continuity, and the still-bounded XR/controller line without opening the simulator first."
/>
<DesktopFirstLaunchChecklist
title="Desktop rollout follow-through"
kicker="Post-download operator manual"
@ -695,6 +753,11 @@ export function BrowserAccessPage() {
</Link>
</div>
</Panel>
<ControlRosterManualPanel
title="Native control and XR boundary"
kicker="Desktop handoff truth"
description="This protected browser route keeps the simulator handoff honest by showing what the native runtime already owns today and where the later XR/controller completion packet still begins."
/>
<Panel title="Release authority around the browser shell" kicker="Distribution context">
{releaseManifestQuery.isError ? (
<p className="form-error">
@ -805,6 +868,11 @@ export function AccountPage() {
</ul>
) : null}
</Panel>
<ControlRosterManualPanel
title="Current simulator control ownership"
kicker="Signed-in runtime posture"
description="Your account and entitlement state matter here, but the real simulator still lives on the desktop side. This roster keeps the current control/settings truth visible after sign-in instead of dropping back to a thinner account-only shell."
/>
<Panel title="Account follow-through" kicker="Next actions">
<p>
Use the dashboard when you need a desktop-link token, the download center when you need an entitled package, and the notices lane when you need distribution/legal references.