ConnectOnionConnectOnion

ConnectOnion 1.9.2b6 (beta)

Install this preview

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

python -m pip install --upgrade 'connectonion==1.9.2b6'

The second pass goes deeper

A page's second investigation reads its material in rounds, and each round may ask for follow-up mail searches: the reply to a request, how two people met, a name from a thread. On the 1.9.2b3 trial notebook (the owner's real mail, 2026-10-10) those searches did not do their job:

Measured on the 1.9.2b3 trial
Round investigations 16
Of which lost every follow-up search to Outlook HTTP 400 (fixed in 1.9.2b4) 5
Follow-up results on one round that were newsletters and digests 19 of 19
Final rounds that answered NO CHANGE 6 of 17
Person pages saying "not established" outside Uncertainties 56 of 87
co rem logs --usage traceback
  • Searches run since 1.9.2b4, which escapes the model's phrase quotes inside Outlook's own. This beta measured the searches that then ran.
  • Answers come from people the notebook knows. A result whose sender is not a mapped person or the owner, or looks automated (noreply, newsletter, digest), is left out of what the model is handed.
  • One editing round, named by code. After the final round, the lines that still say what is not known (not established, is unknown, not confirmed, …) outside Uncertainties and Sources are counted. If any remain, one more turn lists them by section and asks for each to be rewritten as what the material does establish, moved under Uncertainties (five at most) or deleted. The run record keeps hedged_lines: [before, after], and the final-round note now says that NO CHANGE is only right when the page already reads as one account.
  • co rem logs --usage reads a run whose instruction size was recorded as one number (156 skill runs on the trial notebook) instead of crashing.

Measured on one page, live

The same page (Nina, 182 Outlook and 3 Gmail messages, --days 730) was investigated with this beta's code on a copy of the trial notebook, then the editing round was run once more on its own after the last fix:

1.9.2b3 trial pass this beta, full pass editing round alone
Rounds 4 7 + editing 1
Wall clock 888 s 1,272 s 40 s
Input tokens (cached) 6.97M (6.41M) 6.03M (5.37M) 108k (87k)
Follow-up queries refused (HTTP 400) 5 of 5 0 of 8 (quotes stripped; 1.9.2b4 escapes them instead) —
Search results handed to the model 19, all digests 12, 4 bulk senders —
Hedged lines outside Uncertainties, before → after 9 → 9 10 → 10 10 → 0

The full pass is the row that found the two remaining problems. Its editing round still carried the investigation's context items, and the model treated it as one more evidence round: it opened the evidence files, added two sources and a new "not evidenced" line. Four of twelve search results were a beehiiv newsletter and a bulk founders@ mailout that the no-reply test does not catch. Both are fixed in this beta: the editing round now carries the page and the list of lines, nothing else, and made the ten edits in 40 seconds with every citation kept; a search answer has to come from a mapped person or the owner.

A slot on a sleeping laptop

The second live test with this beta's wheel (another person, 59 messages) started at 22:19 and was still "writing investigation" at 23:40 with three stages done. The Mac had entered Maintenance Sleep at 22:31 and woke for 45 seconds an hour; the Codex turn advanced only in those windows, and every deadline (co ai --timeout, the runner's subprocess timeout) paused with the clock, because both count monotonic time, which stops in sleep. A 03:00 slot on a laptop is the same run. The launchd job now runs under caffeinate -i: no idle sleep while the job's process lives, and nothing longer. Reinstall the schedule with co rem start --yes to pick it up.

Verification and limits

  • Each fix has a regression test that failed before it; the co rem unit suite passed (1,639 tests across the rem files) on this branch, rebuilt on 1.9.2b5.
  • The editing round is one turn, once per investigation. It fixes the lines it names; it does not re-read the material, so a hedge that is wrong because the reply was never searched stays until the next pass asks for that search.
  • A search answer from someone the map has never seen (a third party named in a thread, a first contact from before the map's window) is left out; that lead stays open until the person is mapped.
  • The editing round was measured on one page, once; the full-pass numbers above are one run each, not a sample.
  • Not changed: how the nightly round chooses pages, the round cap, or the first run. A run interrupted by a lid closed by hand still pauses; its deadlines resume with the clock.

View Markdown source