Changelog

What’s new with Murph

Seven days of features and improvements from the full Murph archive.

Group Murph learns everyone's name

Group chats get personal: Murph addresses members by their preferred names and challenges can run on steps, workouts, and heart-rate zones. Plus a batch of first-touch fixes across invites, sign-up, and device connects.

New features

Feature

Group Murph knows who's who

Joining a group now introduces you by the name you told Murph during onboarding. Murph addresses each member by their preferred name and attributes shared stats to the right person instead of re-asking.

iMessage · Sleep league

Theo takes the night: 8h 12m. Will, 6h 40m. Your bedtime is writing checks your alarm can't cash.

Feature

Challenges can run on steps, workouts, and heart-rate zones

Group challenges now support member-approved sharing for steps, activity minutes, workouts, heart-rate-zone minutes, strain, VO2 max, resting heart rate, HRV, and more. Each is a bounded daily stat you approve explicitly, never raw health data.

Shareable challenge stats

Steps and activity minutes
Workouts and heart-rate-zone minutes
Strain, VO2 max, resting HR, HRV
Only what each member approves

Improvements

Improvement

Murph says when it's still working

During a slow turn, a big lab upload or a long lookup, Murph's mid-turn progress updates now actually reach your chat instead of silently disappearing while you wait.

iMessage

just sent my full lab panel
Reading it now. 34 markers, give me a minute.
Done. Three things worth a look, starting with ferritin.

Improvement

Family-sponsored members work everywhere

Access checks now understand family sponsorship on every path, so a sponsored member's group-chat message gets answered instead of silently dropped.

Improvement

The invite dialog says what actually happened

After you create a family invite, the dialog stays open, says plainly that Murph did not text the invitee, and gives you the link to share yourself.

Improvement

Connecting a device survives a browser double-tap

If your browser redelivers the connect callback after a wearable links up, you now land back in the app showing the connected state instead of a bare connection-failed page.

Improvement

No canned welcome nine minutes into the conversation

Text Murph seconds after signing up and the queued welcome message now steps aside once real conversation has started. Silent signups still get the welcome as before.

Group chats go live in iMessage

Add Murph to an iMessage group and it just works: it sets itself up, introduces itself with a contact card, and knows when to chime in. Plus overnight memory consolidation, a cleaner family seat flow, and Garmin sync recovery.

New features

Feature

Add Murph to any iMessage group

Start an iMessage group with friends and Murph's number, send one message, and Murph comes alive in the room: it sets up the group's own private runtime, replies to that first message, and everyone in the chat can talk to it.

Inside a group Murph behaves like a participant, not a support desk. It sees who said what, knows when to reply, react, or stay quiet, and plays with shared challenge data without punching down.

iMessage · The boys

added Murph so we can settle the steps debate
Happy to referee. Everyone send me your weekly average, and nobody round up.

Feature

Murph introduces itself to the room

In a group, Murph can check who already has their own Murph and drop its contact card once: a tappable card with its number, so friends without Murph can save it and text in to get set up.

iMessage · Sunday crew

If you don't have me saved yet, that card is me. Shoot me a text and I'll get you set up.
(shared the Murph contact card)

Feature

Murph tidies its memory of you overnight

Three nights a week at 3am, Murph runs an overnight pass that consolidates the last week of conversation into durable memory, so context carries across sessions without you repeating yourself.

Overnight maintenance

Mon3:00amConsolidate the week's context
Wed3:00amFold new facts into memory
Fri3:00amPrune stale threads

Improvements

Improvement

Family seats: one button, honest counts, easy removal

Inviting someone to a full plan now adds the $7/mo seat in the same step with the cost shown up front, the seat count waits for billing to reconcile instead of showing a stale number, and empty seats can be removed.

Family seat flow

Invite & add seat · $7/mo, one step
Seat count reconciles before it renders
Remove empty seats you no longer need

Improvement

Garmin sync recovered from a broken upstream endpoint

One broken optional endpoint at our device-data partner had been failing entire hourly syncs for Garmin connections. Murph now skips just the broken resource, so sleep, activity, and daily timeseries land again.

Improvement

Supplement lookup forgives plurals and typos

Searching Advanced Antioxidant now finds Advanced Antioxidants, creatin monohydrate finds Creatine Monohydrate, and a brand query that matches nothing falls back to normal search instead of coming back empty.

Invite friends into your Murph group

Murph groups get real join links with explicit, bounded health sharing. Plus cleaner Garmin sleep-stage imports and background work that yields to your messages.

New features

Improvements

Improvement

Cleaner Garmin sleep-stage imports

Fixed the compact sleep-cycle import and stopped pulling unrelated records alongside it, so Garmin sleep stages land correctly in the vault.

Improvement

Background maintenance yields to your message

A scheduled background run no longer delays the reply to a message you just sent. Foreground conversation preempts cron work instead of queueing behind it.

Family launches, Pulse Trial gets three more days

Sponsor Murph for the people in your house — 2 to 6 private seats with their own monthly allowance. Pulse Trial now runs 10 days. Murph checks whether a wearable needs reconnect before answering about sleep or recovery, and shares its contact card on first outbound so people can save the number.

New features

Feature

Sponsor Murph for the people in your house

Buy 2 to 6 Family seats at $7 per sponsored person per month. Each sponsored member gets a private account with its own Pulse-level monthly allowance — no shared pool, and the owner can't read their chats, vault, or health data.

Invite by Telegram username, phone, or verified email. Invites consume already-paid seats; creating one never silently adds a Stripe charge.

Family covers

2–6 sponsored seats at $7/mo each
Private accounts — no shared chats or vault
Each member gets their own Pulse allowance
Invite by Telegram, phone, or email

Feature

Murph shares its contact card after the first text

After Murph's first successful direct iMessage in a Linq chat, it best-effort shares the configured contact card so the recipient can save the name and number before the thread fills up.

Only one share attempt every 48 hours per chat, and only when the outbound was real direct iMessage delivery.

iMessage

Got it — I'll text you when the pharmacy opens.
(shared my contact so you can save the number)

Feature

Pulse Trial runs 10 days, not 7

Every new Pulse Trial now lasts 10 days instead of 7. Trials already in flight keep their original length; fresh signups land on the new policy.

Pulse Trial length

7 days10 days

every new trial, no card required

Feature

Ask Murph about red light therapy

Murph now handles red light and photobiomodulation questions with real dose math: it asks for your panel's model and distance, computes session time from matched dose and irradiance data, and keeps claims inside what studies actually show.

iMessage

how long should I sit in front of my red light panel?
Which model, and how far away? Dose falls off fast with distance. I'll do the math from the panel's measured output.

Improvements

Improvement

Murph notices when a wearable needs reconnect before answering

Ask about sleep, recovery, activity, or workouts and Murph now sees which connected source needs reconnect, so it flags the gap and points you to the fix instead of treating the silence as the truth.

iMessage

Why was my sleep so short last night?
Your Garmin hasn't synced since Wednesday — let's reconnect before I read the gap as a bad night.

Improvement

Onboarding keeps talking while it saves your supplements and labs

Slow saves during onboarding — supplement regimens and lab panels — now run in a fresh background subagent so the chat keeps moving instead of stalling while writes finish.

Onboarding mid-write

Stalls on saveKeeps talking

supplements and labs save in background

Improvement

Fresh homepage — new hero, editorial asks, honest trust pillars

Rebuilt the public homepage with a new clock-in hero, an asymmetric editorial layout for the asks-Murph-handles section, and a flat trust band rewritten to match what the security FAQ actually claims.

New on the homepage

Clock-in hero with live voice-memo demo
Editorial asymmetric layout for the asks
Trust band rewritten to match the FAQ
Integrations grid with the Murph mark as hub

Garmin sleep arrives cleanly, and a smoother phone sign-in

Garmin sleep, cycles, and hypnograms now arrive as real records. The phone-number sign-in stops freezing right after the verification code lands. Plus quiet reliability fixes on Linq read receipts and scheduled-reminder wakes.

New features

Feature

Garmin sleep arrives as real records

Garmin sleep, sleep cycles, and hypnograms now land as full records instead of being dropped as skeleton completion events.

Wearables

GarminConnected
WHOOPConnected
OuraConnected

Improvements

Improvement

Phone sign-in no longer freezes after the code

Closed a state bug where the hosted phone-number sign-in could land on a blank step right after the SMS code was accepted.

Improvement

Read receipts came back for active-member Linq chats

Restored the read indicator on inbound Linq messages from active members. Closes a regression where receipts had stopped firing on the active-member webhook path.

Improvement

Scheduled Linq reminders don't fire twice on rewind

A consumed scheduled-reminder wake no longer replays when the cron loop reprocesses the same window. Closed a small path that could deliver the same reminder ping twice.

Scheduled reminder fires

Could replayOnce

on cron rewind

Don't lose real people when the classifier blinks

If the first-contact admission classifier is unavailable, Murph now admits the new contact and sends the normal signup reply instead of silent dead-air. Explicit spam blocks still hold.

Improvements

Improvement

First-contact gate fails open when the classifier is down

Unknown senders now get the normal signup-link reply when the OpenAI admission classifier is unavailable. Deterministic spam blocks, content-filter blocks, and budget exhaustion still gate before any side effects.

iMessage

hey is this Murph? can it help with sleep?
Yes — here's your signup link. (Classifier was offline; we still let real people through.)

Improvement

Weekly health insight finds the actual story

Sunday's recap can now lead with stress patterns and cross-metric meta-patterns when those are the real story, instead of always slotting findings into fixed sleep/activity sections.

iMessage

This week, one pattern stands out

Your worst sleep nights all followed late training — stress regulation, not volume, is the lever.

Murph knows your meds before it answers

Active conditions, allergies, meds, and supplements ride along in Murph's working context so safety-relevant guidance is shaped before the first vault lookup. Image generation can build on photos you sent, progress shots save durably, and Sunday's digest stays quiet when nothing happened.

New features

Feature

Active conditions, meds, and allergies ride in Murph's working context

Murph now sees your active conditions, allergies, medication regimens, and supplement regimens at the top of every turn — sorted by severity, capped on size, and linked to the right vault-cli lookup for deeper detail.

Stopped medications never reappear through a condition's related-regimen link. Absence reads as NKDA, not as missing information.

Pinned for this thread

read each turn
habitActive: lisinopril 10mg, daily
goalAllergy: penicillin (anaphylaxis)
rampCondition: hypertension, active

Feature

Generate images that build on photos you sent

Send Murph a sketch, a product shot, or a style reference and `generate_image` can use it as the basis for the next image instead of asking you to describe it in words.

Up to 16 ordered reference images per call, drawn from the current turn's attachments. JPG, PNG, and WebP only; 2 MiB per image, 32 MiB combined.

iMessage

Use that fridge photo and add fresh produce on the middle shelf

Feature

Progress photos save somewhere you can find them

Skin, posture, wound, and form check-in photos now land in your vault as canonical capture records, so the bytes are still there weeks later when you want to compare a series — instead of expiring with inbox media.

Privacy retention

14-day window
Day 0Send a progress photo
Day 0Saved as a vault capture
Day 90Still there — compare the series

Bytes live in captures, not inbox.

Improvements

Improvement

Sunday digest skips weeks where nothing happened

Murph's Sunday health digest now skips itself when there's no real wearable or experiment movement. If your wearable's quietly broken, it sends one short reconnect note instead of a hollow recap.

iMessage

Your WHOOP hasn't sent data in 8 days — want to reconnect? I'll skip Sunday's recap until then.

Improvement

First-contact gate stops blocking real people

The unknown-sender classifier now lets through anyone who mentions Murph or asks a real Murph question, with a per-contact cap of 4 attempts so transient outages don't permanently silence one person.

When an unknown number texts

Mentions Murph or asks Murph a question → admit
Obvious spam or unrelated → block
Cap of 4 classifier attempts per contact

Improvement

Stop announcing your home line on every message

If you keep replying on the wrong Linq chat, Murph tells you to switch to your home line once per chat — not on every inbound until you finally move.

iMessage

I keep texting the wrong line
We'll talk over at +1 (555) 010-7740. (Told once — not on every reply.)

Improvement

Vault-file sends park durably when approval isn't ready

When a vault-file delivery is missing approval state, the outbox now parks the intent durably and resumes when you approve, instead of churning through pre-provider retries.

Improvement

Hardened the new phone-call path against stale callbacks

Retell now receives call metadata in the fields its API expects, and delayed analysis callbacks can't resurrect a phone call Murph already failed before it started.

Phone-call path

Stale callbacksFail-closed

hardened on the Retell seam