Skip to content

fix(hero): replace fabricated "memory encrypted" canvas text with truth#235

Merged
operatoruplift merged 1 commit intomasterfrom
honesty/hero-animation-canvas-text
Apr 28, 2026
Merged

fix(hero): replace fabricated "memory encrypted" canvas text with truth#235
operatoruplift merged 1 commit intomasterfrom
honesty/hero-animation-canvas-text

Conversation

@operatoruplift
Copy link
Copy Markdown
Owner

Summary

  • The hero animation drew "vault sealed memory encrypted" at the end of the COMPLETE phase via `ctx.fillText`
  • The web app does not encrypt chat sessions or memory at rest (`encrypt`/`decrypt` callers absent from chat session and memory persistence)
  • Replace with "session closed receipt anchored" which describes what actually happens: session ends cleanly + the receipt is anchored into the Merkle root published on Solana

Why

Test plan

  • `pnpm check` (4/4)
  • `pnpm exec tsc --noEmit` (clean)
  • Visual: animation still completes with status text at the same position

The hero animation rendered "vault sealed memory encrypted" at the
end of the COMPLETE phase. The web app does not encrypt chat sessions
or memory at rest (encrypt/decrypt callers from secureStore are
absent), so "memory encrypted" was a marketing claim drawn straight
into the canvas pixel buffer.

Replace with "session closed receipt anchored" which describes what
actually happens at the end of an action sequence:
- session ends cleanly on sign-out / explicit close
- the action's ed25519-signed receipt is anchored into the Merkle
  root that gets published to Solana via the audit-trail Anchor
  program

This continues the honesty positioning sweep landed across the
homepage, dashboard, and blog in PRs #227-#234.

Verification:
- pnpm check (4/4: copy-check, capability-check, trust-gate,
  fabrication-rot-check)
- pnpm exec tsc --noEmit (clean)
@vercel
Copy link
Copy Markdown

vercel Bot commented Apr 28, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
website Ready Ready Preview, Comment Apr 28, 2026 11:56am

@operatoruplift operatoruplift merged commit ae477f9 into master Apr 28, 2026
4 checks passed
operatoruplift added a commit that referenced this pull request Apr 28, 2026
After the homepage + dashboard + auth + demo + blog honesty sweep
landed across PRs #233-#239, this PR institutionalizes the changes
in two places so they cannot regress silently:

scripts/fabrication-rot-check.mjs:
Add 6 anchored patterns (rules 14-20):

| Pattern | Retired in | Phrase / location |
|---|---|---|
| `vault sealed[^a-zA-Z]+memory encrypted` | #235 | HeroAnimation canvas text |
| `Encrypted on your computer` | #238 | /security page header |
| `Your agent ran locally. Zero cloud. Zero surveillance` | #238 | /demo step-6 |
| `${...} deployed locally` | #238 | /agents/builder toast |
| `AES-256-GCM Encrypted` | #239 | Security card badge |
| `change: ['"]Local, encrypted['"] | 'On your computer'` | #233 | /app dashboard tiles |

tests/e2e/consumer-copy.spec.ts:
Add 8 banned phrases to BANNED_DEV_PHRASES so the existing
consumer-copy regression spec asserts they don't appear in
rendered body text on /, /paywall, /pricing, /store, /login,
/signup. This complements the build-time grep guards with a
runtime check that catches regressions in dynamic content.

Combined regression net for retired local-machine claims:
- 14 fabrication-rot rules (was 10) -> 20 total rules
- 8 banned phrases on consumer-copy.spec.ts asserting against
  rendered body innerText across 5 routes

Verification:
- pnpm check (4/4: copy-check, capability-check, trust-gate,
  fabrication-rot-check; 20 rules across 197 files)
- pnpm exec tsc --noEmit (clean)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant