Skip to content

feat(onboarding): add mission and lifecycle support prompts - #12

Merged
markm39 merged 2 commits into
mainfrom
feat/polished-onboarding
Aug 26, 2026
Merged

feat(onboarding): add mission and lifecycle support prompts#12
markm39 merged 2 commits into
mainfrom
feat/polished-onboarding

Conversation

@markm39

@markm39 markm39 commented Aug 26, 2026

Copy link
Copy Markdown
Contributor

Summary

  • replace the first-run flow with a mission-only three-slide introduction and bespoke transparent 3D artwork
  • keep onboarding locally persisted and replayable from the single heart entry in the library header
  • add a persistent support sheet for Discord, native store ratings, GitHub stars, mission, privacy, terms, and support
  • show the Discord community invitation after three uniquely saved notes and persist join or dismissal exactly once
  • request the native store review after five uniquely saved notes, seven days of use, and one day after the community prompt, at most once per app version
  • serialize lifecycle state updates and recover interrupted community prompts on the next launch
  • constrain sheets to safe areas and support compact phones, iPads, landscape, scrolling, and maximum Dynamic Type

Verification

  • npm run test:lifecycle (7 passing policy tests)
  • npm run typecheck
  • npx expo export --platform android --output-dir /tmp/opennotes-android-export-final
  • native iOS development build succeeded and installed on an iPhone 17 Pro simulator
  • verified onboarding, header support sheet, third-note Discord prompt, dismissal persistence, interrupted-prompt recovery, native review presentation, and once-per-version review persistence
  • visually verified 375x667 compact phone, 402x874 notched phone, 834x1210 iPad portrait, iPad landscape, and maximum Dynamic Type layouts
  • git diff --check and trailing-whitespace scan passed

Review gates

  • simplify: passed. app/index.tsx is 498 lines after extracting lifecycle support logic. The 903-line note editor predates this change; this PR makes only a surgical successful-save instrumentation change there, and splitting that editor in this feature would increase regression risk.
  • security: the feature review found no authorization, injection, secret, sensitive-data, or unsafe-link issues. Community navigation uses the fixed Discord invite https://discord.gg/VWKmgMgYu.
  • dependency audit: npm audit --omit=dev --audit-level=high reports 30 pre-existing transitive Expo/toolchain advisories, including 2 critical findings. Available forced remediation upgrades Expo across a breaking SDK boundary, so this PR must remain open and must not be self-merged until that repository-wide dependency gate is resolved.

@markm39 markm39 changed the title feat(onboarding): add private mission introduction feat(onboarding): add mission and lifecycle support prompts Aug 26, 2026
@markm39
markm39 merged commit 398fcf5 into main Aug 26, 2026
1 check passed
@markm39
markm39 deleted the feat/polished-onboarding branch August 26, 2026 19:30
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