# ConnectOnion 1.9.3rc42 (release candidate)

Stable remains **1.9.2**; Python **3.11+** and the existing dependency floors are retained.

## Pre-stable audit fixes (#2754, #2771)

- **Scheduled writes wait for the lock.** The daily round and the same-person judge took the
  notebook lock with no wait after the slot was already recorded as served, so a few seconds of
  an owner's `co rem` command could cost the night. Those writes now wait the same bounded time
  as every other write of work already done; the scheduled tick's first acquisition still gives
  up at once so two ticks never run side by side.
- **The daily cap is not a failure.** Reaching the day's runner-call cap is recorded as
  `budget_exhausted` in the run record and in the worker state, with the reason "the day's
  runner calls are spent"; `co rem status` says "daily cap reached" where it used to say "the
  last scheduled investigation failed".
- **The same-person stage charges the week once.** Its reservation reads the quota meter right
  before the stage instead of reusing the value read before the investigation, which counted
  the investigation's spend a second time.
- **Archives are never overwritten.** When `.state/archived/<record>` already exists, the next
  archive of the same record is written beside it (`<record>.1`, `.2`, …); tidy, merge, the map,
  the skill map and the native merge plan all use the same rule, aliases record the actual path,
  and readers resolve to the latest copy.

## `co rem logs` agrees with `co rem status` (#2769, #2770)

- A run whose process on this machine is gone is printed as interrupted by `co rem logs`, text
  and `--json`, the way `co rem status` and the reader already showed it.

## Install after publication

```bash
python -m pip install --upgrade 'connectonion==1.9.3rc42'
```
