# ConnectOnion 1.9.5

## Install

```bash
python -m pip install --upgrade 'connectonion==1.9.5'
```

Python **3.11+** and the existing dependency floors are retained.

## A fresh install works again

- typer 0.29.0, released 2026-11-09, made every `co` command crash
  (`TyperOption.__init__() got an unexpected keyword argument 'type'`), so a fresh
  `pip install connectonion==1.9.4` could not even run `co --version`. typer is now capped below
  0.29 (#2922). Installs made before 2026-11-09 were not affected.

## Mail every slot, past the Codex floor

- When the Codex week reached its 90% floor with a page still open, every later turn stopped
  before the page closed, and a slot's mail read waited for the page; mail went unread for days.
  Each slot now reads new mail and processes it while investigation waits for the weekly reset
  (#2920).
- A page that changed under an open investigation restarts from the current page instead of
  refusing every turn.
- `co rem status` says why a round waits and when it resumes.

## No command to copy

- Nothing in the reader asks you to copy a command any more. Errors say what to do in words
  ("Your session expired. Reload the page."), and a page opened from a file links to the live
  reader instead of printing one (#2910).
- A private project gets **Ask Codex to look · Ask Claude to look** (让 Codex 查 · 让 Claude 查) in
  place, through the same path as Hand to Codex, with Stop, Undo and See result on the page (#2909).
- The local reader's expired-session page says to open REM again, in words.

## Updates waiting

- While you type a reply, a slot answer or a message to an agent, REM does not redraw the page
  under you. When an update arrives meanwhile, a quiet **Updates waiting** (有更新) mark appears;
  it applies by itself when you leave the field, or at once when you click it.
- Taking the update keeps what you typed, where the caret was and which field had focus, and an
  open conversation with an agent stays open.

## Reads right

- A question REM asks you on a person's page reads "Have you accepted…?", not "Has you
  accepted…?" (#2908).

## co claude, headless

- `co claude run` edits files inside `--cwd` by default (`--permission-mode acceptEdits`); before,
  with nobody to approve, it refused every edit and still reported success. Other commands stay
  refused and are listed; `bypassPermissions` stays opt-in (#2904).
- `codex()` with nobody to approve works inside its sandbox and refuses only leaving it.
- The Claude Code process keeps proxy settings, `ANTHROPIC_BASE_URL` and the Bedrock/Vertex
  settings (#2905).

## CI

- The Tests workflow runs in about 4 minutes on an idle runner pool (was 9): uv installs, coverage
  on sys.monitoring, four workers per shard, and a help audit that no longer walks pages repeating
  their parent (#2902).

Everything in [1.9.4](1.9.4.md) ships here; the previews that built it are 1.9.5rc1.
