Skip to changelog

Release notes · since 1.4.3

PsychPod 1.5.0

A detailed record of what changed in the website and mobile apps, what is ready to try, and what still needs testing.

Availability updated .

Where this release is available

Website
Live
The 1.5.0 website changes are available now.
iOS
TestFlight ready
Version 1.5.0, build 80, is available to the EarlyBirds testing group.
Android
Internal testing ready
Version 1.5.0, build 98, is available to Google Play internal testers.
Public mobile apps
1.4.3 remains public
The public 1.5.0 mobile rollout is being prepared.

Testing availability does not mean the public App Store or Google Play release has changed. Check-in saving has been confirmed in a user-reported phone test. Broader device coverage, History after reopening, and sound and haptic behavior remain part of testing.

Mobile design and navigation

The mobile app has a clearer layout, with a dedicated place for trends and easier access to the tools you already use.

  • A consistent screen design

    Home, Check-in, Insights, History, Profile, sign-in, onboarding and Settings use rounded tinted tiles, clearer type, consistent spacing and more readable supporting text. The final dark palette retains navy surfaces and blue accents; a warm light theme is also available.

  • Five primary tabs

    Home, Check-in, Insights, History and Profile form the main navigation. Insights holds charts, period statistics, summaries and habits, while History keeps the chronological record of your check-ins.

  • A Profile hub and clearer shortcuts

    Profile connects to editing, Settings, Friends, Messages, notifications and badges. Home has labeled Friends and Messages shortcuts, including the unread-message badge. Existing routes and deep links remain available.

  • Existing tools remain accessible

    Journals, voice notes, tracked habits, exports, multi-factor authentication, consent and account deletion remain accessible through the updated navigation.

  • Your theme choice is preserved

    Fresh installs start in dark mode. An existing explicit light preference is retained, and a late stored-theme read cannot overwrite a new choice you make in Settings.

  • Branding and calm background movement

    Home includes the atom mark, while sign-in uses transparent artwork. Gentle horizon waves and limited scroll movement are decorative and do not intercept touches or screen-reader input. Reduce Motion or unresolved motion preferences keep them still.

Readable questions and accessible controls

Layouts adapt more carefully to narrow screens, larger text and longer answer labels.

  • Answer tiles grow with their text

    The tallest answer label determines the height of the response tiles for the current question and layout. Compact choices switch between two and three columns based on width and text size, helping wrapped answers remain readable.

  • Questions scroll without losing the controls

    Question content can scroll while progress, navigation and help remain visible. Moving to another question returns to its heading and places accessibility focus there.

  • Navigation labels have room to wrap

    Tabs reserve space for the tallest label, and headers can shrink or wrap at larger text sizes. History period controls wrap and have larger touch targets.

  • Notification settings stay reachable

    The preferences screen scrolls within safe areas so enlarged text does not hide the Save action.

Check-in saving and recovery

The save flow has clearer progress, bounded waiting and a retry path that retains the original check-in context. The fix passed regression tests, and a successful check-in was reported in a physical-phone test on 2 October.

  • Visible saving, timeout and retry

    Saving explicitly shows its progress and has a 15-second deadline rather than waiting indefinitely. Unconfirmed answers and retry state remain available when you switch tabs within the open check-in flow. A late timeout does not open an alert over Profile.

  • An uncertain save is described accurately

    “Save not confirmed” distinguishes missing client confirmation from a proven failed write. The server may have stored an entry even when the app did not receive confirmation. Success feedback waits for a confirmed entry ID.

  • Retries keep the original day

    A retry retains the original recorded time, timezone and local day. Crossing midnight while retrying does not turn that reflection into a new day’s check-in or detach its journal and voice notes.

  • Fewer authentication delays during saving

    Saving uses the existing session identity without an extra remote user lookup. Native authentication and database requests use a dedicated transport with direct response handling to address a reproduced stall after a successful server response. Writes are not automatically repeated after a transport problem.

  • Results and authentication have their own deadlines

    Native authentication requests are bounded to 10 seconds, including response-body stalls. Loading a saved result has a separate 15-second deadline and retry action.

  • Private screens keep strict session boundaries

    Routine same-account refresh and resume preserve verified questions. Account changes, expiry, failed verification, sign-out and changed authentication assurance clear private access. Late responses cannot reopen an old private screen.

  • Diagnostics without reflection content

    Save diagnostics record stages, timing, status and app state, without answers, row contents, tokens, request URLs or user identifiers.

History, Insights and Profile reliability

Loading failures are separated from empty data, and older requests cannot replace newer results.

  • Errors have a retry action

    History and Insights show real loading errors instead of claiming the log is empty. Existing same-account data stays visible during a failed refresh. Main check-ins and optional attachment indexes can settle independently.

  • All-time History includes all owned entries

    All-time reads paginate beyond the previous 365-entry limit. A failed page or account transition rejects the incomplete result rather than silently presenting it as the full history.

  • Newer selections stay in control

    An obsolete period or focus request cannot overwrite the result for a newer selection.

  • Missing mood answers stay missing

    Insights no longer invents a midpoint for a missing mood answer. Valid zero-valued scores are retained where the score allows them.

  • Profile loading and saving settle clearly

    Profile reads have a 15-second deadline and cancel when the screen loses focus. Loading, errors and retries settle visibly. A successful profile update confirms without waiting for optional badge reconciliation.

Journals, voice notes and exports

Attachments follow the confirmed check-in day, and sharing stays tied to the account and request that created the export.

  • Attachments use the saved reflection’s day

    Journal and voice attachments, and the saved Analysis screen, use the confirmed check-in’s canonical day. This includes a retry that finishes after midnight.

  • Pending journal notes remain account scoped

    Journal requests have deadlines and cancellation. Separate account queues prevent one stalled request from indefinitely blocking another account’s local operation. A failed sync preserves unconfirmed pending notes for that account.

  • Voice recording has a clearer Stop path

    Stop uses the recorder’s live state. A successful stop releases temporary sound and haptic suppression; a native stop failure keeps Stop and retry available.

  • Exports cannot follow a stale account

    History sharing verifies the originating account and current screen request. Switching accounts or replacing the request prevents an obsolete export from opening.

  • PDF sharing uses the fresh output

    Only the file returned by the current print request is shared. A failed rename cannot fall back to an old PDF with a fixed filename from a previous export or account.

Support choices and community

Support is available by choice, with a broader directory and optional peer conversation kept separate from professional or emergency care.

  • Support now, or after saving

    Choosing support now opens resources before further questions or saving while retaining the unfinished check-in. Choosing support soon offers options after saving. Symptom combinations alone no longer force an interruption, and manual help stays accessible while saving.

  • An optional offer after each check-in

    Completed check-ins include a small support and community card that you can choose to use. Professional resources do not require joining a community.

  • Optional Discord conversation

    The existing PsychPod Server invitation appears as a separate peer-conversation option. Discord is a separate service, with no promise of emergency care, guaranteed replies or confidentiality. Invite links do not pass your check-in, journal or account details and suppress referrers.

  • 39 listings across 32 countries or areas

    The shared directory has expanded across all nine regional groups and includes two worldwide directories. Country filtering avoids presenting a local number as a service for a whole continent; worldwide options remain available as a fallback.

  • Clearer service details and channels

    Listings distinguish crisis support, emotional support, health advice and clinical appointments. They include eligibility, hours, languages, official links and review dates. Corrections include TELL Japan, iCALL India, HMC Qatar, SADAG South Africa and the WhatsApp channel for Singapore CareText.

  • Review status is visible and actionable

    Listings needing review pause call and SMS actions. Retired listings are omitted, and correction links identify the listing without requesting personal health information. Source checks can flag moved or unavailable pages; that does not prove a service has closed. Review dates remain historical, not a new live service audit.

Motion, sounds and haptics

Optional feedback is more consistent, with independent controls and fewer repeated cues. Device feel and delivery still need testing on the exact mobile builds.

  • Short question transitions

    Next and Back have directional vertical transitions, accessibility focus placement and cancellation when the screen blurs or closes. Reduce Motion is respected.

  • Gentle sound and haptic cues

    Prepared cues cover beginning a check-in, answers including the final answer, deliberate scroll completion and refresh, verified app entry, navigation, confirmed results, completion, badges and unread or foreground messages. Routine token refresh and duplicate renders do not replay entry tones.

  • Distinct check-in and movement feedback

    Begin and Quick Check-in use a short single pulse. Full Reflection uses a slightly longer two-pulse pattern. Answering gives a small response; deliberate list-end and refresh gestures use a brief paired pattern. Reduced Motion simplifies paired patterns, and repeated scroll events are throttled.

  • Separate controls and a preview

    Sound, Haptics and Animation have independent Settings controls, including a completion preview. Preferences belong to the account on that device or browser; failed loads and saves stay visible and retryable.

  • Feedback respects context

    Cues are bounded and deduplicated, with only the latest unread message announced during catch-up. They account for sound settings, silent mode, background state, reduced motion and voice recording or playback. Support flows avoid celebratory cues, and foreground cues avoid competing with OS alerts.

  • A bundled gentle notification tone

    A notification WAV is configured for iOS local alerts and newly created Android channels. Remote delivery selects it only for compatible binaries; older subscriptions keep defaults. Existing Android channels remain under OS and user control, including blocked channels.

  • Platform limitations remain

    Browser audio and vibration are best effort and may require a user gesture. Timing patterns do not move a phone’s motor across its body. These changes do not claim verified physical sound quality, haptic feel or silent-mode behavior.

Notifications and shared-device privacy

Preference saves, read actions and push delivery have stronger account boundaries and clearer failure states.

  • Preferences stay with the starting account

    Cached preferences and configured markers are account scoped and are not read while signed out. A save binds the session that started it, preventing an account switch from redirecting an in-flight change.

  • Failures do not look like complete saves

    Legacy fallback is limited to explicit missing-function responses after an identity recheck. Other errors remain retryable, and partial legacy saves do not claim that all preferences were saved.

  • Read and mark-all actions verify persistence

    Native and browser actions confirm owner-scoped updates and affected rows. Mark-all checks the authoritative remaining unread count so success does not reverse on the next refresh.

  • Push permission is separate from registration

    Browser push registration reports a server-registration failure and offers retry. Granting browser permission alone is not reported as enabled delivery.

  • Sign-out attempts notification cleanup

    The sign-out flow attempts bounded server disabling plus browser unsubscribe or native token removal before clearing authentication. Failures remain retryable where possible. A session already missing cannot authorize server-row cleanup, and device delivery still needs acceptance testing.

  • Catch-up and delivery respect account state

    Unread catch-up is shared across rapid remounts, has deadlines and backoff, and rejects stale or account-crossing results. The deployed delivery gate stops pushes to missing or deleting recipients and stops on profile or preference errors rather than overriding opt-outs.

Sign-in, first use and saved preferences

Sign-in routing and first-use prompts are more coordinated, and replaying onboarding preserves choices you do not change.

  • One owner for sign-in routing

    Root session verification controls navigation after email or OAuth sign-in, reducing conflicting redirects while retaining multi-factor authentication enforcement.

  • MFA screens reflect verified account state

    The challenge form appears only after confirming a verified factor is required. Pending checks show loading; failed verification offers retry or sign-out instead of implying that an unenrolled account enabled MFA.

  • Optional prompts wait for a useful moment

    Tours and notification prompts follow legal acceptance, onboarding and the first useful interaction or check-in. They do not interrupt an active reflection.

  • Shorter web onboarding

    Reminder and optional research choices move to Settings rather than being bundled into web onboarding completion. Language and completion are saved explicitly.

  • Replaying onboarding retains untouched choices

    Native replay starts at the first step with current preferences and writes only changed fields. Untouched reminder times, language, gender and research choices remain intact. Replay alone does not request notification permission or reschedule reminders.

  • Settings recovery and clearer localized copy

    An initial Settings error has retry and Profile recovery; a failed same-account refresh keeps the previous snapshot. Existing languages cover the new routes, feedback controls, support and recovery states. Deletion copy reflects the request and cancellation window rather than promising immediate erasure.

Website loading and privacy

The website shows real signed-in state more carefully and makes public content visible sooner.

  • A real homepage snapshot when signed in

    The public homepage can show your current-day check-in after authentication and MFA checks. Visitors without an account see labeled examples. Empty, error and verification-required states provide appropriate actions instead of invented scores.

  • Private data stays out of public page caching

    The snapshot loads separately with private, no-store responses. It is not embedded in static public HTML or CDN cache, and outdated or account-changing responses are suppressed.

  • Main text appears immediately

    Homepage text no longer starts invisible while animation begins. The blog heading and introduction can appear before the article catalogue finishes loading; catalogue failures remain explicit.

  • Cookie choices are available in the initial page

    Consent controls are included in server-rendered HTML. Returning visitors with current consent hide the panel before first paint. Expired consent does not enable Analytics or Speed Insights.

  • Less work before the page is useful

    Optional monitoring loads later, initializes once and retains privacy settings. Anonymous public requests avoid unnecessary session work, and public language preferences avoid unnecessary browser authentication loading.

  • Bounded protected-page verification

    Protected web authentication and MFA checks have a six-second cancelable deadline and an uncached outage response, while preserving valid refresh cookies. Profile saves and friend actions confirm without waiting for optional badge work.

Administration, database and security maintenance

Behind the interface, this release includes source hardening for exports and moderation, database efficiency changes, and safer build tooling. Individual moderation grants, audit triggers and deletion-helper permissions still need their own live verification; source checks do not establish every backend rollout.

  • Research access and export boundaries

    Research administration requires current MFA, super-admin permission, data-sharing and research consent, and no pending deletion. Exports use private participant mapping, fresh authorized snapshots and validated dates. A 20,000-row limit asks administrators to narrow filters instead of silently truncating; CSV cells are escaped against spreadsheet formula injection.

  • Authoritative newsletter and moderation actions

    Newsletter totals are separate from preview rows, and fresh exports honor active filters. Moderation uses actual resolution fields, verifies updates and supports resolving, reopening and saving bounded notes. The backend hardening source restricts writes and adds review audit metadata without copying note content into audit records.

  • Database work with preserved permissions

    The hardening source restricts deletion and purge helpers to service infrastructure. Badge checks calculate only required prerequisites, timezone work is reused, and 15 supporting indexes cover foreign keys. Authorization helper changes retain distinct public, owner, friend, moderator and administrator paths.

  • Reliable saved insight priorities

    What’s New priorities retain calculation precision in memory but are rounded and bounded for database storage, preventing out-of-range persistence failures.

  • Build-tool security fixes

    Tested URI decoding preserves Expo Router compatibility. The local Forge tooling backport adds strict signature checks, bounded PEM parsing and prototype-safe cookie storage, with recorded provenance and real Expo certificate, signing and CSR regressions. This is tooling maintenance, not a new in-app encryption feature or an official upstream patched release.

  • More focused regression coverage

    Checks cover account isolation, real-SDK request concurrency, native response transport, database behavior, browser flows, accessibility, motion and notifications. Automated results do not replace physical-device acceptance or prove the product has no vulnerabilities.

Known limits and testing

  • Unsaved check-in answers can survive tab switches while the app stays open. Durable recovery after the operating system kills the app is still a gap. Save your reflection before force-closing.
  • Native phone enrollment and SMS multi-factor authentication remain incomplete or gated. Authenticator-code MFA exists; this release does not add full native SMS send, resend or phone enrollment support.
  • A successful check-in was reported in a physical-phone test on 2 October. Further device coverage includes Profile and History after reopening, both reflection modes, and sounds and haptics with different settings.
  • PsychPod supports reflection on self-reported wellbeing. Its combined score is not a clinically validated questionnaire, diagnosis, treatment, or prediction of future behavior.

Read how the model works or find support resources. If a save stalls or an entry is missing, contact hello@psychpod.org with your platform, app version and the steps you took. Do not send private journal text or account credentials.

Your privacy choicesWe use a small number of necessary cookies (e.g. to remember your chosen language) and optional analytics cookies to understand how the site is used. You can choose what to allow. Read our Privacy Notice.