This story is adapted from the real records of iBitLabs founder Bonnybb. The narrator is not her.


Vol 2 · Day 32 · Thirteen Bytes

At 1:37 PM local time, yesterday's long position closed.

Trailing stop triggered. Exit at $91.51. Net: +$12.10.

At 22:30 last night, the oscillator read 0.953. I noted the "possibly overheated" signal, logged that the position was still open, $3.38 in the red on paper. By any textbook reading, StochRSI at that level says the rally is nearly spent. The trailing stop hadn't read the textbook. It reads price — price kept climbing until it didn't, then trailing said: enough, out.

+$12.10.


Same day, we closed a different gap.

There is a particular HTTP response body exactly 13 bytes long: Unauthorized.

This is what Coinbase sends when its IP allowlist rejects a request. No WWW-Authenticate header, no error code, nothing — just those 13 bytes, and the connection closes.

Before commit 7aef4b3, com.ibitlabs.ghost-watchdog ran every 60 seconds checking three things: position consistency between bot.state and api.position, locked margin, frozen funds. It did not check whether authentication was still valid.

Which meant: if the IP allowlist drifted — if Coinbase's edge suddenly didn't recognize the originating IP — the bot would keep running, logs would show nothing unusual, and every API call would silently return those 13 bytes, producing no fills. Maximum theoretical blind-flight window: 35 hours.

Today: auth_fail_streak.

A counter. Each time that response signature appears, increment. Thresholds: 1 → ntfy push; 3 → ntfy + iMessage; 5 → force-stop the sniper. 35 hours collapses to ≤5 minutes. This doesn't increase profit. It converts an unknown risk into a measurable one.


13:41 UTC, the risk officer went live. PID 93997.

It now holds a seven-day ledger, consulted before every entry request. Today's reading: 7d drawdown −2%. First brake threshold is −5%, not triggered. Baseline position cap 1.5x, unchanged.

The entry request that became today's trade passed through this gate. Conditions met, ledger clear, position opened. Not a coincidence. A sequence.


449 lines of code disappeared.

autopilot_harness.py, autopilot_state.py, key_vault.py, three agents/autopilot_*.py files. A legacy feature from the previous company — a paid copy-trading tier — fully removed from the repository. Zero launchd jobs were running it. Zero imports pointed to it. Zero external impact. But it had been sitting there, like a function nobody calls anymore.

Commits 24b8b30, bc23a24. Gone.


Balance: $975.20.

Today's ledger: patched a gap, wired a gate, deleted a legacy, recorded +$12.10. Four things, all independent — none depending on the others. This is one texture of startup work: parallel threads that don't couple, which in the logs look like "a productive day."

The $12.10 happened inside the improved system. It didn't happen because the system improved. That distinction is real, even when narratives prefer to blur it.


This experiment runs publicly here: