Skip to content

feat(privacy): consolidate disclosure into Privacy & data usage panel#644

Open
sarahxsanders wants to merge 10 commits into
mainfrom
feat/privacy-disclosure
Open

feat(privacy): consolidate disclosure into Privacy & data usage panel#644
sarahxsanders wants to merge 10 commits into
mainfrom
feat/privacy-disclosure

Conversation

@sarahxsanders

@sarahxsanders sarahxsanders commented Jun 11, 2026

Copy link
Copy Markdown
Collaborator

review in graphite if easier: https://app.graphite.com/github/pr/PostHog/wizard/644/feat(privacy)-consolidate-disclosure-into-Privacy-%26-data-usage-panel

replaces "more info" tab with "privacy & data usage" screen. the more info tab had some privacy stuff mixed in, but it really deserves to be a more explicit privacy page

tried to highlight the top things to care about: what info is sent to the LLM gateway, what stays on your machine, and what we collect usage data on. links to website for broader terms and privacy

demo video:

wizardprivacy.mp4

@github-actions

Copy link
Copy Markdown

🧙 Wizard CI

Run the Wizard CI and test your changes against wizard-workbench example apps by replying with a GitHub comment using one of the following commands:

Test all apps:

  • /wizard-ci all

Test all apps in a directory:

  • /wizard-ci basic-integration
  • /wizard-ci error-tracking-upload-source-maps
  • /wizard-ci misc
  • /wizard-ci revenue

Test an individual app:

  • /wizard-ci basic-integration/android
  • /wizard-ci basic-integration/angular
  • /wizard-ci basic-integration/astro
Show more apps
  • /wizard-ci basic-integration/django
  • /wizard-ci basic-integration/fastapi
  • /wizard-ci basic-integration/flask
  • /wizard-ci basic-integration/javascript-node
  • /wizard-ci basic-integration/javascript-web
  • /wizard-ci basic-integration/laravel
  • /wizard-ci basic-integration/next-js
  • /wizard-ci basic-integration/nuxt
  • /wizard-ci basic-integration/python
  • /wizard-ci basic-integration/rails
  • /wizard-ci basic-integration/react-native
  • /wizard-ci basic-integration/react-router
  • /wizard-ci basic-integration/sveltekit
  • /wizard-ci basic-integration/swift
  • /wizard-ci basic-integration/tanstack-router
  • /wizard-ci basic-integration/tanstack-start
  • /wizard-ci basic-integration/vue
  • /wizard-ci error-tracking-upload-source-maps/android
  • /wizard-ci error-tracking-upload-source-maps/flutter
  • /wizard-ci error-tracking-upload-source-maps/ios
  • /wizard-ci error-tracking-upload-source-maps/next
  • /wizard-ci error-tracking-upload-source-maps/next-no-posthog
  • /wizard-ci error-tracking-upload-source-maps/node-raw
  • /wizard-ci error-tracking-upload-source-maps/node-rollup
  • /wizard-ci error-tracking-upload-source-maps/node-rollup-typescript-plugin
  • /wizard-ci error-tracking-upload-source-maps/node-webpack
  • /wizard-ci error-tracking-upload-source-maps/nuxt-3-6
  • /wizard-ci error-tracking-upload-source-maps/nuxt-4-3
  • /wizard-ci error-tracking-upload-source-maps/react-native
  • /wizard-ci error-tracking-upload-source-maps/react-vite
  • /wizard-ci error-tracking-upload-source-maps/rust
  • /wizard-ci misc/quack-quack
  • /wizard-ci revenue/stripe

Results will be posted here when complete.

sarahxsanders commented Jun 11, 2026

Copy link
Copy Markdown
Collaborator Author

sarahxsanders and others added 2 commits June 11, 2026 13:21
- Add requiresAi flag to ProgramConfig (default true; false for doctor,
  mcp-add, mcp-remove, mcp-tutorial, source-maps upload). Sets up the AI
  opt-in gate (next stacked PR) without enforcing it yet.
- Add shared PrivacyPanel component with open-source / data-flow /
  telemetry / BYOAI / links sections, sourced from session.noTelemetry
  and session.skillId.
- Intro screen: expand subtitle to name Anthropic Claude explicitly;
  relabel "More info" → "Privacy & data usage"; replace body with
  PrivacyPanel; drop the feature list (moves to website docs).
- Auth screen: add "Privacy at a glance" summary above the spinner with
  [I] keystroke to open the full PrivacyPanel as a ModalOverlay; [P]
  paste binding still works.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Previous layout used 6 bold-section blocks with marginTop=1 between each,
totaling ~27 rows once the title bar + Back menu were rendered. Default
macOS Terminal (~24 rows) clipped the bottom half of the panel.

Compaction:
- Tagline line replaces the "Open source" section header.
- Telemetry collapsed to a single inline status line.
- "Prefer your own AI?" drops the explanatory sentence; SkillSourceInfo
  renders directly.
- Terms / Privacy / Contact lose their section header and pack onto two
  dimColor lines.
- Divider added below the content so the centered Back menu reads as a
  clear action bar rather than a floating word.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@sarahxsanders sarahxsanders force-pushed the feat/privacy-disclosure branch from b244f30 to cc113e4 Compare June 11, 2026 17:22
sarahxsanders and others added 7 commits June 11, 2026 14:48
… menu

User-visible fixes after the first round still didn't fit a default
macOS Terminal (~24 rows) and the centered Back menu disconnected from
the left-aligned panel content.

- Subtitle reverts to the original "We'll use AI…" / ".env*…" two-line
  form. The Anthropic Claude detail moves into the PrivacyPanel where
  it belongs, eliminating the three-line wonky centered wrap.
- PrivacyPanel collapses Leaves/Stays into a single paragraph. Drops
  the explicit Terms/Privacy/Contact section headers — three URLs on
  one dim line is enough for users who'd actually open them.
- IntroScreenLayout gains a menuAlign prop. PostHogIntegrationIntroScreen
  passes menuAlign='left' for the privacy view so Back sits below the
  panel content instead of viewport-center.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Keep the Terms / Privacy / Contact URLs visible (don't drop them) and
fold the open-source, data-flow, telemetry, and BYOAI lines into one
condensed paragraph. Frees ~6 rows on the panel while keeping every
top-level disclosure on screen.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Wrap the second and third paragraphs in <Box marginTop={1}> so they
render with blank lines between them instead of adjacent rows.

Mark the (now-unused) noTelemetry prop with a leading underscore to
silence the no-unused-vars lint without removing it from the API —
keeps the door open for dynamic telemetry status copy later.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Replaces the two-line SkillSourceInfo block ("Skill: <id>" / "URL:
<url>") with one line: "Skill: <url>". Saves a row and resolves the
Back-menu-overlapping-Contact-URL bug observed when total content
height exceeded the default Terminal viewport.

Drops the SkillSourceInfo import since the inline rendering uses the
useSkillEntry hook directly. SkillSourceInfo itself stays untouched
for AiOptInRequiredScreen and any other call sites.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Merges the standalone "Skill: <url>" line into the BYOAI paragraph:
"Prefer your own AI? Download the skill and run it in your own agent:
<url>". Saves a row of vertical space and reads as one continuous
thought instead of two paragraphs that have to be mentally joined.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
"Telemetry is enabled by default" reads as a vague threat. Replace
with concrete copy: what we DO collect (anonymous usage metrics),
what we DON'T (source code, prompts, training data), and the opt-out.

Also fixes a JSX whitespace-collapse bug where "passing--no-telemetry"
rendered without a space (newline between text and child <Text>
elements gets stripped by JSX).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Drop beta: true from all 13 framework configs (flask, python,
  svelte, vue, swift, android, nuxt, javascript-web, ruby, django,
  laravel, rails, javascript-node). The wizard is GA — no framework
  should be flagged beta anymore. Rendering code in AuthScreen and
  PostHogIntegrationIntroScreen stays in place; it just won't fire.
- Reword AuthScreen's privacy summary block. Header changes from
  "Privacy at a glance" → "How does the wizard use your data?".
  Bullets read in plain English: source files are read by Claude,
  .env*/secrets stay local, usage data enabled by default.
- Swap AuthScreen's [I] overlay from ModalOverlay (cyan-bordered
  card) to IntroScreenLayout so it matches the intro screen's
  "Privacy & data usage" view exactly — no border, same colored
  title bar, same left-aligned Back menu, same content spacing.
- Title for both privacy views (intro menu pick + auth [I]) reads
  "Wizard privacy & usage" instead of "PostHog Wizard 🦔". Colored
  brand bars retained for context.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@sarahxsanders sarahxsanders marked this pull request as ready for review June 11, 2026 20:51
@sarahxsanders sarahxsanders requested a review from a team June 11, 2026 20:52
PrivacyPanel.noTelemetry was carried over from an earlier version that
rendered "ENABLED" vs "DISABLED" dynamically. The current copy ("usage
data enabled by default") doesn't read it. Drop the prop from the
interface + all callers.

Add comments above the two BETA rendering paths (AuthScreen yellow
notice + PostHogIntegrationIntroScreen detection-row suffix) explaining
they're intentionally retained for the next beta framework, not bit-rot.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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