# ConnectOnion 1.9.0a31 (preview)

## Install this preview

Stable remains 1.8.10. The a30 tag did not publish after a concurrent-fetch
test failed in release CI ([#2253](https://github.com/openonion/connectonion/issues/2253));
its full-cohort onboarding changes are included here. Install this opt-in
preview by exact pin, then follow the
[first-run guide](https://docs.connectonion.com/rem#start):

```bash
python -m pip install --upgrade 'connectonion==1.9.0a31'
```

## A Project claim needs its original

A private 90-day first run found Project candidates that cited a coverage guide
or a historical path as though it proved a concrete claim. Project writing now
uses supplied session and repository source IDs or an inspected, pinned file
under the mapped path. A separate read-only turn compares each written claim
with its adjacent retained original before the page replaces its prior version.
Newly cited originals are retained before that audit. The mapped session
folder explains where coding input was routed; it does not prove that work ran
or connect an older request to a later subfolder.

The audit also requires an explicit Project-to-site link before a URL becomes
a confirmed Project Website Fact. A generic “official website” mention in a
mapped session remains unverified. A request for more listings does not prove
more details were collected. Project pages distinguish requests, permission,
implementation, delivery and verified outcomes. An unsupported candidate can
receive at most two source-based corrections; a failed audit preserves the
prior page and its rejected candidate for inspection. See
[#2229](https://github.com/openonion/connectonion/issues/2229),
[#2232](https://github.com/openonion/connectonion/issues/2232),
[#2251](https://github.com/openonion/connectonion/issues/2251), and
[#2254](https://github.com/openonion/connectonion/issues/2254).

The cited-original audit now admits a larger, bounded source packet. A
multi-file Project trial had retained 21 openable originals, but its old shared
budget supplied only 18 and mislabeled the rest missing. The larger packet
reached an actual claim verdict; an over-large audit still returns
`insufficient` and preserves the prior page. See
[#2257](https://github.com/openonion/connectonion/issues/2257).

To revisit one refused Person, Project or Organisation page after changing
its instructions or model, run `co rem investigate PAGE --retry-refused`.
Automatic category runs still skip unchanged refusals; a failed retry leaves
the prior page intact. See [#2242](https://github.com/openonion/connectonion/issues/2242).

## Read the useful part first

Written Project pages place their source-backed purpose before the partial
history note on phones. The dated latest request remains separate from
verified work. The reader also keeps unconfirmed work out of the `OPEN` count,
labels page rewrite time separately from the last mapped session, and keeps
Full memory and sources visible. Phone source and Browse privacy controls
have full touch targets. See [#2231](https://github.com/openonion/connectonion/issues/2231),
[#2250](https://github.com/openonion/connectonion/issues/2250), and
[#2255](https://github.com/openonion/connectonion/issues/2255).

## Trial limits

The private first-run sample mapped 69 People, 18 Projects, 18 Organisations
and 157 Skills. Early source checks refused nine Project candidates and kept
their previous pages.

The final same-page Project retry read 117 relevant
inputs, retained 22 cited originals, and passed its claim audit with no
findings before replacing the prior page. It used 2,583,550 input tokens
(2,348,288 cached) and 31,591 output tokens.

Independent role-based AI
review then opened all 22 originals in the rendered desktop and phone reader,
checked adjacent claims and the phone first fold, and found no remaining
factual or usability P1/P2 in those sampled states. This is not a human-founder
review or a claim that every mapped page is accurate. The full-cohort
concurrent onboarding from the a30 tag has not been remeasured end-to-end in
this a31 sample.
