ConnectOnionConnectOnion

ConnectOnion 1.9.3rc21 (release candidate)

REM can now use Codex Scheduled for daily upkeep on an eligible Mac. Run co rem start to apply it, then co rem status to check registration and runs. Keep Codex desktop open and the computer awake. Completed maintenance conversations archive to keep recent work clear.

This is an opt-in preview; stable remains 1.9.2. After publication, install the exact package with pip install connectonion==1.9.3rc21 on Python 3.11+. Codex notebooks with the app installed and a matching computer/notebook timezone use the native timer. Other runners, headless Macs and different saved timezones keep launchd. Review the source summary before approving a new notebook.

Migration and compatibility

A paused native task must be registered before the old launchd timer is removed. The final handoff holds REM's maintenance lock and verifies that launchd is no longer loaded. Running old work, failed registration and failed unload keep the previous clock; a failed update restores an existing definition. Native wrapper and internal REM conversations archive after completion, retaining their IDs.

The adapter uses the desktop's adopted local automation file. It adds no public App Server RPC and does not bypass native caller authentication.

The tested desktop's explicit timezone path calculated incorrect offsets. This preview uses its local wall-clock path, selecting exact hour/minute pairs, and retains launchd for other saved timezones, headless Macs and other runners. Its fallback note explains the boundary. DST gaps move by the gap and repeated hours are served once. After changing saved times, runner or the computer timezone, status asks for co rem start to apply the new schedule.

Status checks the actual native index and application process. It distinguishes an unadopted definition, first execution not yet verified, a late trigger and a failed REM pass. Native startup may spend several minutes in initialization; file existence and a short observation timeout are not execution evidence.

On the tested Mac, three native timer runs executed an isolated Python marker and automatically archived. A separate actual native timer invoked the pinned REM CLI against an isolated notebook with no enabled body sources, recorded no_change and archived its outer thread. The owner's clock was migrated after a supported graceful interrupt of an 85-minute historical-session scan; served slot history was preserved and the old launchd clock was verified unloaded. The next production pass remains distinct from that isolated acceptance.

The acceptance record tracks exact checks, publication and remaining gaps. Native desktop visuals, remote project layout, sleep/wake and a long overnight production run are not established by these tests. The file adapter was exercised on Codex desktop 26.924.22138; future storage or ownership modes need revalidation. There is no native scheduling support claimed for Linux or Windows in this preview.

Stable remains 1.9.2. Python 3.11+, cryptography 50.0.2, Pillow 13.0.0, pypdf 6.21.2 and Paramiko 5.1.0 floors are retained. Python3.10 cannot take these previews; use a supported interpreter for this release line. Package publication is complete only when the matching PyPI version and GitHub prerelease are public.

This candidate also inherits the reviewed rc18 mailbox CLI already merged on main: discover hosted domains and add aliases without replacing account defaults. See rc18 notes for that scope and its operational acceptance.

The package also inherits the reviewed rc19 email setup regression and installation acceptance already on main; see rc19 notes.

Long tasks must wait for the actual CLI exit status before the native model ends its turn. A production probe exposed premature reporting; the explicit waiting contract passed a real180-second native execution with archive after completion. Hour-long production acceptance remains separate from that controlled test.

It also inherits rc20's already-owned mailbox setup fix; see rc20 notes.

View Markdown source