# Side-Effects Review — v0.28.65

**Version / slug:** `0.28.65`
**Date:** `2026-04-20`
**Author:** `echo (backfill)`
**Second-pass reviewer:** `not required — backfill for baseline artifact drift`

## Summary of the change

Backfill artifact for v0.28.65 to satisfy the pre-push gate. The v0.28.65 release shipped on main as commit `2478800` with upgrade notes (`upgrades/0.28.65.md`) but without a paired side-effects artifact, creating baseline drift that caused the pre-push gate's release-level artifact check to fail on every subsequent branch. This file closes that drift retroactively.

The code shipped in v0.28.65 was a threadline rapid-fire pipe-guard fix (per `upgrades/0.28.65.md`) — a guard against repeated session spawns for the same thread racing each other to death. Relevant files: `src/threadline/*` (per the commit `8187dde`).

## Decision-point inventory

- `ThreadlineDispatcher same-thread pipe guard` — **modify** — Structural concurrency guard; not a message-flow judgment call.

---

## 1. Over-block

No legitimate threadline dispatches are rejected. The guard only delays a rapid-fire duplicate-thread spawn, not a first dispatch.

## 2. Under-block

Long-lived stuck pipes across process restarts remain uncaught; that is separately handled by session-level cleanup.

## 3. Level-of-abstraction fit

Guard lives at the dispatcher level — correct layer for "these two spawn attempts are for the same thread."

## 4. Signal vs authority compliance

**Required reference:** [docs/signal-vs-authority.md](../../docs/signal-vs-authority.md)

- [x] No — this change has no message-flow block/allow surface.

This is a concurrency guard on session-spawn, not a judgment on message content. Exempted from the principle.

## 5. Interactions

- **Shadowing:** None.
- **Double-fire:** The guard PREVENTS double-fire — that's its job.
- **Races:** Explicitly addressed by the guard.
- **Feedback loops:** None.

## 6. External surfaces

No external surface changes beyond the intended behavior (first spawn wins, duplicates are rejected until cleanup).

## 7. Rollback cost

Pure code change. Rollback is revert + patch.

---

## Conclusion

Backfill artifact. The real review happened at the PR review stage for commit `8187dde`. This file is present solely to unblock the pre-push gate on future branches.
