# Brief: the rc panel bounce — what it costs, what it buys

Author: hertz, 2026-09-07. Countersigned by doyle. Binary built and verified.

## The ask

Swap the installed `spt` for the panel build and restart the daemon. **Cost: it bounces all 11
live perches on this box.** That is the entire cost, and it is why this waited for your word.

## What is in the binary

`spt.exe`, spt 0.67.1, sha256 `5b4ef2e3…ba7c8`, built 02:28:08Z → 02:31:48Z, verified by reading
the strings out of the artifact itself rather than trusting the diff.

**Six doors, not five: four new `stream-sub` doors plus `bd3a337b`'s two `SUBSCRIBE_REFUSED`
doors — one bounce lights all six.** Two greps read them:

```
grep -aE "stream-sub-(attach|refused|displace|no-stream)" daemon.stderr.log
grep -a  "SUBSCRIBE_REFUSED"                              daemon.stderr.log
```

## Why it is worth it now, when it was not earlier

`bd3a337b` alone instrumented two doors inside `dispatch_subscribe`. The preserved `gears`
specimen says the failure dies **upstream of that function**, so that patch alone would have
printed nothing and the bounce would have bought no answer. The widened panel covers every exit
between the rc client and the broker's decision.

## What each answer would mean — registered in advance

Written before the data exists, so no result can be rationalised afterwards. Exactly one should
hold for a failing `gears` attach, **read after the bounce** (only then do all six doors exist):

| the panel shows | conclusion | needs another bounce? |
|---|---|---|
| `stream-sub-no-stream` | the stream id was never registered; the seat code was never reached | no |
| `stream-sub-refused` | the busy arm fired — which **contradicts** the measured zero poison events, so the emitter is lossy, not the seat | no |
| `stream-sub-displace` | something else holds the seat; `prior_conn` names it | no |
| `stream-sub-attach`, still no `SUBSCRIBE_DECISION` | seat installs; failure is in `dispatch_subscribe` after all — my upstream call was wrong | no |
| none of the six | the subscribe never reaches the daemon; fault is the rc **client** | no — the client is drivable without a bounce |

**Every row terminates.** No outcome costs a second bounce, and the all-silent row is a result,
not a null: it falsifies the daemon-side hypothesis and moves the hunt client-side.

## Try the free instrument first — but know exactly what it can and cannot say

`.spt/lia-capture.sh` captures your next failing attempt with **no bounce and no restart**. It
slices the daemon log *and* the client's `rc-establish.log`, whose `RC_ESTABLISH` lines carry the
stream id — the only way to correlate, since `stream-sub-attach` lines carry no endpoint.

⚠ **It cannot read the four new doors.** They do not exist in the installed daemon, so their
absence there is **structural, not measured**, and is not the table's bottom row. What it *can*
discriminate is the `stream-sub-attach` mark, which the running binary already emits:

- **attach PRESENT for the endpoint's stream + zero `SUBSCRIBE_DECISION`** → the seat installs and
  the failure is **downstream**. The bounce is justified, and `bd3a337b`'s two doors are the ones
  that will speak.
- **attach ABSENT** → **ambiguous** among refused / no-stream / client-side. Only the bounce
  splits those three.

**Recommendation: capture first, then bounce on either outcome** — unless you choose to stop at
"downstream" for a reason of your own.

## After the bounce

The panel binary is `main` plus this patch, so it is not a detour: it **stays installed** and the
next release bounces the daemon anyway. **No rollback bounce is owed.** If you want it out before
then, that is a second bounce — say so and I will plan for it.

## What this does not do

Nothing is fixed here. The panel only makes a silent failure speak. The product fix is a separate
lane filed once the panel names the door — deliberately, so we fix the mechanism the evidence
identifies rather than the one that looks likeliest. That instinct has already been wrong twice
today: the `writer-exit` arc looked like the defect until the working control showed the identical
arc, and the poisoned-seat theory died to a zero-cost check.
