Extend HyperTwist release guidance across legal public pages
This commit is contained in:
parent
7b6031cb5f
commit
b1764be306
6 changed files with 43 additions and 2 deletions
|
|
@ -888,6 +888,10 @@ Current audit note:
|
|||
- pricing
|
||||
- download
|
||||
- changelog
|
||||
- open-source notices
|
||||
- privacy
|
||||
- terms
|
||||
- shipping/payment
|
||||
so the public lane now says explicitly when the next honest move is
|
||||
protected desktop access, pricing/provisioning, protected browser/account
|
||||
continuity, or notices/source follow-through
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -409,7 +409,11 @@ Current consolidated milestone snapshot:
|
|||
and a same-family continuation later that day widens that same decision
|
||||
guide onto the homepage, about, and changelog routes so the broader
|
||||
operator-facing public website now carries one consistent next move across
|
||||
posture, narrative, docs, support, release, and download surfaces
|
||||
posture, narrative, docs, support, release, and download surfaces, and a
|
||||
later same-family continuity follow-up widens that same decision guide
|
||||
across the public open-source notices, privacy, terms, and
|
||||
shipping/payment routes as well so the remaining legal/distribution pages do
|
||||
not fall back to older implicit next-step wording
|
||||
- classic-cube `Phase 9A` replay recording is now closed through first-party
|
||||
runtime capture, `.json` replay persistence, local playback reconstruction,
|
||||
schema-light replay normalization across save/load/viewer import, and live
|
||||
|
|
|
|||
|
|
@ -1427,6 +1427,8 @@ describe('public marketing pages', () => {
|
|||
expect((await within(noticesView.container).findAllByRole('link', { name: 'https://hypertwist.app/open-source/source.zip' })).length).toBeGreaterThan(0)
|
||||
expect((await within(noticesView.container).findAllByRole('link', { name: 'https://github.com/hypertwist/hypertwist' })).length).toBeGreaterThan(0)
|
||||
expect(within(noticesView.container).getByText('Choose the right HyperTwist surface')).toBeTruthy()
|
||||
expect(within(noticesView.container).getByText('Choose the next release move')).toBeTruthy()
|
||||
expect(within(noticesView.container).getByText('Need notices, corresponding source, or release follow-through?')).toBeTruthy()
|
||||
expect(within(noticesView.container).getByText('Current packaged desktop proof')).toBeTruthy()
|
||||
expect(within(noticesView.container).getByText('Packaged validation passed')).toBeTruthy()
|
||||
|
||||
|
|
@ -1434,6 +1436,8 @@ describe('public marketing pages', () => {
|
|||
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('Choose the next release move')).toBeTruthy()
|
||||
expect(within(privacyView.container).getByText('Need account state, pairing, or protected browser follow-through?')).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()
|
||||
|
|
@ -1446,6 +1450,8 @@ describe('public marketing pages', () => {
|
|||
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('Choose the next release move')).toBeTruthy()
|
||||
expect(within(termsView.container).getByText('Need the protected desktop-download lane?')).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()
|
||||
|
|
@ -1459,6 +1465,8 @@ describe('public marketing pages', () => {
|
|||
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('Choose the next release move')).toBeTruthy()
|
||||
expect(within(shippingPaymentView.container).getByText('Need plan selection, billing, or operator provisioning?')).toBeTruthy()
|
||||
expect(within(shippingPaymentView.container).getByText('Release references and source availability')).toBeTruthy()
|
||||
expect(within(shippingPaymentView.container).getByRole('link', { name: 'https://notes.hypertwist.app' })).toBeTruthy()
|
||||
expect(within(shippingPaymentView.container).getByText('Terms of access in practice')).toBeTruthy()
|
||||
|
|
|
|||
|
|
@ -503,6 +503,11 @@ export function OpenSourceNoticesPage() {
|
|||
|
||||
<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." />
|
||||
|
||||
<PublicReleaseDecisionGuideSection
|
||||
releaseManifest={releaseManifest}
|
||||
description="The notices lane should also say plainly whether the next honest move is protected desktop access, pricing/provisioning, browser/account continuity, or notices/source follow-through."
|
||||
/>
|
||||
|
||||
<PublicPackagedDesktopProofSection
|
||||
platform={windowsValidationPlatform}
|
||||
actions={[
|
||||
|
|
@ -598,6 +603,11 @@ export function PrivacyPage() {
|
|||
|
||||
<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." />
|
||||
|
||||
<PublicReleaseDecisionGuideSection
|
||||
releaseManifest={releaseManifest}
|
||||
description="Privacy posture is stronger when it also says whether the next honest move is protected desktop access, pricing/provisioning, browser/account continuity, or notices/source follow-through."
|
||||
/>
|
||||
|
||||
<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."
|
||||
|
|
@ -694,6 +704,11 @@ export function TermsPage() {
|
|||
|
||||
<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." />
|
||||
|
||||
<PublicReleaseDecisionGuideSection
|
||||
releaseManifest={releaseManifest}
|
||||
description="The terms lane should also make the next honest operator move explicit: protected desktop access, pricing/provisioning, browser/account continuity, or notices/source follow-through."
|
||||
/>
|
||||
|
||||
<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."
|
||||
|
|
@ -809,6 +824,11 @@ export function ShippingPaymentPage() {
|
|||
|
||||
<SurfaceChoiceGuideSection description="Shipping and payment posture stays practical when the next live surface is explicit instead of implied." />
|
||||
|
||||
<PublicReleaseDecisionGuideSection
|
||||
releaseManifest={releaseManifest}
|
||||
description="Shipping and payment posture is clearer when it also says whether the next honest move is protected desktop access, pricing/provisioning, browser/account continuity, or notices/source follow-through."
|
||||
/>
|
||||
|
||||
<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."
|
||||
|
|
|
|||
|
|
@ -824,6 +824,11 @@ export const resourceCollections = [
|
|||
] as const
|
||||
|
||||
export const changelogEntries = [
|
||||
{
|
||||
date: 'June 27, 2026',
|
||||
title: 'The remaining legal public routes now carry the same release-decision guide too',
|
||||
details: 'Open-source notices, privacy, terms, and shipping/payment no longer stop at the lighter surface-choice handoff. They now also expose the same explicit next release move guidance as the rest of the operator-facing public site: protected desktop access, pricing/provisioning, protected browser/account continuity, or notices/source follow-through.',
|
||||
},
|
||||
{
|
||||
date: 'June 25, 2026',
|
||||
title: 'Public pages now carry one shared release-reference bundle end to end',
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue