32. Ethan

CHAPTER THIRTY-TWO

Ethan

The apartment's unusually loud for a Saturday morning.

Oliver has constructed what he informs me is a “multi-runway international airport rescue base” across the living room floor, using blocks, toy aircraft, two couch cushions, three coasters, and one of my shoes.

The shoe is apparently a hangar.

I’ve chosen not to argue.

Captain is lying beneath the coffee table with a stuffed giraffe pinned under one paw, watching Oliver with the self-important expression of a security officer overseeing national infrastructure.

“Dad,” Oliver says without looking up, “the tower needs more height.”

“The tower is currently taller than the terminal.”

“That’s because it’s important.”

I laugh. “A valid structural argument.”

He nods, accepting this as the proper respect due his work.

Addy would have said something ridiculous about zoning permits or emotionally unstable air traffic control.

The thought arrives before I can stop it.

I look toward the hall.

She left less than an hour ago, dressed in jeans, boots, and a soft sweater that kept slipping off one shoulder while she pretended not to notice me noticing. Sophie invited her out for the day. Coffee, shopping, possibly some form of friendship ritual I don’t understand.

Now the apartment feels different without her in it.

“Dad.”

I look back at Oliver. “Yes?”

“You’re making a weird face.”

“I have several.”

He cocks his head to one side, considering me. “This one's serious.”

“That narrows it down very little.”

He studies me, then returns to arranging a small plane beside the couch leg. “Sunshine says you think too much.”

“Sunshine?”

“Addy, remember? That’s her airport name.”

There are moments with Oliver when I can see myself in him. The focus, the way he categorizes information, the way he watches before speaking.

Then there are these moments, where he smiles with a warmth that belongs entirely to his mother.

Those are harder.

I move to the dining table with my laptop, positioning myself so I can see both Oliver and the screen. I have no intention of doing significant work today.

That, at least, is the theory.

The theory lasts twelve minutes.

A message from Jeffrey comes through first. Pulled more reports. No external breach found. Still don’t like the patch.

Then Sara. Media schedule finalized. Board wants a final demo verification Monday. No room for error.

No room for error.

There never is.

I open the documentation because ignoring it won’t make it less relevant.

The corrupted demo sequence fills the screen, followed by Bryce’s patch, the sandbox results, and the internal diagnostic reports from the last forty-eight hours. I move through them methodically, isolating each error and comparing it against the system behavior before and after the patch.

On paper, the patch is stable, functional, and effective. Those are the facts. The problem is that facts, in isolation, can be misleading.

“Captain, no,” Oliver says firmly.

I glance up in time to see Captain inching one paw toward the runway.

“Captain,” I warn.

The dog freezes, eyes shifting toward me with the expression of someone caught negotiating international borders.

“Back.”

He retreats three inches.

Oliver sighs. “He doesn’t respect safety.”

“No,” I say, turning back to the laptop. “He does not.”

The corrupted lines draw my attention again. Not the obvious failure points. Those are clean enough now, contained by the patch. It’s the pattern beneath them. The way the logic buckled under load.

The sequence wasn’t simply damaged. It was redirected in a way that created instability only when the predictive correction layer engaged. Most engineers wouldn’t have gone that route. Too specific. Too inefficient if the intent was simple disruption.

Unless the goal wasn’t to break it. Unless the goal was to make it fail in a particular way.

I bring up the failure simulation again. The screen flickers through modeled conditions. Normal flight, crosswind, sensor disagreement, manual override delay, automated correction, feedback loop.

I stop, go back, and run it again.

The loop forms at the same point each time. Not immediately or obviously. The system attempts correction, overcompensates, receives distorted confirmation, and then corrects again. Each response amplifies the previous one until stabilization becomes the very mechanism producing instability.

My hand stills on the trackpad.

I know that shape.

Memory is an unreliable instrument. I know that better than most. Grief distorts sequence, weight, emphasis. It turns fragments into evidence and silence into accusation.

But this isn’t grief; it’s architecture.

I open a secured drive I haven’t accessed in months.

The folder name's neutral. Accident Review. As if neutrality has ever been sufficient.

My password fails on the first attempt because I mistype the final character. I correct it. The folder opens.

I don’t move.

The documents populate in neat rows. NTSB summaries. Internal engineering notes. Flight telemetry. Maintenance records. Sensor logs. Stabilization data. Photographs I never look at unless there’s no alternative.

Megan’s aircraft.

Megan’s last flight.

The room seems quieter, though it isn’t. Oliver is still talking softly to himself. Captain’s collar still jingles when he moves.

But everything narrows.

I select the telemetry folder, then the stabilization analysis. The file loads slowly, not because it’s large enough to warrant it, but because I'm aware of every second.

Four years is both a lifetime and no time at all.

The official report had been precise. Pilot error following adverse stabilization response. A sequence of decisions under stress. A delay in override. Failure to correct in time. Clean language. Clinical. Wrong.

But Megan wasn’t careless or slow. She wasn’t arrogant in the cockpit. She respected aircraft, weather, systems, and failure modes with the sort of disciplined attentiveness that made lesser pilots look performative.

She wouldn't have ignored escalating warnings. She would’ve listened, understood, and acted.

And still, the report said what it said.

Because the data supported it.

Or seemed to.

I pull the old stabilization logs beside the current corrupted demo sequence, splitting the screen.

At first, there's nothing. Different systems, generations, and environments. The aircraft she flew was running an earlier stabilization framework, one designed before the AI correction layer became what it is now. Smaller, more mechanical in its assumptions, less predictive.

But the core logic…

I zoom in.

There.

A conditional branch.

Then another.

A response weighting function that should have degraded under sensor conflict but instead amplified.

I compare it to the current corruption. It’s not identical, but related. A descendant.

No.

That isn’t right.

A signature.

If ads affect your reading experience, click here to remove ads on this page.