ConnectOnionConnectOnion

1.8.8 — tested by strangers

The stable release after 1.8.7. Twelve previews (1.8.8b1 through b12) fed it.

What earns it the stable channel is how it was checked. Five testers installed the published preview into empty profiles — no keys, no history — and used it as a new user would: first run, the browser, every inbox, hosting one agent on two devices, and the experimental commands. What they found was fixed, each fix starting from a test that failed, and the same walks were run again on the next published preview, three times in all (1.8.8b7, b9 and b11). The last walk found nothing in hosting and one thing in benchmarks, fixed in b12.

co schedule check, list, pause, and list again on a demo project

New in 1.8.8

  • One conversation on two devices. A session can be open on a laptop and a phone at once, with the same identity, through the relay too; a turn started on one streams to the other, and switching devices keeps every turn. Every approval or question answer names the request it answers, so a stale tap on one device can never approve a different request on another.
  • Skill benchmarks. co benchmark checks at least five cases written before the skill; co eval run scores the real Agent on them — PASS, FAIL or UNVERIFIED with the evidence — and compares each run with the one before. The agent under test cannot read the expected outcomes, and each attempt is capped at 10 steps; co eval run says what it will spend first.
  • co browser network and cookies, with HAR recording, on the tab names -t already has. Every browser command ends within its deadline, and close always works.
  • co schedule lists, checks, runs, pauses and resumes the entries in .co/schedule.yaml, and one slow entry no longer stops the others.
  • connect() from Python honours its timeout as a deadline, surfaces approvals and questions (on_approval=, on_ask=), can stop() a turn, and names the session when a turn is lost.
  • Gemini image output on LLMResponse.images and a generate_image tool, for direct Gemini keys and OpenRouter.

Experimental, and labelled so

These ship in 1.8.8 and say "Experimental" in every help surface. Their commands may change before they are declared stable:

  • Personal Wiki (co wiki), which becomes long-term supported in 1.9.0. Scheduled runs are confined (Codex without network, Claude Code in acceptEdits) and ask for consent again when what they would do changes.
  • co claude, Claude Code in a ConnectOnion Work Room. Headless runs do not load a cloned repository's settings, hooks or MCP servers.
  • co discord, and listen / receive / reply on co telegram (its send is stable). Tested against fakes, not yet a live bot.
  • co tiktok post plans. Nothing is uploaded.

Fixed since 1.8.7

Each of these was reproduced on 1.8.7 itself; the bugs the previews introduced and fixed along the way are in their notes.

  • A visitor to an agent's Home page saw the owner's recent prompts. Each identity now sees only its own runs, and a bare stranger is refused by rule without an LLM call on the owner's credits.
  • co deploy deleted a server's .venv when it was a symlink, because an rsync filter with a trailing slash matched directories only.
  • co auth status, login and logout all signed you in; on a new machine status created an account. status now only reads, and an unknown word exits 2.
  • co create then python agent.py told you nobody could onboard, because the project's .env was never read. It is, and the port is checked before the banner.
  • Every co outlook calendar read failed on Python 3.10 once an event existed, because Graph writes seven fractional-second digits, and the error blamed the command's arguments. Graph times parse on every supported Python, and a local error is reported in its own words.
  • httpx and pydantic had no upper bound, so the day httpx 1.0 is final an installed 1.8.7 can break (a development build of it already crashes every remote call). Both are capped below their next major.

Known limits

  • In the web client, a session open in two browsers answers approvals only with @connectonion/react 0.4.4-rc.6 or later; older clients are refused rather than guessed.
  • co whatsapp-cloud waits on O API's messaging ingress and is not included.

Install

python -m pip install --upgrade connectonion
co --version    # co 1.8.8

See the preview notes for the full history: 1.8.8b12 back to 1.8.8b1.

View Markdown source

Star us on GitHub

If ConnectOnion saves you time, a ⭐ goes a long way — and earns you a coffee chat with our founder.