Carry surface handoffs through remaining public pages
This commit is contained in:
parent
2cbe526922
commit
fbb623ea2e
7 changed files with 54 additions and 1 deletions
|
|
@ -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
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -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."
|
||||
|
|
|
|||
|
|
@ -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."
|
||||
|
|
|
|||
|
|
@ -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."
|
||||
|
|
|
|||
|
|
@ -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',
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue