Jackson delivers the news like a gift wrapped in satisfaction.
"We found him," he says, settling into the chair across from my desk with the kind of smile that reaches his eyes. "The guy who's been sending you those messages."
My heart stops. "You did?"
"My contact tracked the digital trail. Took some serious technical work, but they managed to trace it back to the source."
Jackson pulls out his phone, scrolling through what looks like official documents.
"Some lowlife piece of shit who got picked up by the police on unrelated charges. Drug possession, outstanding warrants, the usual."
I stare at him, hardly daring to believe it. "Are you sure?"
"One hundred percent. They found evidence on his devices—drafts of messages he never sent, search histories showing he'd been researching you and the team. Sick fuck was probably getting off on messing with your head."
The relief that floods through me is so intense it's almost physical. Like I've been holding my breath for months and can finally exhale.
"What happens now? Do I need to press charges? Give a statement?"
Jackson shakes his head quickly. "That's the beauty of it. Guy's already going away for the drug charges. Long enough that he won't be bothering anyone for years. Case closed without you having to get involved."
I can barely process it. No police involvement. No official investigation that would require me to hand over my phone, to let strangers read through months of increasingly personal threats.
No risk of those messages becoming public record, of reporters getting hold of them and dissecting every hint about my private life.
"It's over?" I ask.
"It's over." Jackson's smile is warm, reassuring. "You can finally stop looking over your shoulder."
After he leaves, I sit alone in my office for twenty minutes, just breathing.
For the first time in months, the constant knot of anxiety in my chest begins to loosen. I don't have to worry about my phone buzzing with another threat. Don't have to analyze every interaction for signs of hidden menace.
I'm free.
The irony hits me as I'm walking to my car later that afternoon. Just when one nightmare ends, I'm left facing the reality I've been using paranoia to avoid.
The messages were a distraction from the real source of my misery—the fact that Blaze has moved on completely, building a life with someone else while I'm still drowning in the wreckage of what we used to be.
I'm so lost in thought that I almost walk straight past the café without noticing her.
Sophie sits at an outdoor table, laptop open, surrounded by what looks like wedding planning materials. Fabric samples, venue brochures, catering menus—the detritus of a life being planned in minute detail.
The engagement ring on her left hand catches the afternoon sunlight like a blade.
My chest constricts at the reminder. Blaze chose her. Asked her to marry him. Offered her everything I was too much of a coward to ask for when I had the chance.
I should keep walking. Should pretend I didn't see her, go home, and continue the slow process of learning to live with my choices.
Instead, I find myself approaching her table.
"Sophie."
She looks up from her laptop, and her expression immediately turns guarded. Not hostile, exactly, but cautious in a way that makes my stomach sink.
"Asher." She closes the laptop deliberately, like she's preparing for a confrontation. "I hope you're not planning on attacking me again. I carry pepper spray now."
The words hit like a slap, but I deserve them. "I owe you an apology for that night at the airport. I was... I wasn't in a good place, and I took it out on you. That was wrong."
"You thought I was some kind of gold digger trying to manipulate Blaze."
"I thought you were someone you weren't. That much is clear now."
Sophie studies my face for a long moment, then nods curtly. "Apology accepted. Anything else?"
"Congratulations," I force out through clenched teeth. "On the engagement. I saw the video. Very romantic."
"Thank you." But the words come out awkward, hollow. Like she's reading from a script she doesn't quite believe in.
I wait for her to say more—to gush about wedding plans or how happy she is or how perfect Blaze is. The kinds of things an excited bride-to-be would naturally share.
Instead, she just stares at her hands, fidgeting with the engagement ring like it doesn't quite fit right.
"For someone about to get married," I observe, "you don't seem particularly happy about it."
Something snaps in Sophie's carefully maintained composure. Her head jerks up, eyes blazing with sudden fury.
"You want to know why I don't seem happy? Because I spent months watching Blaze put himself back together after you destroyed him. Watching him learn to trust again, to hope again, to believe he deserved something good."
The words pour out sharp and unfiltered, each one landing like a physical blow.
"You don't get to show up now and judge my happiness. You had your chance with him, years of chances, and you threw them all away because you were too scared to fight for what you wanted."
“Who are you to—”
"You don't deserve him," she continues, her voice rising. "You had years to be brave, years to choose love over fear, and you failed every single time. You weren't that person."
I want to argue, to defend myself, to point out that she doesn't know the whole story. But the accusations stick in my throat because underneath the anger, I can hear the truth.
"He's building a life with me because you taught him he couldn't build one with you. Because you made him believe he wasn't worth the risk."
"You don’t know anything. That's not true."
"Isn't it?" Sophie's laugh is bitter, sharp-edged. "When was the last time you fought for anything that mattered? When was the last time you chose being happy over being safe?"
The questions hang in the air between us, unanswerable because we both know what the truth is.
"He's building something real now," Sophie continues, her voice quieter but no less intense. "Something stable and honest. He deserves that after everything he's been through."
Each word is a reminder of what I lost, what I gave up.
"Why are you telling me this?" I ask.
"Because I'm tired of watching good people get hurt by cowards who can't commit to anything." Sophie's voice shakes slightly. "Blaze went through hell after you two ended. Do you have any idea what that did to him? How long it took for him to believe he was worth fighting for?"
The guilt hits me like a physical weight. "I never wanted to hurt him."
"But you did. Over and over. Every time you chose fear over love, you hurt him a little more."
We sit in silence for a moment, the weight of everything unsaid pressing down on us.
"I did love him," I say finally. "I still do."
"Then you should have been braver." Sophie's voice is soft now, almost gentle. "Love without courage is just another way of being selfish. But It’s too late now anyways."
And I can’t shake off the feeling that the last phrase Sophie was somehow projecting on herself. But it doesn’t concern me. She’s right—I should have done a lot of things, but what’s the point venting on it now? As Sophie said, it’s too late.
By the end of our conversation, nothing is resolved. We're not friends, probably never will be.
But the hatred that's been simmering between us has softened into something more complicated—mutual understanding, perhaps, born from loving the same man in fundamentally different ways.
As I walk back to my car, I realize something has shifted. The relief about the messages being over feels hollow now, overshadowed by the larger truth Sophie forced me to confront.
I didn't lose Blaze to some external threat or impossible circumstances. I lost him because when it mattered most, I chose fear over love.
And that's a truth no amount of relief can touch.