SparkSpark

Changelog

What changed in Spark.

A plain-English log of product updates across the mobile app, website, API, and AI systems. Internal admin-only work is left out unless it changes the product experience.

More of the check-ins you were promised

Daily check-ins were coming up short, and the ones grounded in real news had dried up. Both are fixed.

AI

Your daily minimum is reachable again

Spark tries a bounded number of drafts each day. Ranking could spend the whole budget before the top-up pass ran, so Power accounts saw four check-ins where five were promised. The top-up pass now has attempts reserved for it.

AI

Teams, churches, and people you follow are back in the news mix

A topic only qualified for news research if it carried a pointer to the note it came from, which the extractor never wrote. A contact who is a lifelong Bills fan now qualifies on the strength of the recorded interest itself, so news check-ins are no longer almost entirely about employers.

AI

Fewer repeats, and fewer good drafts thrown away

Spark checks whether it has already raised a subject with someone recently. That check was reading the whole drafted message, so shared small talk made unrelated subjects look identical - it blocked a note about becoming a grandparent because an earlier message mentioned the same grandchild, while letting a word-for-word repeat through twice. It now compares the subject itself, and runs before writing rather than after, so a stale angle is swapped for a fresh one instead of costing you a suggestion.

AI

Power aims for seven check-ins a day

The daily target for Power moves from five to seven. It stays a target and not a quota: a contact still needs a real reason to reach out, so Spark shows fewer rather than padding the list.

Import your data back into Spark

You can now merge a previously exported archive back into your account, with a full preview before anything is written.

Mobile

Import my data

Settings then Account can now take an archive you exported earlier and merge it back in. Spark first shows you exactly what would land, and writes only after you confirm.

Privacy

A merge, never a restore

Importing only adds. Nothing already in your account is deleted or overwritten, and re-importing the same archive a second time adds nothing new.

Notifications that tell you something

Push notifications now say how much is waiting and how soon, without putting anyone's name on your lock screen.

Mobile

Worth glancing at

Instead of “Something new in Spark,” a notification now says what is actually waiting — how many suggestions are ready for today, or how far off a reminder is.

Privacy

Still nothing about your people

Notifications carry counts and timing only. Contact names, reminder text, event locations, and drafted messages stay inside Spark, where they always have.

Evidence-reviewed contact bios

Spark now keeps contact bios factual and lasting, while filtering out sensitive note details you did not approve for bio use.

AI

More useful context at a glance

Bios now focus more carefully on durable details that help you remember a person, and stay quiet when Spark does not have enough trustworthy context.

Privacy

A choice for sensitive notes

When you write a note with a sensitive lasting detail, you can choose whether Spark may consider it for that contact's bio. Choosing yes does not guarantee it will appear.

Closer relationship monitoring

Spark now watches news connected to every AI-enabled relationship each day.

AI

Every enabled relationship gets a daily look

Spark researches every eligible shared topic connected to AI-enabled contacts each day, including people who are not due for a routine check-in.

AI

Exceptional reasons can arrive early

When strongly grounded major news creates a natural reason to reach out, Spark can suggest it before the usual cadence. You still review every draft before choosing whether to send it.

Clearer subscription details

The mobile subscription screen now keeps your current plan easy to read.

Mobile

A cleaner current-plan card

The subscription screen no longer crowds the current plan with a redundant store product label, so Free, Pro, and Power remain clear at every screen size.

Contact bios that stay true

Spark now keeps contact bios focused on lasting details about the person and your relationship.

AI

Lasting context, not expired plans

Bios no longer turn recent messages, upcoming lunches, or phrases like “tomorrow” into permanent facts. They focus on supported relationship, family, work, location, and interest details that remain useful over time.

Reliability

Quiet when context is thin

Spark leaves a bio empty instead of filling it with follow-up coaching, sales language, guesses, or reminders to capture more notes.

Better check-ins and private diagnostics

Spark now searches more deliberately for timely news while keeping privacy-bounded app diagnostics that help support investigate usage and failures.

Reliability

Support can follow the path to a problem

Warnings and errors can now be connected to an ordered history of screens and named actions from the affected app session, along with app version and device context. Explicit causal links are distinguished from nearby correlated activity.

Web

Daily usage and feature health in one place

Admins can review daily active users, sessions, foreground time, feature usage, release and device breakdowns, and error trends, then narrow any result to the matching structured sessions.

Reliability

Native crashes keep their session context

When the app closes because of a native crash, Spark can connect the crash report to the activity that preceded it and process the matching release symbols for investigation.

Reliability

More reliable private diagnostics

Private diagnostics now recover more reliably after interrupted delivery and keep native crash reports tied to the session that ended, while continuing to exclude message content and screenshots.

Privacy

Diagnostics stay bounded and deletable

Diagnostics do not record message text, drafts, searches, form values, screenshots, or session replay. Deleting an account also removes its linked usage sessions and diagnostic occurrences.

Reliability

Safer live AI settings

Spark's operational AI, news, support, and sender settings now use one audited control surface. Changes validate before saving, apply globally without a redeploy, and retain history for dependable rollback.

AI

News gets the first look

On every plan, Spark targets research at people who need a check-in, explores additional credible searches when warranted, and tries contact-specific news research before falling back to personal context.

Reliability

Stronger daily quality floors

Free, Pro, and Power now target at least 1, 3, and 5 useful check-ins respectively while continuing toward the plan limit when more quality drafts exist. Spark still prefers quiet over filler.

AI

Better sources, per person

Each daily list now aims for a practical 75% news-backed mix per user, using only recent, relevant news from defensible sources and topics the person demonstrably follows. Stronger personal context can still win, and weak news is skipped.

Stricter news, safer check-ins

Spark now applies stronger source, freshness, and safety checks to news-backed outreach while preserving a useful personal check-in when optional research cannot produce a better result.

AI

Relevant news earns its place

When Spark already has safe, timely news that genuinely fits a person, it can use that before personal context. Weak or failed optional research never removes an otherwise useful personal check-in.

AI

Better relationship and timeline judgment

Check-ins now receive additional checks for relationship direction, former employers, superseded context, sensitive changes, unsupported recency, and invented conversations.

Reliability

Fewer repeated or outdated ideas

Spark avoids resurfacing the same subject through a different note or context source and leaves a slot empty when no safe, useful message is available.

AI

Stricter evidence behind news

News must resolve to a readable direct source with consistent topic, event, and date evidence. New diagnostics show where research loses coverage so broader research can be evaluated safely before rollout.

Clearer platform availability

Spark's website now points visitors only to the currently available iPhone app while Android remains in preparation.

Web

Accurate download options

Public download buttons, platform answers, and search metadata now reflect Spark's current iPhone availability. Android will return when its Play Store release is live.

Faster AI without changing the answer

Spark now uses Anthropic's prompt cache more efficiently while preserving fresh check-ins and the full Steward experience.

AI

Fresh drafts, less repeated processing

Check-ins still use the same relationship context, model, quality checks, and daily limits. Spark now avoids paying a long cache premium when a short-lived retry cache is sufficient.

Reliability

Steward keeps its complete conversation flow

Steward continues to stream responses, use tools, and preserve conversation context while reusing stable instructions for faster, less expensive follow-up turns.

Truthful check-ins and cleaner news

Spark now protects paid check-in counts with grounded retries while rejecting invented familiarity and weak news.

AI

No invented conversations or praise

Check-ins cannot imply that you recently spoke with someone or that a contact praised the recipient unless saved relationship context explicitly supports that claim.

AI

A truthful second chance

When a context-ready idea is declined, Spark makes one constrained, quality-gated drafting attempt from the same verified context before moving on.

Reliability

Weak research does not become outreach

News now needs a direct source, consistent dates, and a usable quality grade. Repeated low-yield topics cool down longer while eligible topic collection remains uncapped.

Daily reliability without lower limits

Spark now recovers interrupted notifications and news research while preserving every plan's check-in allowance.

Reliability

Notifications resume safely

Interrupted notification campaigns resume unfinished device deliveries without knowingly sending the same alert twice, and safe Today, Contacts, and onboarding destinations still open correctly.

AI

News stays complete and bounded

Spark researches the full eligible topic set with a global five-search concurrency limit. Check-ins wait for authoritative completion so unfinished research cannot be mistaken for a complete daily pass.

AI

Variety no longer beats quality

A different news angle is selected only when it is close enough in quality to the strongest check-in; paid check-in counts are unchanged.

Fresh news without an arbitrary ceiling

Spark now researches every eligible relationship topic through small, recoverable background jobs instead of stopping at a fixed daily limit.

AI

All eligible topics get a turn

News collection drains the complete eligible topic set in bounded parallel batches, while preserving confidence, relevance, freshness, cooldown, and safety filters.

Reliability

Interrupted research repairs itself

Each topic has renewable ownership, bounded retries, and minute-by-minute recovery, so a slow search or worker restart cannot duplicate the whole daily run or leave Today waiting forever.

Store updates that wait safely

Spark now keeps authenticated App Store and Google Play updates until they can be safely matched and applied.

Reliability

Early billing updates are no longer lost

When a store notification arrives before a purchase is linked to an account, Spark keeps it and retries after verification or restore instead of discarding it.

Privacy

Billing diagnostics stay aggregate-only

Support can monitor billing-processing health without exposing purchase tokens, transaction identifiers, signed store messages, or provider response details.

Specific without showing the machinery

Spark now keeps check-ins grounded in one clear detail without exposing notes, drafting instructions, or invented reasons the person came to mind.

AI

More natural, more truthful check-ins

Topics, headlines, and messages must all follow the same specific reason to reconnect. Spark filters vague milestones, internal strategy language, references to stored notes, and unsupported conversational setup before a suggestion can appear.

AI

Sharper second drafts

When a promising check-in needs correction, Spark now repairs the exact failed fields from the selected detail instead of starting over. Professional check-ins also adapt to how well you know the person and avoid sales or referral language.

AI

Clearer check-in quality diagnostics

Check-in scores now reflect whether the actual topic, headline, and message use the selected detail. Diagnostics separate first drafts from corrections and show yield by hook and relationship tier.

AI

More variety among equally strong check-ins

When several check-ins are similarly strong, Spark now favors a credible mix of news, personal context, and natural cadence while avoiding repeated news and opening phrases. Weaker ideas are never promoted just to create variety.

Safer, more reliable notifications

Spark notifications now reach all of your registered devices, keep relationship details private, and verify delayed delivery results.

Privacy

Private details stay inside Spark

Push alerts identify the kind of update—such as a reminder, event, follow-up, or Today update—without placing contact names, drafted messages, or personal relationship context in the phone notification transport.

Reliability

Independent delivery to every device

Spark now tracks each registered phone separately, safely retries devices that were not submitted during an interrupted batch, and avoids duplicate sends when a provider result is uncertain.

Reliability

Safer account switching and delivery cleanup

Registering a phone safely moves it to the account currently using it while preserving that account's other phones. Spark also checks delayed delivery receipts and removes registrations that Expo confirms are no longer valid.

Reliability

Long Steward work stays single-owner

Long-running background conversations now renew ownership while they work, preventing another worker from repeating actions while preserving live, incremental streaming.

One clear reason to reach out

Spark now gives each check-in draft one focused piece of personal context, improving useful output without relaxing quality safeguards.

AI

Focused drafts for context-rich contacts

After choosing a reason to reconnect, Spark keeps unrelated notes, news, and background details out of the drafting context. This reduces crowded or off-topic messages while preserving prior feedback and sensitive-topic boundaries.

More variety without losing the person

Spark can move past an unhelpful check-in angle while keeping other meaningful reasons to reconnect eligible.

AI

Feedback applies to the angle

When a check-in idea is not useful, Spark temporarily rests that specific personal detail or news event instead of hiding every possible check-in for that person.

AI

Specific reasons, not relationship-management jargon

Check-in headlines now say what is actually worth asking about and filter out generic prompts or internal-sounding advice about touches, momentum, and staying top of mind.

AI

News follows real interests

Spark now requires stronger evidence before a topic can drive news research, so private life details, vague concepts, and passing mentions are less likely to become awkward check-ins.

AI

Better news earns its place

News now clears progressively stronger quality checks before it can shape a draft or interrupt normal contact rotation, keeping merely usable headlines from turning into weak outreach.

Reliability

Clearer check-in diagnostics

Support can now trace low check-in counts through contact coverage, drafting attempts, daily output, and the exact quality or failure reasons that filtered candidates.

Check-ins that learn when to move on

Spark now rotates relationships more thoughtfully, treats dismissals as real feedback, and requires verifiably fresh news.

AI

Less repetition after a dismissal

Dismissed angles get a longer rest, repeated dismissals pause that subject, and the same news event stays suppressed even when another article describes it differently.

AI

One natural reason to reach out

Check-ins now stay focused on one timely subject instead of packing everything Spark knows into one message. Fresh news remains the usual first choice, while recent sent messages help rotate in an occasional business, family, hobby, or life check-in without repeating the same angle.

AI

The best check-in appears first

News-backed and personal check-ins now share one quality score based on the strength and specificity of the reason to reach out, relationship relevance, timing, novelty, and message simplicity. Great personal outreach can outrank weak news, while genuinely important news still rises to the top.

AI

Fresh news with direct provenance

News-backed check-ins now require a direct dated source, a verified event date, and a short freshness window. Spark compares multiple distinct results when available, keeps the strongest safe story, and gives more uncovered topics a chance to be researched without letting archive pages or old stories masquerade as current news.

Reliability

Hard topic boundaries stay hard

When you tell Spark a person cannot or should not discuss a subject, that exclusion now carries through future topic research, drafted messages, and contact bios.

More room to share photos

Spark now supports richer photo conversations without disrupting uploads from the current App Store version.

Reliability

Photo uploads stay compatible

New app versions can attach up to four photos in one size-safe Spark message, while existing app versions keep their original single-photo upload capacity during the rollout.

A clearer way to add people

Contacts now has one obvious add button and keeps AI-contact management visible where it belongs.

Mobile

One add-contact menu

Replaced the Contacts overflow button with a plus button that offers phone import, CSV import, manual entry, or a guided conversation with Spark. AI-contact selection now appears as a dedicated callout above the contact list instead of being mixed into the add menu.

A clearer sparks-to-fire ritual

Home's fire now moves through distinct sparks, embers, and flame stages so completing weekly relationship progress feels earned.

Mobile

A more meaningful fire progression

Refined the Home campfire so weekly progress moves from sparks to glowing red embers, then a restrained flame after halfway, with the full hand-drawn fire reserved for goal completion. Light mode now gives sparks and wisps stronger contrast, Week mode shows how many distinct relationships have been nurtured so far this year, and the artwork automatically fits the usable height on shorter phones without shrinking readable text or controls.

A fire that grows with your relationships

Spark's Home fire grows into a warm campfire as weekly relationship touches add up.

Mobile

A living fire on Home

Replaced the placeholder flame with a theme-aware campfire whose layered flames, sparks, crossed logs, and glowing coals grow with weekly progress, warm when the goal is completed, and settle into a still composition when Reduced Motion is enabled.

More thoughtful daily check-ins

Spark now favors timely, specific outreach ideas, avoids repeating the same angle, and puts the strongest check-ins first.

AI

Quality comes before filling the list

Daily check-in limits remain plan-based, while a smaller minimum scales with the number of AI-enabled contacts. Spark no longer fills unused capacity with a repeated generic message when a useful draft is unavailable.

AI

Repeated angles get breathing room

Spark suppresses the same outreach hook for seven days without hiding a genuinely new reason to contact someone.

Mobile

The best check-ins appear first

Today orders generated check-ins by their saved quality score, with specific notes, events, dates, and news favored over thinner context.

Mobile

Check-in timing is easier to control

New Free contacts start weekly and new Pro or Power contacts start monthly. You can choose a default in Preferences and change any person's frequency directly from their contact page.

Reliability

Quiet accounts stay quiet

Spark pauses AI check-ins after 30 days without an app open, while birthdays and reminders continue normally.

AI

Draft quality learns from real edits

Spark records whether a sent draft was unchanged, lightly edited, or substantially rewritten, gives a promising but flawed draft one bounded corrective attempt, and prevents ordinary notes from inventing birthday or anniversary timing.

AI

Steward files people and images more carefully

Spark catches likely duplicate contacts even when one record includes a middle or compound surname, understands explicit merge requests, verifies that stated family relationships and explicit home-anniversary dates were actually filed—even after an empty acknowledgement or an unrelated batch write—avoids unsupported conclusions from a photo's background, and accepts up to four images in one size-safe message.

Mobile

A shorter path to the real Spark

Onboarding now requires one real person before setup completes, keeps its demo optional and user-paced, and hands context capture to the same full Steward—with text, voice, and images—used throughout the app.

Mobile

The fire explains the goal

Home now uses a consistent native flame-and-embers visual without the confusing crossed sticks, plus mode-specific plain-language progress guidance, a useful zero state, and a distinct-people count for the year.

Mobile

Yearly progress counts people, too

The Year view now shows how many distinct people you have reached, alongside the fire goal.

Reliability

Helpful reminders without nagging

Spark can gently resume unfinished setup, welcome back an inactive user, or suggest adding context, with a shared seven-day cap and a preference to turn these reminders off.

Background work that finishes reliably

Spark hardened purchases, contact summaries, import follow-through, notifications, and service health checks.

Reliability

New App Store purchases unlock promptly

Spark can now activate a verified Apple-signed subscription while Apple's status service is still catching up, instead of leaving a completed purchase on the Free plan.

Reliability

Contact summaries refresh after quick edits

Debounced contact-summary jobs now use the same validated contract as manual and daily refreshes, so rapid context changes are processed instead of rejected.

Reliability

Spark resumes after contact imports

Background Steward conversations now reliably continue after an imported contact is ready, including reminder and event confirmation follow-through.

Reliability

Safer AI routing and deploy checks

Optional AI canaries are skipped when credentials are unavailable, and production health checks now distinguish a running API from one that is ready to serve database-backed requests.

First-contact onboarding that recovers

Spark made the real first-contact walkthrough resilient to slow requests and brief connection interruptions.

Reliability

First contact imports finish in the background

The onboarding contact card now uses Spark's durable import job and safely resumes after transient polling failures. Retrying a timed-out Spark message also reconnects to the accepted work instead of creating a duplicate turn.

Voice conversations that remember

Spark now keeps Voice and Text in one continuous conversation and understands its relationship-assistant role more clearly when speaking.

Reliability

Eligible beta accounts can start Voice

Voice now honors unmetered beta access while retaining each plan's daily voice allowance, instead of incorrectly reporting an empty monthly credit balance.

Mobile

Voice and Text now share history

Finalized Voice transcripts are saved in the same Spark conversation as typed messages, so switching modes or reopening a conversation preserves the thread. Raw audio and partial transcripts are not stored. Transcripts start hidden, and Android voice replies use the loudspeaker instead of the quiet earpiece route.

AI

Voice Spark knows its role and boundaries

Voice sessions now receive recent conversation history plus clear guidance about Spark's relationship data, supported actions, privacy boundaries, and reviewed-before-sending outreach. Questions about contacts now consult the data-aware Steward instead of guessing that a lookup failed.

Reliability

Honest transcript save status

Voice transcript warnings now appear only after automatic save retries fail, with a Retry action for recovering the unsaved entries.

Mobile

Spoken answers and formatted chat

Voice tool answers now wait for the next available audio turn instead of being dropped when the session is busy. Spark also renders assistant Markdown in Text and Voice and filters internal tool markup out of conversation messages.

Mobile

System theme changes repaint every list

Notifications, reminders, history, dates, relationships, imports, and other mobile lists now update their row backgrounds immediately when the device switches between light and dark appearance.

Mobile

Reliable haptics on iPhone and Android

Buttons, selections, confirmations, warnings, and the Contacts alphabet rail now use safe platform-native feedback with Android compatibility fallbacks and no accidental double vibrations.

Mobile

Visible Sign out action on Android

The side menu now keeps its Sign out action above Android's system navigation controls.

Reliability

Android devices can register for notifications

Spark's Android app now includes its Firebase Cloud Messaging configuration, allowing devices to register for push notifications and receive reminders.

Mobile

Show or hide passwords while typing

Password fields across sign-in, account creation, password reset and changes, and sensitive confirmations now have independent accessible visibility controls on iPhone and Android.

Mobile

Clean sign-out navigation

Signing out now transitions to the login screen once instead of navigating there twice.

Mobile

Controls stay clear of system UI

Onboarding, authentication, menus, overlays, sheets, and fixed actions now respect Android and iPhone safe areas, including three-button navigation and landscape cutouts. Guided onboarding highlights also align to the controls they describe.

Reliability

Onboarding imports merge the same person

Importing the same device contact during onboarding now uses Spark's canonical server-side phone and email matching, preventing national and international phone formats from creating duplicate contacts or consuming extra AI-contact slots.

Faster Android contacts

Spark made large contact lists smoother to scroll and search on Android, with a tactile alphabet rail and reliable live theme changes.

Mobile

Quicker contact browsing on Android

Large contact lists now do less off-screen rendering during normal scrolling, keep search typing responsive, and use lightweight rows during alphabet-rail scrubbing. The rail also provides Android haptic ticks and contact rows repaint correctly when the System theme changes.

Smoother goal editing

Spark made the Home goal slider track your finger smoothly on iPhone and Android.

Mobile

The Home goal slider no longer jumps

Dragging the weekly or yearly goal in the Home edit sheet now stays anchored to your finger instead of jumping as it crosses the slider thumb and filled track.

Clearer iOS license terms

Spark now consistently identifies Apple's standard license as the Terms of Use for the iOS app.

Mobile

Apple Terms of Use on iOS

The iOS upgrade and legal screens now open Apple's standard End User License Agreement directly, while Spark's service and subscription terms remain available separately.

Web

Aligned public EULA page

Spark's public EULA page now points to Apple's standard agreement and clarifies how it works alongside Spark's Terms of Service and Subscription Terms. Links between the public legal documents now open their correct web pages.

Privacy

Safer account deletion guidance

Account deletion now clearly explains which data is removed or anonymized, notes the narrow records that may be retained, and warns that App Store or Google Play subscriptions must be canceled separately to stop future billing.

Mobile launch fixes

Spark tightened Android polish, voice mode cleanup, device registration, and subscription plan changes ahead of the next store builds.

Mobile

Voice mode now stops when you leave it

Switching Spark chat back to Text or closing the Spark sheet now tears down the live voice session, including mic input, remote audio, WebRTC state, and speaker routing.

Mobile

Android launch polish

Fixed Android keyboard avoidance, haptics, device detail navigation, goal-slider dragging, subscription plan chips, contact-page spacing, and bottom safe-area behavior.

API

Cleaner voice replies and Android billing changes

Improved Steward voice-session response gating so replies do not overlap, and hardened Google Play subscription upgrades so moving from Pro to Power replaces the existing plan.

Android subscription plan changes

Spark fixed Android subscription plan changes so upgrades replace the current plan instead of creating overlapping active subscriptions.

Mobile

Android upgrades now replace the current plan

Changing from Pro to Power on Android now sends Google Play the current subscription token and replacement mode, so the old plan is replaced instead of starting a second active subscription.

API

Google Play replacement chains reconcile cleanly

The subscription backend now records Google Play linked purchase tokens and expires the superseded Pro row when a Power upgrade is verified.

Marketing page polish

Spark's public site now presents the How it works walkthrough more consistently and makes the admin dashboard easier to reach.

Web

Consistent walkthrough screenshots

The How it works page now keeps each phone screenshot frame the same size and centers the closing call-to-action copy beneath its heading.

Web

Admin link in the footer

The marketing footer now includes an admin link that routes admins to the dashboard and shows an admin login link for everyone else.

A real first-contact onboarding flow

Spark's onboarding now shows the product loop with a sample relationship, then walks new users through real app surfaces to import a first contact, add useful context, and review a real check-in.

Mobile

See Spark work before you set anything up

New users now watch a clearly labeled, tap-through sample movie of Spark's real loop - tell Spark about someone, see memory filed, then see the next-day check-in it earns - before being asked to add a single contact. Notifications, calendar, profession, and profile questions no longer block first run.

Mobile

Setup checklist on Today

A dismissible checklist at the top of Today tracks real setup progress - people added, AI contacts picked, context given, notifications, calendar, and about-you - and routes each item to the right place. It disappears on its own once everything is done.

Mobile

Try Spark on real app surfaces

After the sample movie, onboarding now guides new users through the real Home screen, real Spark sheet, real contact import card, a real contact profile, Today, and Home's fire habit view instead of switching to a separate setup surface. The first real contact flow now extracts topics, researches useful news, and prepares a real pending check-in before walking the user to Today.

Mobile

Smoother onboarding guidance

The onboarding spotlight now keeps its previous target while the next control is measured, then animates the highlighted area and tooltip into place so the real-surface walkthrough feels calmer as users move across screens and sheets.

Mobile

Clearer iPhone Contacts access

When iOS is only sharing a limited set of contacts, the import screen now explains why the list is short and offers a direct Manage iOS access action plus refresh.

Reliability

Sturdier phone contact imports

Phone contact imports now hand selected contacts to a server-side job before Spark does the heavy import work, so switching apps or a mobile request timeout is much less likely to strand a carefully chosen contact list.

Reliability

Better diagnostics for unexpected app handoffs

Spark now records privacy-safe breadcrumbs whenever the mobile app intentionally opens a browser, Settings, share sheet, Maps, Messages, Mail, subscriptions, or App Store review surface, making rare reports of unexpected iOS app switches easier to trace.

Mobile

Finish contact context later

After importing contacts, users can now leave the one-by-one context step from the top bar, keep selected contacts enabled, and return to the contact list without losing the setup they already completed.

AI

New contacts start with Spark when there is room

Contacts created manually, through imports, shared cards, calendar attendees, or Spark chat now default to Spark suggestions on while the account still has AI-contact capacity. In Spark chat, only the primary newly-created person in a turn is auto-enabled.

AI

Quick questions learn from your check-ins

Spark's daily quick questions now factor in which check-ins you actually sent or dismissed, deepening the topics that land and steering away from the ones you pass on.

AI

Grok provider trial support

AI Operations can now configure xAI/Grok as an OpenAI-compatible provider for local quality and cost trials. Daily check-in drafts can also run a small Grok canary with Sonnet fallback when parsing or quality checks fail.

AI

Lower-cost news research

Scheduled news research now uses the economy search route, focuses on contacts close to check-in eligibility, and caps each run more tightly so Spark spends less on background research without weakening user-visible drafting.

AI

Steward model benchmarks

Added a production-derived Steward benchmark runner so Spark can compare Sonnet, Grok, and future models on dense relationship filing and real chat/tool behavior before routing live traffic.

Mobile

Calmer guided tour

The full-app walkthrough no longer launches itself right after onboarding. Page-level help remains available from the help button on every major screen.

Android polish and smarter contact search

Spark shipped the latest Android launch polish, better contact search, and backend Steward reliability improvements.

Mobile

Android subscription chips and spacing

Polished Android plan cards, fixed Pro plan subscription chip alignment with an Android-specific baseline correction, contact page spacing, and edit-contact actions so the Android app lines up more closely with the iOS experience.

Mobile

Search contacts by full and preferred names

Contact search now matches full names and preferred names more reliably, making it easier to find the right person from larger contact lists.

Reliability

Large Steward messages route more safely

Improved backend routing for dense Steward requests so large relationship updates support bigger family graphs, retry compactly when the first structured plan is truncated, and no longer fall through to a generic success message when the planner cannot safely file them.

Daily AI reliability and Android subscription webhooks

Spark made daily check-ins and quick questions more reliable, and added Google Play subscription notifications so Android billing changes can update accounts without waiting for a manual sync.

AI

Daily check-ins fill the promised count

Daily generation now fills eligible AI-enabled contacts up to the user's tier budget, using stronger contextual drafts first and plain fallback check-ins only when needed.

AI

Smarter quick questions

Context requests now prioritize broad relationship gaps like how you know someone, family, work, hometown, and hobbies before asking narrow topic-specific questions.

Reliability

News research no longer blocks the whole day

If same-day news research is still running, check-ins retry later; if news research fails, Spark still generates the day from older news and saved relationship context.

Reliability

Google Play subscription updates

Added backend handling for Google Play Real-time Developer Notifications, so Android renewals, cancellations, holds, and refunds can refresh Spark subscription state after Google sends an update.

Account deletion guidance

Spark added a dedicated public account-deletion page for store listing review and users who need deletion instructions outside the app.

Privacy

Public account-deletion URL

Added dedicated account-deletion documentation that explains how to delete a Spark account in the app, how to request deletion by email, what active product data is deleted, what narrow records may be retained, and the backup retention window.

Contact setup and filtering polish

Spark added smoother contact sharing, sturdier Steward app switching, faster AI-contact filtering, and an easier way to finish AI setup later.

Mobile

Steward draft survives app switching

Kept the Steward sheet open when users briefly switch apps, so typed draft text stays in place while they reference another message or app.

API

Quieter scoped Steward filing

Hardened scoped Steward filing so a bulk contact-facts call can recover when the model includes the current contact's name instead of omitting the already-known contact id.

Mobile

Cleaner notifications inbox

Removed the internal notification type label from inbox rows so reminders and follow-ups no longer show raw enum text like REMINDER_FIRING.

Mobile

Consistent share contact sheet

Updated the Share contact chooser to use Spark's standard sheet presentation, including the shared drag handle, backdrop dismissal, safe-area spacing, and busy-state handling.

Mobile

AI contacts filter

Added an AI enabled status filter to the Contacts Sort & Filter sheet so users can quickly see who Spark is actively helping with.

Mobile

Do context setup later

Added a Do this later action to the AI-contact context step so selected contacts stay enabled without forcing users to skip every person one by one.

Sharing, check-ins, and AI reliability

Spark now supports Spark-to-Spark contact sharing, steadier daily check-ins, and fresher AI route health checks.

Reliability

Automatic AI route health checks

Added a daily backend health-check sweep for configured AI models so Steward and other AI features do not become unavailable simply because a manual model test aged out.

AI

Check-in floor fallback

Spark can top up quiet Today lists with plain cadence check-ins for eligible AI-enabled contacts when richer news or relationship hooks do not fill the daily check-in target.

Mobile

Spark-to-Spark contact sharing

Contact and About Me share actions now offer a Spark import link alongside vCard export. Receivers can preview the contact, create a new record, or merge into a suggested existing match after signup/onboarding.

Web

Shared contact link fallback

Shared contact links now have a web fallback page that helps recipients open Spark or install the app if the native app is not already handling the link.

API

Contact share invites

Added server-backed contact-share invites with hashed tokens, expiry, authenticated previews, conservative payload snapshots, and additive import/merge handling.

Contact summaries refresh faster

Spark now updates AI contact summaries shortly after relationship context changes.

AI

Near-real-time contact summaries

When durable relationship context changes, Spark schedules a debounced bio refresh so contact summaries catch up shortly after the edit without firing one AI call per change.

Android release prep

Spark now has the app identifiers, product catalog, and purchase verification path needed for Google Play release testing.

Mobile

Google Play subscriptions

Added Android subscription product and base-plan support for Pro and Power, including Google Play purchase, restore, manage-subscription, and review links.

API

Android receipt verification

Added Google Play Developer API verification for Android purchase tokens and published Google Play product/base-plan IDs through the pricing config.

Web

Android app identity

Updated Play Store links and admin pricing controls for the Android package com.sparkrm.app.

Manual deploys: guides, prompts, and public docs

Spark now has public product guides, in-app walkthroughs, and low-noise review and sharing prompts.

Mobile

Guided walkthroughs

Added a cohesive first-run guided journey that walks through Home, Spark, Today, Contacts, a contact page, and the Steward sheet with real taps and navigation. Page-level walkthroughs remain replayable from the help button.

Web

Public docs

Added expanded public guides that match the in-app walkthroughs so users can understand Spark's core surfaces in more depth, with a searchable docs layout for faster browsing.

Mobile

Review and sharing prompts

Added earned App Store review prompts and native sharing prompts after positive usage moments. Prompts are throttled and stop once the user rates, says they already reviewed, or shares Spark.

Mobile

Contact detail pages

Restored dedicated read-only contact details and important dates pages for contacts and About Me, with focused edit sheets for individual phone, email, address, and date records.

API

Durable prompt state

Added server-side state for tutorial views and growth prompts so completed prompts stay completed across devices.

AI

More reliable daily check-ins

Improved news discovery and check-in drafting so paid users are more likely to see specific, useful suggestions when Spark has enough relationship context.

AI

Paid-user About Me summaries

Added an AI-managed About Me bio for paid users, generated from explicit profile context so Spark can better ground Steward replies and outreach drafts without mixing it into writing voice.

Mobile

Walkthrough touch recovery

Hardened the in-app walkthrough overlay so interrupted tooltip tours cannot leave the app looking normal while blocking taps.

Mobile

App resume touch recovery

Hardened the Spark Steward sheet so closing it cannot leave an invisible modal layer blocking taps.

Mobile

Steward sheet close polish

Restored the Steward sheet's native modal behavior so closing it keeps the app tappable without exposing tabs, hiding the composer, or leaving extra space below the sheet.

Manual deploy: profile and contact polish

The contact and About Me surfaces moved closer to a single, consistent contact-card experience.

Mobile

Contact editing redesign

Updated contact editing with grouped iOS-style inputs, inline phone/email/address/link editing, custom labels, primary selectors, and clearer destructive actions.

Mobile

About Me overhaul

Made the user's own profile look and behave more like a contact detail page, including edit, notes, reminders, relationships, contact details, and share-contact actions.

API

User-level contact details

Added user-level phones, emails, links, addresses, important dates, notes, and relationships so Spark can remember context about the user as richly as it remembers contacts.

Mobile

Preferences cleanup

Refined notification timing, quiet hours, device details, drawer pages, and unsaved-change confirmations for editable screens.

Manual deploy: better daily suggestions

Daily check-ins became more grounded, more deliberate, and better aligned with the overnight generation schedule.

AI

News-grounded check-ins

Improved the check-in selection and drafting pipeline so fresh news can become a specific outreach hook when it is relevant enough.

Reliability

News before generation

Daily generation now waits for the relevant news research cache before drafting check-ins, reducing stale or generic suggestions.

API

No rollover check-ins

Reinforced the rule that each day gets its own suggestions. Yesterday's pending check-ins go stale instead of rolling into Today.

Manual deploy: launch hardening

A set of fixes tightened onboarding, account deletion, scheduling, notifications, and relationship display.

Mobile

Onboarding simplification

Removed the explicit timezone confirmation step and moved correction into preferences.

Mobile

Quieter document checks

Legal-document checks now happen quietly unless the user actually needs to accept updated documents.

API

Account deletion callback fix

Fixed the mobile account-deletion confirmation path so email callbacks work correctly with the user's authenticated session.

API

Background worker split

Separated background job execution from the API runtime so scheduled work can scale without slowing normal app requests.

API

Snooze wake notifications

Snoozed suggestions and quick questions now wake back up at the chosen time instead of being lost in the next-day sweep.

Manual deploy: website, copy, and news ranking

The public site, product positioning, and news-aware suggestion pipeline moved closer to launch-ready shape.

Web

Marketing copy polish

Refined public site copy, pricing language, launch pages, and the core tagline around real connections.

AI

News-ranked check-ins

Added a ranking layer that can use fresh, relevant news as a stronger reason to check in when it fits the contact.

API

Runtime AI provider imports

Hardened the AI provider loading path so production deployments use the configured runtime providers consistently.

Privacy

Legal and privacy readiness

Updated public legal and privacy support pages for App Store launch readiness.

Web 0.5.0

Spark's website and AI operations foundations improved ahead of launch, with public-facing AI quality work and internal reliability controls.

AI

Model routing controls

Improved how Spark routes AI work to the right model class, which supports better quality, cost control, and reliability for suggestions and Steward conversations.

Reliability

AI health and cost guardrails

Added stronger operational checks around AI providers, model readiness, and cost tracking so user-facing AI features can be monitored safely.

Web

Launch site refinements

Continued polishing the public site, pricing explanations, and launch copy for the App Store submission window.

Mobile 1.8.0 and API 0.7.2

The post-import setup flow, Today empty states, and Steward filing reliability all improved.

Mobile

Warm-up after import

Completed contact imports now route into warm-up so users can quickly teach Spark context about the people they just added.

Mobile

Clearer Today setup states

Improved empty and setup states on Today so new users understand what Spark needs before daily suggestions can appear.

API

Steward filing hardening

Made contact filing more reliable when Spark turns a user's notes or conversation into structured relationship memory.

Mobile 1.7.x and API 0.6-0.7

Spark's AI quality, Steward filing, and launch readiness improved across several rapid releases.

AI

Suggestion quality pass

Improved AI suggestion quality so check-ins and drafted messages are more specific, less generic, and better aligned with saved context.

API

Safer relationship filing

Prevented self-relationships and improved global filing planner behavior so Spark handles relationship facts more carefully.

Mobile

Steward sheet stability

Hardened the Steward sheet rendering path so filing results and tool-call summaries appear more reliably.

Reliability

Launch readiness checks

Added operational runbooks and verification passes around jobs, support flows, demo accounts, and App Store readiness.

Mobile 1.5-1.6, API 0.4-0.5, and Web 0.4.0

Today, subscriptions, milestone handling, marketing pages, analytics, and launch observability all moved forward.

Mobile

Today page revamp

Improved Today with day-of milestones, better suggestion bucketing, and clearer handling for event-driven and AI-driven nudges.

API

Subscription verification fix

Fixed App Store purchase verification so subscriptions relink correctly to the user who verifies the transaction.

AI

Steward speed and quality work

Improved Steward's model path, planner caching, and filing quality so conversations can produce better structured memory with less latency.

Mobile

Crash reporting and analytics

Added launch-ready mobile crash reporting and product analytics while keeping analytics manually scoped and privacy-conscious.

Web

Marketing overhaul

Refreshed the public website with stronger SEO, vertical pages, and launch-ready Spark positioning.

Mobile 1.4.x, API 0.3.x, and Web 0.3.x

Spark completed its brand transition, refined pricing, and shipped a broad voice-mode and quality pass.

Mobile

Voice mode polish

Improved the voice experience for talking to Spark, including interaction polish around recording and filing.

AI

Cost and quality overhaul

Adjusted AI behavior, routing, and limits so Spark can preserve quality while keeping launch costs sustainable.

Web

Pricing and intro offer alignment

Aligned annual pricing and first-month-free introductory offer messaging with App Store Connect.

Web

Spark brand cleanup

Finished replacing old Mauve/Kickstart public references with Spark across user-facing surfaces.

Mobile 1.3.0, API 0.2.0, and Web 0.2.0

Voice, the yearly fire goal, and the Home experience became core parts of Spark's relationship ritual.

Mobile

Steward voice mode

Added the voice path for talking to Spark so users can capture relationship context without typing.

Mobile

Yearly fire goal

Added a longer-term fire goal so weekly relationship work contributes to a visible yearly rhythm.

Mobile

Home polish

Refined the Home experience around sparks, fire progress, and the user's relationship habit.

API

Voice-ready backend

Added the server-side pieces needed to support voice sessions and route spoken context into Spark's filing system.

Mobile 1.2.0 and API 0.1.0

Relationship management foundations expanded with reminders, events, interaction logging, calendar work, and stronger Steward support.

API

Reminder and event tooling

Added AI-aware tools for creating and managing reminders and events from Steward conversations.

Mobile

Interaction logging

Improved the path for logging texts, calls, emails, in-person meetings, and other touchpoints with contacts.

Mobile

Calendar and Steward polish

Refined the calendar and Steward experiences so important dates, reminders, and filed context are easier to work with.

API

Contact deletion support

Added stronger contact deletion behavior for cases where a contact really should be removed rather than archived.

Mobile 1.1.x and API 0.0.2

Subscription management and early AI quota policy became more complete.

Mobile

Expanded subscription management

Improved the in-app subscription management path so users can understand and manage their Spark plan more clearly.

API

Unmetered Steward quota policy

Added support for unmetered Steward quota policy so beta/support users can be handled without breaking normal limits.

Reliability

iOS OTA release path

Improved the release path for publishing iOS over-the-air updates safely.

Mobile 1.0.2

Spark's mobile app received a broad performance pass.

Mobile

Render and list performance

Improved app-wide rendering and list performance so larger contact sets and repeated daily use feel smoother.