ConnectOnionConnectOnion

1.8.8b9 — a schedule you can see and control

An opt-in preview. Stable remains 1.8.7.

co schedule

An agent runs the entries in .co/schedule.yaml on its own clock. Until now the only way to see them was the Home page, and nothing could pause one or run one now. co schedule does both (#1685):

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

  • co schedule lists each entry with its next run, last run, status, the reason a run failed, and the session it produced. --json is for scripts.
  • co schedule check reads the file exactly as the scheduler does and exits 1 naming each entry it would ignore.
  • co schedule run|pause|resume <name> write the scheduler's own state file, never schedule.yaml. The running agent acts on them within a minute, and a pause survives restarts and deploys. The Home page shows paused entries.
  • The help follows the #1643 contract: every page says whether it changes anything, has an example, and names its way back.
  • The file format is documented for the first time: docs/cli/schedule.md (#1680).

One entry no longer stops the others

  • Due entries used to run one after another while holding the tick lock, and a run entry has no time limit. So one slow entry delayed every other entry, and one hung agent turn stopped the whole schedule until a restart. Now each due entry is marked running in the state file and runs as its own task (#1681). If the agent stops mid-run, the next start records that run as failed with the reason.
  • An agent that started with an empty schedule never started its clock, so an entry written later (for example by the agent itself, when asked to "do this every morning") never ran until a restart. The clock now always starts (#1682).
  • co deploy --to sent a local .co/schedule-state.json over the server's, rewinding the server's record of what had run. It is now excluded. The same problem for .co/session_results.jsonl is tracked in #1694.

Also in this preview

  • Wiki runs are confined (#1691). Unattended investigation no longer runs Codex with full access or Claude Code with bypassPermissions while reading mail from strangers. Scheduled runs call the co that installed them.
  • Headless Claude Code no longer loads a cloned repo's settings (#1687). Every run_co_claude launch is back to safe mode. Station browser turns ask the owner again, instead of following Claude's own auto mode.
  • One browser daemon per user (#1684), however they logged in. An upgraded client still finds and closes the old daemon, close ignores display flags, and ps is parsed in the C locale.
  • Experimental labels appear in every help surface (#1688). On providers that cannot do it, edit, delete and react say they refuse.
  • The README leads with the agent CLI harness (#1636).
  • First run tells the truth (#1697). host() reads the project .env, so the invite code co create wrote now works. A taken port is caught before the banner prints, and seven other first-run messages were fixed.
  • The Personal Wiki keeps going (#1690). A week with more than 200 mails loses none of them, a batch that was already written is not paid for twice, one stray file no longer breaks every command, and openpyxl moves into the wiki extra.
  • What is installed is what was tested (#1696). httpx and pydantic are capped below their next major, and the install lines no longer use --pre: an exact pin already admits the preview, and --pre also let pip pick pre-release dependencies such as httpx 1.0, which crashed hosted agents. Internal test docs no longer ship in the wheel.
  • connect().input() honours its timeout (#1700). It surfaces approvals and questions, can stop a turn, and resumes one that dropped.
  • The inbox behaves like its docs (#1698). A send reported as failed stays unsent, negative Telegram ids work, and refused listeners are reported.

Install

python -m pip install --upgrade 'connectonion==1.8.8b9'
co schedule --help

Known limits

  • A hung run entry is isolated, not stopped. A worker thread cannot be killed safely, so the entry shows running until the turn ends or the agent restarts.
  • co schedule finds the project from the current directory. On a server, run it in the agent's directory (/srv/<agent>).
  • There are no Run now or Pause buttons in O Chat or Control Center yet (#1683).

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.