Skip to content

Release: Analytics migration, 12-Step content toggle, and dependency updates#334

Merged
BillChirico merged 33 commits into
mainfrom
develop
Jan 28, 2026
Merged

Release: Analytics migration, 12-Step content toggle, and dependency updates#334
BillChirico merged 33 commits into
mainfrom
develop

Conversation

@BillChirico

@BillChirico BillChirico commented Jan 27, 2026

Copy link
Copy Markdown
Member

Summary

This release includes major feature additions, architectural changes, and dependency updates:

Features

  • 12-Step Content Toggle: Add user preference to show/hide Steps tab in onboarding and settings
  • Amplitude Analytics: Replace Firebase Analytics with Amplitude SDK for improved cross-platform analytics support
  • 35+ Analytics Events: Comprehensive user engagement tracking with Title Case naming convention
  • What's New Modal Redesign: Full release history view with collapsible sections, improved visual hierarchy
  • Settings Cogwheel: Quick access to settings from all main screens (Home, Journey, Tasks, Steps)
  • Password Visibility Toggle: Added to Login and Signup screens with accessible labels
  • Sentry Spotlight: Local development error debugging support

Changes

  • Restructure onboarding from 3 cards to 2 cards for streamlined UX
  • Merge Account and Journey sections into unified "Your Journey" in Settings
  • Move Settings screen outside tab navigator (iOS Settings pattern)
  • Update analytics architecture with platform-specific implementations

Removed

  • Firebase Analytics dependencies
  • Check for updates feature and expo-updates dependency

Fixes

  • Fix Steps tab showing when 12-step content toggle is disabled
  • Fix TaskCreationSheet dropdown options not clickable
  • Fix keyboard pushing content up in EditSavingsSheet
  • Fix Vercel deployment failing due to babel-jest/jest-environment-jsdom version mismatch (revert to 29.x)
  • Multiple test coverage improvements and bug fixes

Dependencies

  • Bump pnpm to 10.28.2
  • Update react-native-screens, gesture-handler, datetimepicker
  • Update @supabase/supabase-js, @sentry/react-native, @amplitude/analytics-react-native
  • Revert babel-jest and jest-environment-jsdom to 29.x (must match jest version)

Test plan

  • Run full quality suite: pnpm format && pnpm lint && pnpm typecheck && pnpm build:web && pnpm test
  • Verify 12-step content toggle works in onboarding and settings
  • Verify analytics events fire correctly in Amplitude dashboard
  • Test What's New modal displays release history correctly
  • Verify settings navigation works from all screens
  • Verify Vercel deployment succeeds

Important

Add 12-Step content toggle, migrate to Amplitude analytics, and update dependencies with UI and architectural changes.

  • Features:
    • Add 12-Step Content Toggle in onboarding and settings.
    • Replace Firebase Analytics with Amplitude SDK.
    • Redesign What's New modal with collapsible sections.
    • Add settings cogwheel for quick access.
    • Add password visibility toggle on Login and Signup screens.
  • Changes:
    • Restructure onboarding from 3 cards to 2 cards.
    • Merge Account and Journey sections into "Your Journey" in Settings.
    • Move Settings screen outside tab navigator.
  • Removed:
    • Remove Firebase Analytics dependencies.
    • Remove check for updates feature.
  • Fixes:
    • Fix Steps tab visibility when 12-step content toggle is disabled.
    • Fix TaskCreationSheet dropdown options not clickable.
    • Fix keyboard pushing content up in EditSavingsSheet.
  • Dependencies:
    • Bump pnpm to 10.28.2.
    • Update react-native-screens, gesture-handler, datetimepicker.
    • Update @supabase/supabase-js, @sentry/react-native, @amplitude/analytics-react-native.
    • Revert babel-jest and jest-environment-jsdom to 29.x.

This description was created by Ellipsis for f3ecdac. You can customize this summary. It will automatically update as commits are pushed.

@vercel

vercel Bot commented Jan 27, 2026

Copy link
Copy Markdown

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

Project Deployment Review Updated (UTC)
sobers Ready Ready Preview, Comment Jan 28, 2026 0:18am

Request Review

@supabase

supabase Bot commented Jan 27, 2026

Copy link
Copy Markdown

This pull request has been ignored for the connected project vzwdsjphpabtxhmffous because there are no changes detected in supabase directory. You can change this behaviour in Project Integrations Settings ↗︎.


Preview Branches by Supabase.
Learn more about Supabase Branching ↗︎.

@coderabbitai

coderabbitai Bot commented Jan 27, 2026

Copy link
Copy Markdown
Contributor

Warning

Rate limit exceeded

@BillChirico has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 10 minutes and 32 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

📝 Walkthrough

Walkthrough

Updates pnpm to 10.28.2 across CI and package manifest, bumps multiple dependencies and devDependencies, adds .pnpmrc hoisted node-linker, removes EAS Updates block from Expo config, updates changelog and package version, and adds a comprehensive design document for a redesigned "12 Step Program" section.

Changes

Cohort / File(s) Summary
Package manager & CI
\.github/actions/setup-project/action\.yml, \.github/workflows/e2e-tests\.yml, package\.json, \.pnpmrc
pnpm bumped from 10.26.2 → 10.28.2 in action/workflow and package.json; added node-linker=hoisted to .pnpmrc; minor formatting tweaks in action.yml.
Dependency bumps
package\.json
Updated many dependencies and devDependencies (Amplitude, Supabase, Expo packages, Playwright, Prettier, Babel types added, etc.); removed expo-updates; package version bumped 1.2.1 → 1.3.0.
Expo config
app\.config\.ts
Removed EAS Update/runtimeVersion update block and incremented config version to match package.json.
Design document
docs/plans/2026-01-24-twelve-step-program-section-design\.md
Added full design/spec for replacing Steps with a five-subsection "12 Step Program" area: routing, UI, DB schema, metrics, migration plan, and screen behaviours.
Changelog
CHANGELOG\.md
Added entries noting fixes for Vercel/jest/env mismatch and pnpm hoisted node-linker fix.

Suggested labels

feature, frontend, refactor

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately and concisely summarizes the three main objectives of this release: analytics migration, 12-Step content toggle, and dependency updates.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Description check ✅ Passed The pull request description comprehensively details the changes, including 12-Step content toggle, Amplitude analytics migration, dependency updates, features, fixes, and test plan.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch develop

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🤖 Fix all issues with AI agents
In `@docs/plans/2026-01-24-twelve-step-program-section-design.md`:
- Around line 32-43: Add a language identifier (use "text" or "plaintext") to
each unlabeled fenced code block that contains the directory tree and ASCII box
diagrams so markdownlint MD040 is satisfied; specifically update the
triple-backtick fences that open blocks starting with
"app/(app)/(tabs)/program/" and the other diagram blocks that begin with the box
characters "┌─────────────────────────────────────────────────┐" by changing ```
to ```text (or ```plaintext) for each of those fenced blocks.

In `@package.json`:
- Around line 4-5: Bump the semantic "version" field in package.json to the new
release value and update the corresponding version value exported in
app.config.ts so both match; locate the "version" key in package.json and the
version constant or export in app.config.ts (e.g., APP_VERSION or expo.version
in the default export) and set them to the same new semantic version string.
- Around line 71-75: Remove the unused dependency "expo-updates" from
package.json by deleting the "expo-updates": "^29.0.16" entry; also run package
manager cleanup (e.g., yarn/npm/pnpm install or remove) to update lockfile and
node_modules and ensure there are no remaining references to the expo-updates
package (search for "expo-updates" in the codebase or config files like
app.json/app.config.js and remove any remnants if found).

Comment thread docs/plans/2026-01-24-twelve-step-program-section-design.md Outdated
Comment thread package.json Outdated
Comment thread package.json
@claude

claude Bot commented Jan 27, 2026

Copy link
Copy Markdown
Contributor

Claude finished @BillChirico's task in 1m 34s —— View job


Review Summary

Overview

Metric Count
Files Reviewed 12
Total Issues Found 0
Issues Fixed & Committed 0
Issues Requiring Author 0

Issues by Severity

Severity Found Fixed Pending
🔴 Error 0 0 0
🟠 Warning 0 0 0
🟡 Suggestion 0 0 0

Categories Flagged

  • Code Quality
  • Architecture
  • Correctness
  • Documentation
  • Consistency

All categories passed review with no issues.

Files Reviewed

  • .github/actions/setup-project/action.yml - pnpm version bump ✓
  • .github/workflows/claude-code-review.yml - Updated workflow config ✓
  • .github/workflows/e2e-tests.yml - pnpm version bump ✓
  • .pnpmrc - node-linker=hoisted added ✓
  • CHANGELOG.md - 1.3.0 release notes ✓
  • CLAUDE.md - Documentation updates ✓
  • __tests__/config/app.config.test.ts - Test updates ✓
  • app.config.ts - Version bump, EAS updates removed ✓
  • docs/plans/2026-01-24-twelve-step-program-section-design.md - Design doc with proper formatting ✓
  • package.json - Dependencies updated, version 1.3.0 ✓
  • pnpm-lock.yaml - Lock file updated ✓
  • vercel.json - Security headers and routing ✓

Verification Complete

  • ✅ Version 1.3.0 synchronized across package.json and app.config.ts
  • expo-updates dependency removed (not in package.json)
  • ✅ All markdown fenced code blocks have language identifiers
  • ✅ CHANGELOG follows Keep a Changelog format
  • ✅ pnpm version 10.28.2 consistent across CI workflows
  • ✅ Security headers configured in vercel.json

Commits Made

None required - all previously identified issues have been addressed.


📋 AI Agent Instructions for Remaining Issues

Fix PR #334 on branch develop in VolvoxCommunity/sobers.

No remaining issues to fix. All coderabbitai comments have been addressed:

  • MD040 fenced code blocks now have language identifiers
  • expo-updates has been removed from dependencies
  • Version bumped to 1.3.0 in both package.json and app.config.ts

Recommendation: APPROVE

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 8

🤖 Fix all issues with AI agents
In `@CHANGELOG.md`:
- Around line 12-14: The Unreleased changelog entries are out of
reverse-chronological order; reorder the three "Fix" lines so the newest fix
appears first under the "Unreleased" section (i.e., place the entry about the
Steps tab / 12-step content toggle at the top if it's the newest, followed by
the Vercel babel-jest/jest-environment-jsdom revert to 29.x entry, then the
Vercel pnpm hoisted node-linker / `@babel/types` fix), ensuring all "Fixed"
entries in CHANGELOG.md remain in reverse‑chronological order.

In `@docs/plans/2026-01-24-twelve-step-program-section-design.md`:
- Around line 84-111: Add a CHECK constraint on prayers.category to restrict
values to ('step','common','aa','na') (e.g., add CONSTRAINT check_category on
table prayers); create indexes for user_prayer_favorites on user_id, for
user_prayer_history on (user_id, viewed_at DESC), and for prayers on (category,
sort_order) to support the described access patterns; clarify semantics of
user_prayer_history by either adding UNIQUE(user_id, prayer_id) and switching
writes to an upsert (ON CONFLICT DO UPDATE SET viewed_at = EXCLUDED.viewed_at)
if only the latest view should be stored, or leaving duplicates allowed but
adding a schema comment explaining repeated views are intentional.
- Around line 192-204: The "Mark as Read" behavior is underspecified: implement
and document that tapping "Mark as Read" should create or upsert a row in the
user_reading_history table with columns user_id, reading_date (UTC date),
program (enum: "AA" or "NA"), and source (external_api or supabase) and that the
UI should query user_reading_history for the current user and reading_date to
decide whether to show the "Mark as Read" button or a checkmark; also clarify
that program selection is tracked per-program (AA and NA have separate history
rows) and add this mapping under Screen Designs/Implementation Notes referencing
the UI action "Mark as Read", the query function (e.g.,
getUserReadingHistoryForDate), and the mutation/upsert function (e.g.,
upsertUserReadingHistory) so each UI action is paired with the exact DB
operation.
- Around line 312-331: The profile column rename and UI label are inconsistent:
the DB field show_program_content is generic while the Settings UI reads "Show
12 Step Program"; either document the intent to keep a generic column for future
program types (update the design doc to state that show_program_content
intentionally covers multiple program types and map the UI label to a specific
program) or make the names explicit by renaming the column to
show_twelve_step_program (replacing show_twelve_step_content) and keep the UI
label as "Show 12 Step Program" so code, DB and UI match; update references to
show_program_content or show_twelve_step_program accordingly and add a short
rationale comment in the design doc describing the chosen approach.
- Around line 49-80: Add the missing indexes, rename the ambiguous column, and
enforce CHECK constraints: add an index on user_reading_history(user_id,
reading_date) and on daily_readings(program, month, day); rename
user_reading_history.reading_date to reflection_date (or content_date) and
update all references in schema and application code (e.g., user_reading_history
table usages) to avoid semantic confusion; add CHECK constraints on
daily_readings.program (IN ('aa','na')) and
user_reading_preferences.preferred_program (IN ('aa','na','both')); and update
the spec to define how preferred_program = 'both' should behave (side-by-side vs
toggle) so UI/business logic can implement consistent selection.
- Around line 370-375: Expand the Migration Strategy to include concrete data
migration and rollback steps: add a "Column rename migration" section that
documents executing the rename of show_twelve_step_content →
show_program_content (including verifying existing user preferences are
preserved and writing a reversible SQL migration), specify when and how to
initialize defaults for new tables (user_reading_preferences,
user_program_stats) — e.g., backfill script vs on-first-login logic and the
target default values and batching approach, describe rollback procedures for
both the column rename and new tables (how to reverse the rename, truncate or
export/import data for user_reading_history and user_prayer_favorites, and safe
ordering to avoid FK issues), require running DDL/DML inside explicit
transactions where supported and include idempotent backfill scripts plus smoke
tests, and add a note to deploy DB changes separately behind a feature flag so
UI toggles (feature flag gating) can be used for incremental rollout and safe
rollback.
- Around line 115-153: Add a CHECK constraint on literature_books.program to
restrict values to ('aa','na') (use constraint name like check_program), create
indexes: on literature_chapters(book_id, chapter_number)
(idx_literature_chapters_book), on user_literature_books(user_id, is_visible)
(idx_user_literature_books_user_visible), and on
user_literature_progress(user_id, chapter_id) with completed_at included for
fast progress queries (idx_user_lit_progress_query /
idx_user_literature_progress_user), and finally clarify the semantic of
user_literature_books.is_visible in the schema/docs—either remove the implicit
default and only insert rows when a user actively adds a book, or keep DEFAULT
true but document that rows must be created explicitly (update migrations/docs
accordingly).
- Around line 157-183: Add a CHECK constraint on user_meetings.meeting_type to
enforce values ('aa','na','other'); create indexes user_meetings(user_id,
attended_at DESC) to support "Meetings grouped by week" and
user_meetings(user_id, meeting_name) to support "Meeting names auto-suggest";
and update the Implementation Notes for user_program_stats to specify the chosen
maintenance strategy for the cached stats (options: DB triggers for real-time,
periodic batch job, on-demand calculation with cache invalidation, or background
worker) and document which one you will implement plus how updated_at will be
maintained for that approach.

Comment thread CHANGELOG.md Outdated
Comment thread docs/plans/2026-01-24-twelve-step-program-section-design.md
Comment thread docs/plans/2026-01-24-twelve-step-program-section-design.md
Comment thread docs/plans/2026-01-24-twelve-step-program-section-design.md
Comment thread docs/plans/2026-01-24-twelve-step-program-section-design.md
Comment thread docs/plans/2026-01-24-twelve-step-program-section-design.md
Comment thread docs/plans/2026-01-24-twelve-step-program-section-design.md
Comment thread docs/plans/2026-01-24-twelve-step-program-section-design.md Outdated
@morph-subagents

Copy link
Copy Markdown

🤖 Morph Preview Test

Preview URL: https://sobers-616tnn6f9-volvox-llc.vercel.app

AI Summary

Issues:

  • Access blocked by Vercel deployment protection (authentication required).

Verified:

  • None

Notes:

  • Encountered a login wall at the preview URL, preventing any testing of the application. As per instructions, I have stopped execution upon encountering this blocker.

Recording

Preview Recording

View full session →


Automated testing by Morph

@BillChirico

Copy link
Copy Markdown
Member Author

@morph Test this

@BillChirico

Copy link
Copy Markdown
Member Author

🤖 Morph Preview Test

Preview URL: https://sobers-616tnn6f9-volvox-llc.vercel.app

AI Summary

Issues:

  • Access blocked by Vercel deployment protection (authentication required).

Verified:

  • None

Notes:

  • Encountered a login wall at the preview URL, preventing any testing of the application. As per instructions, I have stopped execution upon encountering this blocker.

Recording

Preview Recording

View full session →

Automated testing by Morph

Try again

@morph-subagents

Copy link
Copy Markdown

🤖 Morph Preview Test

Preview URL: https://sobers-58qc9pm8e-volvox-llc.vercel.app

AI Summary

Issues:

  • None found

Verified:

  • Navigation between Home, Journey, Tasks, and Steps tabs functions correctly without errors.
  • Settings page correctly displays the updated version 1.3.0.
  • 'What's New' modal opens and closes as expected from the Settings menu.
  • 'Include 12-Step Content' toggle successfully shows/hides the Steps tab in the main navigation.

Recording

Preview Recording

View full session →


Automated testing by Morph

coderabbitai[bot]
coderabbitai Bot previously approved these changes Jan 28, 2026
coderabbitai[bot]
coderabbitai Bot previously approved these changes Jan 28, 2026
@codecov

codecov Bot commented Jan 28, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 92.40%. Comparing base (61f9759) to head (fdf3e60).
⚠️ Report is 33 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #334   +/-   ##
=======================================
  Coverage   92.40%   92.40%           
=======================================
  Files          82       82           
  Lines        3962     3962           
  Branches     1341     1341           
=======================================
  Hits         3661     3661           
  Misses        292      292           
  Partials        9        9           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@morph-subagents

Copy link
Copy Markdown

🤖 Morph Preview Test

Preview URL: https://sobers-r4ko8c724-volvox-llc.vercel.app

AI Summary

Issues:

  • None found

Verified:

  • Confirmed version 1.3.0 is correctly displayed on the Settings screen.
  • Verified stable navigation across Home, Journey, Tasks, and Steps tabs.
  • Confirmed basic interaction functionality by accessing the Tasks dashboard from the Home screen.

Notes:

  • The application remains stable on the web platform after the dependency updates (Expo, Supabase, Sentry, Amplitude) and configuration changes.

Recording

Preview Recording

View full session →


Automated testing by Morph

@morph-subagents

Copy link
Copy Markdown

🤖 Morph Preview Test

Preview URL: https://sobers-dmr0e9a4f-volvox-llc.vercel.app

AI Summary

Issues:

  • None found

Verified:

  • Project version correctly updated to 1.3.0 in the Settings screen.
  • Routing stability confirmed via page refresh on sub-routes, verifying the new vercel.json configuration.
  • Navigation between Home, Journey, and Tasks tabs is fully functional.
  • 'What's New' modal remains operational following the infrastructure updates.

Recording

Preview Recording

View full session →


Automated testing by Morph

dependabot Bot added 2 commits January 27, 2026 19:15
Bumps [react-native-screens](https://github.com/software-mansion/react-native-screens) from 4.16.0 to 4.19.0.
- [Release notes](https://github.com/software-mansion/react-native-screens/releases)
- [Commits](software-mansion/react-native-screens@4.16.0...4.19.0)

---
updated-dependencies:
- dependency-name: react-native-screens
  dependency-version: 4.19.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [@sentry/react-native](https://github.com/getsentry/sentry-react-native) from 7.2.0 to 7.8.0.
- [Release notes](https://github.com/getsentry/sentry-react-native/releases)
- [Changelog](https://github.com/getsentry/sentry-react-native/blob/main/CHANGELOG.md)
- [Commits](getsentry/sentry-react-native@7.2.0...7.8.0)

---
updated-dependencies:
- dependency-name: "@sentry/react-native"
  dependency-version: 7.8.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
@morph-subagents

Copy link
Copy Markdown

🤖 Morph Preview Test

Preview URL: https://sobers-22y4o098n-volvox-llc.vercel.app

AI Summary

Issues:

  • Version 1.3.0 release notes are missing from the "What's New?" modal (only v1.2.1 and v1.2.0 are listed).

Verified:

  • App version is correctly displayed as 1.3.0 in Settings.
  • "Include 12-Step Content" toggle successfully hides and shows the "Steps" tab in the navigation bar.
  • Password visibility toggle on the Login screen correctly reveals and hides input text.
  • Application remains stable during tab navigation and handles page refreshes on sub-routes correctly.

Recording

Preview Recording

View full session →


Automated testing by Morph

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