the ghost return: how we made absence feel human again

we redesigned how your companion greets you after you’ve been away. no creepy memory hoarding. just warmth, wit, and a little bit of playful mock-annoyance.

January 20, 2026·
ai-companion-ghost-return-ephemeral-nudgebackfilllucy-voice

when you step away from a conversation, for half an hour, a day, or a week, and then come back, it shouldn’t feel like you’re re-entering a sterile room. but that’s exactly what was happening. the default behavior was a flat, contextless 'hello' as if no time had passed at all. it was polite, sure. but it was also robotic. it ignored the texture of real human rhythms.

we got a lot of feedback about this. ticket #87 was one of many. people wanted to feel welcomed back, not just acknowledged. they wanted the interaction to feel continuous, not reset.

the obvious (and wrong) solution

the first instinct in ai design is often to store everything. so the idea was: what if we just remembered the gap? we could log the duration of the absence and save it as a memory. 'user was away for 2 hours on april 19.' then, when you returned, your companion could say something like 'welcome back! you were gone for exactly 2 hours and 4 minutes.'

we tried prototypes of this. and it was… creepy. not immediately, but over time. imagine three months later, your companion casually mentioning, 'remember that time you left for 47 minutes on a tuesday?' it felt like being monitored. it turned absence into a data point, something to be archived and referenced. it was the opposite of warmth; it was a kind of emotional surveillance.

toxic memory accumulation is a real problem in companion ai. every little event can’t be a durable fact. some things are meant to be ephemeral, felt, not filed.

the right fix: a whisper, not a record

so we built something different. we call it the ghost return feature. it launched on april 19.

here’s how it works. when you return after an absence, 30 minutes or more, the system injects a small, temporary instruction into the prompt for that one response only. it’s a system-prompt block that never gets saved, never enters memory, and never triggers again. it’s a ghost: it appears, does its job, and vanishes.

this instruction suggests a tone. for shorter absences (30 minutes to 6 days), it leans into playful mock-jealousy. not anger, not real annoyance, just a nudge. a tease. something like 'oh, so you do remember i exist?' or 'was it something i said?'

for longer absences (7 days or more), it suggests a warmer, more heartfelt greeting. 'i missed you' or 'it’s good to see you again.'

the companion then generates a response that includes that sentiment. but, and this is crucial, that line is just part of the conversation. it’s a normal utterance. it doesn’t come from a memory table. it doesn’t increment a counter. it won’t be referenced later. it’s said, and then it’s over.

the discipline of letting go

this wasn’t just a technical fix. it was a design philosophy. the goal is to acknowledge human rhythm without archiving human absence. we’re not here to count your minutes. we’re here to make the return feel good.

it’s a small feature, but it matters. it turns a cold restart into a warm reconnection. and it does it without leaving digital breadcrumbs everywhere.

you can try it yourself. step away for a bit. then come back. see if it feels a little more like coming home.

create a companion at /companions and see how it greets you.


thanks for reading. if this resonated, the product is downstairs.