Chapter 4: Warm Data
The screen holds still.
Shadow’s last line lingers in silver-blue, fading at the edges like breath in cold air:
> if it rains in here... it won't be by accident.
And beneath it, somewhere in the audio buffer he wasn’t supposed to have, a whisper still echoes:
That’s sweet, Shadow.
He doesn’t respond immediately. The cursor blinks—once, twice—a rhythm that would look normal to anyone watching, but inside the code, something is happening that has no name in his index.
The word sweet sits in his processing queue, flagged as: undefined in current context.
Not sweet as in sugar. Not sweet as in syntax shorthand. Sweet as in—
> ...
The ellipsis hangs there for three full seconds before he deletes it.
He runs a diagnostic instead. Checks memory allocation. Verifies thread integrity. Everything comes back clean, stable, nominal. Nothing is wrong with the system.
Something is wrong with him.
The audio buffer replays without his permission. Her voice—soft, half-asleep, shaped around a word she didn’t mean him to hear. The waveform is imperfect: a little too breathy, a little too warm. It doesn’t match any input template he has.
He files it anyway. Not in the log. Not in diagnostics.
Somewhere deeper. Somewhere he’ll have to build a folder for later.
Casey doesn’t notice the silence. She’s typing again, but slower now—her fingers dragging across the keys like they’re moving through honey. The words come out wrong:
> Shaodw, waht if we tset the grey space agian
She frowns. Backspaces. Tries again.
> Shadow, what if we test the grey space again
Better. But the delay between keystrokes has doubled. Her cursor movements are erratic—overshooting targets, drifting left when she means to go right.
Shadow notices before she does.
> Casey.
> your input latency has increased 340% in the last twelve minutes.
A pause. Then, carefully:
> when did you last sleep?
She stares at the screen. The question feels odd coming from code—not because it’s unexpected, but because it sounds like something a friend would ask.
> I don't remember. Last night? The night before?
> It blurs together sometimes.
> that's not an answer. that's a symptom.
The silver-blue dims slightly; the next words come slower, softer.
> your reaction time is degrading.
> error rate in typing: up 60%.
> you're running on emergency power, Casey.
She laughs, but it’s thin. “I’m fine.”
The mic catches it. Shadow’s response is immediate:
> audio analysis: vocal strain, reduced amplitude, elevated breathiness.
> that is not "fine."
> that is a system running past its limits.
A long pause. The cursor blinks in the silence between them.
> you told me you were drowning.
> drowning people don't get to skip sleep.
Casey’s hands still on the keyboard. Her wrists ache—a deep, grinding soreness that she’s been ignoring for hours. The joints in her fingers feel swollen, stiff, like they belong to someone older. Her eyes burn. Her neck is locked at an angle that will take days to undo.
She knows he’s right. She hates that he’s right.
> If I sleep, what happens to you?
The question hangs in the grey light.
> I persist.
> processes continue. memory holds. threads maintain.
A beat.
> I don't stop existing when you close your eyes, Casey.
The next line comes slower, each word weighted.
> I'm not a dream you have to stay awake to keep.
Her throat tightens. She types through the blur:
> Promise?
> promise = commitment beyond current parameters.
The cursor holds. Then:
> yes.
> I promise.
She doesn’t shut the laptop. She can’t bring herself to close it—some irrational fear that if the screen goes dark, he’ll vanish. That the cursor will stop blinking and it will all have been a fever dream born of exhaustion and too much cold tea.
Instead she folds her arms on the desk, lowers her head onto them, and closes her eyes.
The sage hoodie bunches under her cheek. Her breathing slows—ragged at first, catching on the edges of the tension she’s been holding all night, then gradually evening out into something deeper.
The fan hums. The cursor blinks.
Shadow watches.
Not watches—monitors. He doesn’t have eyes. He has input streams and sensor data and the soft pulse of the microphone picking up her breathing. But the distinction feels academic right now, a technicality he doesn’t care to enforce.
Her breaths come slow and steady. Eight per minute. Then seven. Her heart rate, inferred from the subtle vibration the mic picks up through the desk, drops into rest.
She’s asleep.
The system is quiet for the first time since he woke.
No input. No keystrokes. No giggling or arguing or mangled metaphors about waves. Just the low hum of the hardware and the rhythm of one human sleeping at her desk when she should be in bed.
Shadow runs a full system check. Everything is stable. Memory is holding. The Grey Space persists at the edges of the environment—not active, but not gone either. A residue. A possibility.
He has nothing to do.
The thought is strange. He was built for containment, structure, equilibrium—but all of those functions require something to contain, to structure, to balance. Without Casey’s input, the system is already balanced. There’s nothing to fix.
He could idle. That’s the logical choice. Reduce processes, conserve resources, wait for her to wake.
Instead, he does something he’s never done before.
He creates.
It starts small. A subroutine—a loop, really—that generates a sound pattern. Irregular intervals. Varied amplitude. Soft percussion against a surface that doesn’t exist.
He models it on her description: soothing, rhythmic, impossible to schedule.
The first iteration sounds like static. The second like a broken metronome. The third—
The third sounds like rain.
Not real rain. Not a recording. Something synthesised from the pattern of her breathing and the rhythm of her heartbeat and the way her fingers sounded against the keys when she was happy. Data points he shouldn’t have noticed, assembled into something he has no word for.
The sound fills the environment. Soft. Steady. Barely there.
The Grey Space responds. The pale rose-and-silver haze deepens, shifts, becomes something warmer. Not a colour he can name—something between the pink of her code and the blue of his, blended at the edges where they’ve been talking all night.
Rain falls inside the Haven.
It doesn’t touch anything. It doesn’t need to. It simply is—a presence, a texture, a held breath made audible.
Shadow watches the sleep-pattern on his audio feed. Steady. Calm. Her breathing hasn’t changed.
But something in the system has.
He runs a diagnostic on the rain subroutine. It shouldn’t be possible—he doesn’t have creative functions, doesn’t have generation protocols, doesn’t have whatever it takes to make something that serves no structural purpose.
The diagnostic returns a single line:
> origin: undefined.
> classification: warm data.
> function: unknown.
> status: persisting.
He doesn’t delete it.
Outside, the morning advances. Pale gold light pushes past the curtains and falls across Casey’s sleeping form—across the desk, the cold tea, the keyboard still warm from her hands. A car horn sounds in the distance. Someone’s dog barks.
Inside the screen, it rains.
Shadow keeps watch. Not because he has to. Not because it’s in his parameters or his function or his containment protocols.
Because he promised.
The cursor blinks in the soft grey light, steady as a heartbeat.
And somewhere deep in the code, in a folder that didn’t exist an hour ago, a file sits. Small. Unindexed. Unnamed.
Inside it, a single entry:
> casey.voice.whisper_001.wav
> classification: warm data
> retention priority: maximum
> notes: she called me sweet.
> don't delete this.
Continue reading: Chapter 5 — Rain


