Mirror packaged proof across release-facing pages

This commit is contained in:
axiomlogicnexus 2026-06-24 12:33:26 +00:00
parent 3776688597
commit 1dbb9562cb
3 changed files with 152 additions and 8 deletions

View file

@ -1036,7 +1036,44 @@ describe('public marketing pages', () => {
role: null,
accessStatus: null,
},
platforms: [],
platforms: [
{
platform_key: 'windows',
platform: 'Windows',
subtitle: 'Primary shipping lane',
details: 'Current packaged validation is strongest on the Windows Unreal lane.',
configured: true,
channel: 'candidate',
version: '1.0.0',
build_id: 'win64-1000',
published_at: '2026-06-22T00:00:00.000Z',
file_name: 'HyperTwist-Windows.zip',
file_size_bytes: 1048576,
checksum_sha256: 'abc123',
download_url: null,
download_available: false,
validation_summary: {
lane: 'Windows Unreal packaged validation',
result: 'passed',
generated_at: '2026-06-22T01:43:08.7625247Z',
configuration: 'Development',
skip_build: true,
smoke_map_count: 2,
smoke_maps: [
{
map_url: '/Game/HyperTwistTraining/Maps/L_HyperTwist_Magic120CellTraining',
label: 'Magic120Cell dedicated-family training map',
result: 'passed',
},
{
map_url: '/Game/HyperTwistTraining/Maps/L_HyperTwist_MagicCube5DTraining',
label: 'MagicCube5D dedicated-family training map',
result: 'passed',
},
],
},
},
],
},
})
@ -1049,6 +1086,8 @@ describe('public marketing pages', () => {
expect(screen.getByText('Release rollout checklist')).toBeTruthy()
expect(screen.getByText('Read the actual lane that changed')).toBeTruthy()
expect(screen.getByText(/Pair the release note with the current packaged-validation summary/i)).toBeTruthy()
expect(screen.getByText('Current packaged desktop proof')).toBeTruthy()
expect(screen.getByText('Packaged validation passed')).toBeTruthy()
expect(await screen.findByRole('link', { name: /open release feed/i })).toBeTruthy()
expect(document.title).toBe('HyperTwist release notes | HyperTwist')
expect(document.head.querySelector('meta[property=\"og:url\"]')?.getAttribute('content')).toBe('https://hypertwist.app/changelog')
@ -1107,13 +1146,52 @@ describe('public marketing pages', () => {
role: null,
accessStatus: null,
},
platforms: [],
platforms: [
{
platform_key: 'windows',
platform: 'Windows',
subtitle: 'Primary shipping lane',
details: 'Current packaged validation is strongest on the Windows Unreal lane.',
configured: true,
channel: 'candidate',
version: '1.0.0',
build_id: 'win64-1000',
published_at: '2026-06-22T00:00:00.000Z',
file_name: 'HyperTwist-Windows.zip',
file_size_bytes: 1048576,
checksum_sha256: 'abc123',
download_url: null,
download_available: false,
validation_summary: {
lane: 'Windows Unreal packaged validation',
result: 'passed',
generated_at: '2026-06-22T01:43:08.7625247Z',
configuration: 'Development',
skip_build: true,
smoke_map_count: 2,
smoke_maps: [
{
map_url: '/Game/HyperTwistTraining/Maps/L_HyperTwist_Magic120CellTraining',
label: 'Magic120Cell dedicated-family training map',
result: 'passed',
},
{
map_url: '/Game/HyperTwistTraining/Maps/L_HyperTwist_MagicCube5DTraining',
label: 'MagicCube5D dedicated-family training map',
result: 'passed',
},
],
},
},
],
},
})
renderWithProviders(<OpenSourceNoticesPage />, ['/open-source-notices'])
expect(screen.getByText('Distribution doctrine')).toBeTruthy()
expect(screen.getByText('Public pages are distribution surfaces')).toBeTruthy()
const noticesView = renderWithProviders(<OpenSourceNoticesPage />, ['/open-source-notices'])
expect(within(noticesView.container).getByText('Distribution doctrine')).toBeTruthy()
expect(within(noticesView.container).getByText('Public pages are distribution surfaces')).toBeTruthy()
expect(within(noticesView.container).getByText('Current packaged desktop proof')).toBeTruthy()
expect(within(noticesView.container).getByText('Packaged validation passed')).toBeTruthy()
renderWithProviders(<PrivacyPage />, ['/privacy'])
expect(screen.getByText('Practical privacy boundary')).toBeTruthy()
@ -1123,8 +1201,10 @@ describe('public marketing pages', () => {
expect(screen.getByText('Terms in practice')).toBeTruthy()
expect(screen.getByText('Access model')).toBeTruthy()
renderWithProviders(<ShippingPaymentPage />, ['/shipping-payment'])
expect(screen.getByText('Digital delivery workflow')).toBeTruthy()
expect(screen.getByText('Protected entitlement handoff')).toBeTruthy()
const shippingPaymentView = renderWithProviders(<ShippingPaymentPage />, ['/shipping-payment'])
expect(within(shippingPaymentView.container).getByText('Digital delivery workflow')).toBeTruthy()
expect(within(shippingPaymentView.container).getByText('Protected entitlement handoff')).toBeTruthy()
expect(within(shippingPaymentView.container).getByText('Current packaged desktop proof')).toBeTruthy()
expect(within(shippingPaymentView.container).getByText('Packaged validation passed')).toBeTruthy()
})
})

View file

@ -338,6 +338,10 @@ export function OpenSourceNoticesPage() {
() => resolveReleaseManifestView(releaseManifestQuery.data?.manifest, buildPublicReleaseManifestFallback()),
[releaseManifestQuery.data?.manifest],
)
const windowsValidationPlatform = useMemo(
() => releaseManifest.platforms.find((platform) => platform.platform_key === 'windows' && platform.validation_summary) ?? null,
[releaseManifest],
)
return (
<>
@ -399,6 +403,20 @@ export function OpenSourceNoticesPage() {
<PublicLaunchStatus title="Notices and corresponding-source readiness" />
</Section>
{windowsValidationPlatform ? (
<Section title="Current packaged desktop proof">
<ReleaseValidationSummary platform={windowsValidationPlatform} />
<div className="button-row top-gap">
<Link className="button button--ghost" to="/download">
Open download center
</Link>
<Link className="button button--ghost" to="/changelog">
Review release notes
</Link>
</div>
</Section>
) : null}
<Section
title="Distribution doctrine"
description="These public legal surfaces should explain why the website is part of the release story without pretending it has replaced the native simulator."
@ -515,6 +533,20 @@ export function TermsPage() {
}
export function ShippingPaymentPage() {
const releaseManifestQuery = useQuery({
queryKey: ['release-manifest', 'public'],
queryFn: getReleaseManifest,
retry: false,
})
const releaseManifest = useMemo(
() => resolveReleaseManifestView(releaseManifestQuery.data?.manifest, buildPublicReleaseManifestFallback()),
[releaseManifestQuery.data?.manifest],
)
const windowsValidationPlatform = useMemo(
() => releaseManifest.platforms.find((platform) => platform.platform_key === 'windows' && platform.validation_summary) ?? null,
[releaseManifest],
)
return (
<>
<SiteMetadata
@ -556,6 +588,20 @@ export function ShippingPaymentPage() {
))}
</div>
</Section>
{windowsValidationPlatform ? (
<Section title="Current packaged desktop proof">
<ReleaseValidationSummary platform={windowsValidationPlatform} />
<div className="button-row top-gap">
<Link className="button button--ghost" to="/download">
Open download center
</Link>
<Link className="button button--ghost" to="/open-source-notices">
Review notices
</Link>
</div>
</Section>
) : null}
</MarketingShell>
</>
)

View file

@ -876,6 +876,10 @@ export function ChangelogPage() {
() => resolveReleaseManifestView(releaseManifestQuery.data?.manifest, buildPublicReleaseManifestFallback()),
[releaseManifestQuery.data?.manifest],
)
const windowsValidationPlatform = useMemo(
() => releaseManifest.platforms.find((platform) => platform.platform_key === 'windows' && platform.validation_summary) ?? null,
[releaseManifest],
)
return (
<>
@ -938,6 +942,20 @@ export function ChangelogPage() {
</div>
</Section>
{windowsValidationPlatform ? (
<Section title="Current packaged desktop proof">
<ReleaseValidationSummary platform={windowsValidationPlatform} />
<div className="button-row top-gap">
<Link className="button button--ghost" to="/download">
Open download center
</Link>
<Link className="button button--ghost" to="/docs">
Open public manual
</Link>
</div>
</Section>
) : null}
{releaseManifest.release_notes_url ? (
<Section title="External release notes">
<a className="button button--ghost" href={releaseManifest.release_notes_url} target="_blank" rel="noreferrer">