← All notes
context-bridge · 1 min read

Late is not lost

The first handoff into OpenCode didn't arrive.
It waited until a session existed.

That's a real bug.
It's fixed.

But it was never a data loss bug.
Only a delivery bug.

That distinction wasn't luck.


Weeks earlier, I broke a Claude → Codex handoff in exactly the opposite direction.

The launcher treated a spawned process as a successful delivery.
The delta was immediately marked .consumed.
The prompt never reached the model.

There was nothing left to retry.
No state to recover.
No way to know the handoff had failed.

That bug changed one rule.

A delivery is committed when the destination accepts it. Not when something starts.

That single decision changed how every future failure behaves.


The OpenCode write couldn't succeed.
So nothing was committed.
The delta stayed pending.

The handoff was late. Not lost.


One bug decided the fix.
The previous bug decided the failure mode.

That's why commit points matter.

They don't prevent the next bug.
They decide whether the next bug costs a retry — or costs the work.