# ConnectOnion 1.9.2b15 (beta)

## Install this preview

Stable remains 1.9.1. Install this opt-in beta by exact pin:

```bash
python -m pip install --upgrade 'connectonion==1.9.2b15'
```

## Every question answered once, on day thirty-one too

Automatic answers in `co handoff` now hold up over the life of a handoff, not
only on the afternoon it was sent (#2424).

- **Questions weeks later.** Each answered question is remembered by when it
  was asked and what it said. Before, a new question asked after older ones
  expired from the inbox (30 days) was never answered.
- **Two programs checking at once.** `co ai`'s watcher and `co handoff status`
  answer under one lock, so a question gets one answer and one session copy.
- **Long sessions.** A session copy that would not fit the 5 MB inbox keeps its
  newest part and says the earlier part was cut. Before, the answer was refused
  and retried on every check.
- **Deleted sessions.** If the session file is gone, the answer says so instead
  of the check crashing.
- **A busy inbox.** The inbox is read page by page to its newest message, and a
  message from another agent that is not a handoff is skipped. The backend now
  refuses messages that are not JSON objects (oo-api v0.1.30).
- **Accept, then ask.** `co handoff accept` remembers the code only after the
  sender was told, so a question cannot go out ahead of a failed acceptance.
- **Redaction.** Secrets written as JSON (`"password": "..."`) in a tool output
  are removed from the session copy.
- `status` says which answer carried the session copy, and `co handoff show`
  prints the prompt path without style markup.

## Verification and limits

- Each of the nine fixes has a test that failed on 1.9.2b14 and passes now; the
  handoff, co ai and watcher suites pass (489 tests).
- On production, a plain-text inbox message is refused with 400, and the paged
  read returns this agent's handoff messages.
- `co handoff status --wait` counts replies already present, so an answer that
  arrives between `ask` and the start of `--wait` is noticed only with the next
  message.
- The install floor stays 1.9.2b13: a recipient on 1.9.2b13 works with a
  1.9.2b15 sender.
