Carry surface handoffs through remaining public pages

This commit is contained in:
axiomlogicnexus 2026-06-24 22:54:52 +00:00
parent 2cbe526922
commit fbb623ea2e
7 changed files with 54 additions and 1 deletions

View file

@ -316,6 +316,29 @@ Latest public-manual clarity follow-up later on `2026-06-24`:
That follow-up stayed green under:
- `npm --prefix website test -- --run src/__tests__/public-marketing-pages.test.tsx`
- `1` test file passed
- `12` tests passed
Latest public-surface continuity follow-up later on `2026-06-24`:
- the reusable `Choose the right HyperTwist surface` guide is no longer limited
to the homepage, About, Pricing, Download, and Support routes
- the same direct browser-versus-protected-versus-desktop handoff guidance now
also appears on:
- feature atlas
- resources
- docs
- changelog
- open-source notices
- privacy
- terms
- shipping/payment
- this keeps lower-traffic but still public-facing manual and legal surfaces
from falling back to older implicit topology language
That follow-up stayed green under:
- `npm --prefix website test -- --run src/__tests__/public-marketing-pages.test.tsx`
- `1` test file passed
- `12` tests passed

File diff suppressed because one or more lines are too long

View file

@ -634,6 +634,7 @@ describe('public marketing pages', () => {
expect(screen.getByText('Feature truth without the roadmap archaeology.')).toBeTruthy()
expect(screen.getByText('How to read the product truth')).toBeTruthy()
expect(screen.getByText('Implemented now')).toBeTruthy()
expect(screen.getByText('Choose the right HyperTwist surface')).toBeTruthy()
expect(screen.getAllByText('Current surface authority map').length).toBeGreaterThan(0)
expect(screen.getAllByText('Embedded simulator browser shell').length).toBeGreaterThan(0)
expect(screen.getByText('Current shipped capability')).toBeTruthy()
@ -1025,6 +1026,7 @@ describe('public marketing pages', () => {
expect(within(packagedProofSection as HTMLElement).getByText(/MagicCube5D dedicated-family training map: passed/i)).toBeTruthy()
expect(within(packagedProofSection as HTMLElement).getByText(/Build step during latest proof: skipped and reused existing target receipt/i)).toBeTruthy()
expect(screen.getAllByText('Support topic quick routes').length).toBeGreaterThan(0)
expect(screen.getByText('Choose the right HyperTwist surface')).toBeTruthy()
expect(screen.getByText('Recovery and escalation')).toBeTruthy()
expect(screen.getByText('Operator playbooks')).toBeTruthy()
expect(screen.getByText('Simulator use today')).toBeTruthy()
@ -1103,6 +1105,7 @@ describe('public marketing pages', () => {
expect(screen.getByText('Support topic quick routes')).toBeTruthy()
expect(screen.getAllByText('Current surface authority map').length).toBeGreaterThan(0)
expect(screen.getByText('When to use browser versus desktop')).toBeTruthy()
expect(screen.getByText('Choose the right HyperTwist surface')).toBeTruthy()
expect(screen.getAllByText('Protected browser dashboard').length).toBeGreaterThan(0)
expect(screen.getAllByText('1. Start in the browser shell').length).toBeGreaterThan(0)
expect(screen.getAllByText('Optional full-browser simulator branch').length).toBeGreaterThan(0)
@ -1224,6 +1227,7 @@ describe('public marketing pages', () => {
expect(screen.getAllByText('June 24, 2026').length).toBeGreaterThan(0)
expect(screen.getByText('Signed-in operator shell now mirrors the native control roster')).toBeTruthy()
expect(screen.getByText('Native selector-recall diagnostics hardened and revalidated')).toBeTruthy()
expect(screen.getByText('Choose the right HyperTwist surface')).toBeTruthy()
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()
@ -1331,12 +1335,14 @@ describe('public marketing pages', () => {
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('Choose the right HyperTwist surface')).toBeTruthy()
expect(within(noticesView.container).getByText('Current packaged desktop proof')).toBeTruthy()
expect(within(noticesView.container).getByText('Packaged validation passed')).toBeTruthy()
const privacyView = renderWithProviders(<PrivacyPage />, ['/privacy'])
expect(within(privacyView.container).getByText('Practical privacy boundary')).toBeTruthy()
expect(within(privacyView.container).getByText('Browser identity and billing boundary')).toBeTruthy()
expect(within(privacyView.container).getByText('Choose the right HyperTwist surface')).toBeTruthy()
expect(within(privacyView.container).getByText('Browser and desktop responsibilities')).toBeTruthy()
expect(within(privacyView.container).getByText('Current surface authority map')).toBeTruthy()
expect(within(privacyView.container).getByText('Support-safe escalation boundary')).toBeTruthy()
@ -1346,6 +1352,7 @@ describe('public marketing pages', () => {
const termsView = renderWithProviders(<TermsPage />, ['/terms'])
expect(within(termsView.container).getByText('Terms in practice')).toBeTruthy()
expect(within(termsView.container).getByText('Access model')).toBeTruthy()
expect(within(termsView.container).getByText('Choose the right HyperTwist surface')).toBeTruthy()
expect(within(termsView.container).getByText('Browser and desktop responsibilities')).toBeTruthy()
expect(within(termsView.container).getByText('Current surface authority map')).toBeTruthy()
expect(within(termsView.container).getByText('Release and redistribution checklist')).toBeTruthy()
@ -1356,6 +1363,7 @@ describe('public marketing pages', () => {
expect(within(shippingPaymentView.container).getByText('Digital delivery workflow')).toBeTruthy()
expect(within(shippingPaymentView.container).getByText('Protected entitlement handoff')).toBeTruthy()
expect(within(shippingPaymentView.container).getByText('What happens after access is granted')).toBeTruthy()
expect(within(shippingPaymentView.container).getByText('Choose the right HyperTwist surface')).toBeTruthy()
expect(within(shippingPaymentView.container).getByText('Terms of access in practice')).toBeTruthy()
expect(within(shippingPaymentView.container).getByText('Distribution doctrine')).toBeTruthy()
expect(within(shippingPaymentView.container).getByText('Release and redistribution checklist')).toBeTruthy()

View file

@ -535,6 +535,8 @@ export function OpenSourceNoticesPage() {
<PublicLaunchStatus title="Notices and corresponding-source readiness" />
</Section>
<SurfaceChoiceGuideSection description="Legal pages are more useful when they still tell the operator where to go next: public for release-safe notice context, protected for account-aware release work, and desktop for the actual shipped build." />
<PublicPackagedDesktopProofSection
platform={windowsValidationPlatform}
actions={[
@ -628,6 +630,8 @@ export function PrivacyPage() {
</div>
</Section>
<SurfaceChoiceGuideSection description="Privacy posture is clearer when the next working surface is explicit too: public for policy context, protected for identity and account work, and desktop for simulator execution." />
<Section
title="Browser and desktop responsibilities"
description="Privacy language stays honest when it says plainly which surface owns public identity work and which surface owns simulator execution."
@ -717,6 +721,8 @@ export function TermsPage() {
</div>
</Section>
<SurfaceChoiceGuideSection description="Terms are stronger when they point to the right live surface as well: public for access/legal context, protected for entitled release work, and desktop for the simulator itself." />
<Section
title="Browser and desktop responsibilities"
description="Terms stay more accurate when they keep public site duties, protected dashboard duties, and native simulator duties separated."
@ -825,6 +831,8 @@ export function ShippingPaymentPage() {
</div>
</Section>
<SurfaceChoiceGuideSection description="Shipping and payment posture stays practical when the next live surface is explicit instead of implied." />
<Section
title="Browser and desktop responsibilities"
description="Shipping and payment surfaces should explain why checkout, entitlement, and release posture stay on the web while simulator execution stays native."

View file

@ -17,6 +17,7 @@ import {
import {
PublicPackagedDesktopProofSection,
Section,
SurfaceChoiceGuideSection,
usePublicReleaseManifestView,
} from './public-page-helpers'
@ -80,6 +81,8 @@ export function FeaturesPage() {
<ProductSurfaceMatrix rows={productSurfaceMatrixRows} />
</Section>
<SurfaceChoiceGuideSection description="This keeps the feature atlas actionable: use the public site for product truth, the protected dashboard for account-aware release work, and the desktop runtime for the actual simulator." />
<Section
title="Higher-dimensional families and runtime posture"
description="These are the current public-safe explanations of the serious hypercubing lanes and the runtime host each one actually uses."

View file

@ -652,6 +652,8 @@ export function ResourcesPage() {
</div>
</Section>
<SurfaceChoiceGuideSection description="The resource portal is most useful when it also tells operators where to go next: stay public for references, move protected for release access, and move native for simulator execution." />
<SupportTopicDirectorySection
title="Support topic quick routes"
description="These topic cards bridge the public resource portal into the concrete help lanes without making operators guess which surface owns the next step."
@ -856,6 +858,8 @@ export function DocsPage() {
<DeliverySurfaceResponsibilitiesGrid />
</Section>
<SurfaceChoiceGuideSection description="This keeps the public manual from stopping at architecture explanation alone: the next surface choice is explicit as well." />
<BulletCardSection
title="Simulator manual"
description="These are the current product-safe usage tracks for the native runtime itself."
@ -1137,6 +1141,8 @@ export function ChangelogPage() {
</div>
</Section>
<SurfaceChoiceGuideSection description="Release notes are easier to use when the next surface is explicit too: public for change context, protected for release follow-through, and desktop for the actual runtime under discussion." />
<Section
title="Release rollout checklist"
description="Use the public release notes as an operator tool, not just a chronology. This keeps each change tied to package proof, entitlement posture, and distribution follow-through."

View file

@ -762,6 +762,11 @@ export const resourceCollections = [
] as const
export const changelogEntries = [
{
date: 'June 24, 2026',
title: 'The remaining feature, docs, resource, changelog, and legal pages now carry the same surface handoff guidance',
details: 'The reusable public surface-choice guide is no longer limited to the headline marketing routes. Feature, docs, resources, changelog, notices, privacy, terms, and shipping/payment pages now also explain when to stay on the public website, move into the protected dashboard, or move into the native desktop runtime.',
},
{
date: 'June 24, 2026',
title: 'Key public pages now answer which HyperTwist surface to use next',