Align security copy assertions with existing mobile retirement guidance

PR #2368 run 36860746715 failed two obsolete Relay tier assertions after reviewed credential-safe security guidance. Verify the accepted retirement date, continuing pairings and subscriber entitlements instead of restoring retired sales copy. No runtime or documentation change.

Contract-Neutral: Test-only reconciliation with accepted security guidance; no runtime contract change.
Change-source: pulse-maintainer
This commit is contained in:
pulse-triage[bot]
2026-10-01 15:11:19 +01:00
parent 04429cb42c
commit 13c1812137
2 changed files with 15 additions and 10 deletions
@@ -145,7 +145,7 @@ describe('systemSettings store', () => {
expect(configurationDoc).toContain('PULSE_TELEMETRY');
});
it('keeps Relay security guidance aligned with the Relay tier boundary', () => {
it('keeps existing mobile pairing security guidance aligned with retirement', () => {
const securityDoc = readFileSync(path.join(repoRoot, 'SECURITY.md'), 'utf8');
const publicSecurityDoc = readFileSync(
path.join(frontendRoot, 'public', 'docs', 'SECURITY.md'),
@@ -153,10 +153,11 @@ describe('systemSettings store', () => {
);
for (const copy of [securityDoc, publicSecurityDoc]) {
expect(copy).toContain('Relay Security (Relay and Above)');
expect(copy).toContain(
'Relay functionality requires a Relay, Pro, legacy Pro+, or Cloud license',
);
expect(copy).toContain('Existing Mobile Pairings (Retirement)');
expect(copy).toContain('31 March 2027');
expect(copy).toContain('Relay is no longer sold');
expect(copy).toContain('receive Pro features at their current price');
expect(copy).toContain('Relay connects the app, not the');
expect(copy).not.toContain('Relay Security (Pro)');
expect(copy).not.toContain('Relay functionality requires a Pro or Cloud license');
}
@@ -42,7 +42,7 @@ describe('quickstart copy contract', () => {
}
});
it('keeps Relay public docs aligned with the Relay tier instead of Pro-only copy', () => {
it('keeps existing mobile security guidance aligned with retirement', () => {
const security = readRepoFile('SECURITY.md');
const publicSecurity = readRepoFile('frontend-modern/public/docs/SECURITY.md');
const screenshots = readRepoFile('docs/SCREENSHOTS.md');
@@ -53,10 +53,14 @@ describe('quickstart copy contract', () => {
expect(copy).not.toContain('relay protocol (Pro feature)');
}
expect(security).toContain('Relay Security (Relay and Above)');
expect(publicSecurity).toContain('Relay Security (Relay and Above)');
expect(security).toContain('Relay, Pro, legacy Pro+, or Cloud license');
expect(publicSecurity).toContain('Relay, Pro, legacy Pro+, or Cloud license');
for (const copy of [security, publicSecurity]) {
expect(copy).toContain('Existing Mobile Pairings (Retirement)');
expect(copy).toContain('31 March 2027');
expect(copy).toContain('Relay is no longer sold');
expect(copy).toContain('receive Pro features at their current price');
expect(copy).toContain('Relay connects the app, not the');
expect(copy).not.toContain('Relay Security (Relay and Above)');
}
});
it('keeps public AI docs aligned with model-owned Patrol and Assistant reasoning', () => {