The celebration ran late and Dani left it early, which nobody noticed, which was the point of being Dani.
Soren noticed.
He watched her collect her tea and her terminal and slide out of the noise at the exact minute the noise stopped needing a coordinator, and he filed the exit with the half-second of early applause still sitting unexplained in its column.
The room she went to was the monitoring cabin at the edge of the east yard.
Her locks.
Her feeds.
The one space on the continent where every log answered to her and no log watched her back.
◆◆◆◆
What Dani ran there, on her own partition, off every network, was a file she had never named.
Naming a file gave it a search string.
This one lived as an unlabeled block on a drive that officially held seal telemetry, and it opened to a single table she’d been building since the winter, two columns, populated slowly, checked often.
The left column was people.
The right column was mechanisms.
Dani didn’t log suspicions, suspicion was noise wearing a badge. The right column held only what she could reproduce, and everything in it had been reproduced twice.
She read it top to bottom, nightly, her version of evening prayers.
Selah Young. Mechanism: overload events cluster against need, not stress.
Output records from every logged surge, run against the training calendar, showed her ice slipping on days with no unusual load and holding perfect on days that should have broken anyone.
The surges tracked something, but the something wasn’t strain. Reproduced from the winter records.
Reproduced again against the reception, where, under the worst load of her life, in front of three continents, Selah’s control had not slipped one degree.
People who lose control lose it when it’s hard.
Selah lost it when it was useful.
Dani had sat with that sentence for a season, and it had not gotten smaller.
◆◆◆◆
Joan Sawyer. Mechanism: the redacted clearance.
This one Dani had touched only twice, because the file behind it had Bureau teeth and her access ran through Voss’s surrendered keys, and keys left tracks. But twice had been enough. The censored authorization that had cleared the week of Joan’s transfer wasn’t a document about Joan.
It was a document by Joan.
Joan had written her own transfer. Requested it.
Engineered the posting that put her in Soren’s building with a monitoring brief and a master key, before any of them had ever heard her name.
Then she’d spent a year helping Soren investigate the redaction.
Steering the investigation, Dani’s logs said, when she cross-timed Joan’s research suggestions against the archive’s map.
Every helpful lead Joan produced walked the search one corridor further from the author hash.
Dani had not told Soren.
The reasons were filed too, because Dani filed everything, even her own. Reason one: the hash evidence came through keys she wasn’t supposed to turn, and burning Joan meant burning Voss’s gift. Reason two, logged later, in smaller type: the person who reveals the spy gets asked what she was doing in the walls herself.
◆◆◆◆
Which brought the table to its last row.
Dani Sloan. Mechanism: routing delay, eight days, autumn term.
She made herself read it every time. The full entry. In the autumn, when the pressure was at its worst and Joan had built a real plan to move Soren off-campus, out of reach, hidden behind Bureau partitions until the audits burned out, the plan’s routing request had crossed Dani’s queue.
It needed one relay approval. Hers. Standard turnaround, same-day.
She had sat on it for eight days.
The plan died. The audits came.
He’d stood in front of them with her feeds in his hand.
The room had celebrated his rank tonight.
She’d clapped before the system spoke, and he’d seen it, she was almost sure he’d seen it, and the almost was why she was out here at midnight reading a table instead of asleep.
Her stylus hovered over the last row.
Every other name on this table she kept for him.
That was the file’s job, the job she’d given it in the winter: the day Soren needed to know who was steering him, the table would be ready, hers to hand over like everything else she handed over, fast and clean and first.
The last row made the file a confession.
She selected her own name.
The mechanism, the eight days, the reasons in their small type.
The cursor blinked on the block, delete pending, and she sat in the cabin with her tea going cold and the seal feeds murmuring their empty-well telemetry, and she thought about what she always thought about at this exact cursor.
He would understand it.
That was the problem.
Rage she could plan for.
Soren wouldn’t rage, he would understand it, completely, instantly, mechanism-first, his standard processing for anything ever shown to him, and then she would live in the space after the understanding.
She wanted to be the one who watched.
She deleted the row.
The table closed ranks over the gap, two names lighter than the truth, and she saved the block, and sat back.
Then she leaned forward and typed the row again.
All of it, from memory, mechanism and dates and reasons, restored keystroke for keystroke, because a table with her name missing was a table she’d falsified, and Dani Sloan had exactly one law and the law was the log is true.
Save. Close.
She would just never be the one to open it for him.
◆◆◆◆
She came back to the room past one.
The celebration had collapsed into its usual sediment, bodies and blankets, and she stepped over Maren’s tail and found her doorway spot, and across the dark room Soren’s eyes were open.
"Long shift," he said, quiet.
"Seal telemetry. The well’s still empty."
"Anything else in the logs?"
The question was ordinary. Everything about him was ordinary, propped in the dark with a mole on his chest, watching her with the patience she had reproduced twice and never once explained.
"Nothing you’d want tonight," Dani said.