Story code: ST-000111
Part 2: The Log Kept Better Time Than He Did
By 6:55, I was sitting on the hallway floor outside my own apartment with Marlene’s charger plugged into the wall by her plant stand, building a folder of screenshots while my supervisor’s texts stacked up. Evan still had not opened the door. He had switched to sounding bored, which was always his favorite tone when something practical was on fire.
I called through the door, “I need my badge and my keys.”
His voice came through the wood, muffled but clear enough. “I told you the app is glitching.”
“The app didn’t text me to calm down.”
Silence.
Then he said, “If you’d just apologize, I’d deal with this when I’m ready.”
That landed harder than the lockout, because it finally cut through the words he kept hiding behind. Firmware update. Billing reset. Security issue. Glitch. All his usual little blankets for the same move. Now he had put one plain sentence under all of it.
I looked down at the history screen again. It was still there: 6:41 AM, access updated by admin user Evan. 6:43 AM, failed entry, keypad, Tessa. Under that were older entries I had never studied because I had always treated the app like a utility, not evidence.
Unlock, Evan, 10:58 PM.
Lock, auto-lock, 11:03 PM.
Guest code failed, 2:14 PM yesterday.
Access updated, admin user Evan, 2:15 PM yesterday.
I scrolled farther.
The week before, on the morning I had to wait outside for ten minutes because he said the server was down: access updated.
The Saturday the dog walker said her code suddenly stopped working and Evan called her careless: access updated.
The evening I had to buzz the neighbor because my app “logged itself out”: access updated.
Not every entry was suspicious. Plenty were ordinary lock and unlock lines. But the pattern was sitting right there in plain app language. Every time there had been some humiliating delay, some moment where I had to ask him for help or wait for him to solve something, the lock log had a neat little line around it.
Marlene stood in her doorway holding her coffee with both hands. “Do you want me to stay a minute?”
“Yes,” I said. “Just in case he decides to rewrite this out loud.”
She nodded once and leaned against her frame without asking questions.
I texted Dana again. Shared lock issue. I’m trying to get my badge from inside. I have screenshots. I know that sounded thin, but it was the most true thing I could say in under a minute.
Her answer came back almost immediately. Need ETA in ten or I have to mark you absent and move coverage.
There it was, the real-world part. Payroll. Coverage. The difference between a story sounding messy and a story sounding unreliable.
I called Evan once more instead of shouting. This time he answered.
“What?” he said.
“I can see the log.”
“It doesn’t prove anything.”
I said nothing.
He kept going. “Those entries happen every time the app syncs.”
I took a screenshot of the call timer while he talked and put him on speaker so I could keep my hands free. “Then why did my unlock button disappear at 6:41?”
“You probably removed yourself by accident.”
“I was packing my lunch.”
“You click things without reading.”
Marlene’s eyes flicked toward the door. She took one slow sip of coffee and said nothing.
I opened our message thread with the cleaning service. Their appointment reminder sat there from the day before. I had replied to confirm the two-hour window because he had forgotten, like he always did. Below that was the note with building instructions and the line I always sent: If app access fails, text me and I’ll unlock remotely.
Not him. Me.
I switched over to the lock app and checked the shared users list. My name was gone. The cleaner code was still scheduled to expire at eight. The backup guest code Evan claimed he managed was marked inactive. I did not know yet whether he had neglected it or disabled it. I only knew what I could see: if that crew arrived on time, the person with working remote habits was the one sitting in the hallway in rubber slides.
My phone buzzed with another text from Evan.
If you leave, don’t expect me to cover for you when your boss asks why you missed.
That choice of words hit me sideways. Cover for you. As if he had a role in my attendance. As if my showing up to my own job still ran through him.
I screenshot that too.
Then another message came in, this one from an unknown number with the cleaning company’s area code. Hi, this is Luis with BrightNest. We’re early and parking now. App usually goes through your phone. Will someone be home?
I stared at that line while the hallway heater kicked on with a dry rattle.
Behind the door, Evan’s footsteps moved fast for the first time all morning.
I still could not prove every reason for what he had done, and I did not need to. The log had already contradicted his glitch story. The texts had already tied the timing to obedience. And now a service he acted like he controlled was announcing, in black and white, that the system still expected me.
I typed one message to Dana asking for one hour to sort an access emergency, and another to Luis that I did not send yet. Then I listened to Evan try the deadbolt from inside, stop, and try again.
That was when I understood the next part was not going to be about getting back in. It was going to be about finding out how much of his “everything runs because I handle it” story stopped working the minute I stopped rescuing it.