Migrate Telex users to Wirebot with automatic Docker updates - #2
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Telex 0.0.35 migrates existing 0.0.34 instances to Wirebot on their next service start. It installs or starts local Docker, preserves the original Telex files, and runs a migrated copy with the same Telegram bot, Codex login, conversations, thread mappings, memories, schedules, settings, and workspace.
After migration, a systemd timer/oneshot service or launchd StartInterval job disables and stops the old Telex service. No updater process remains between checks. A small POSIX shell script pulls and compares the image; Node runs only for the first notification, a changed image, or recovery, then exits. Docker keeps Wirebot running independently.
Image replacements pull before stopping, snapshot the stopped data, and restore both image and data if startup fails. Durable checkpoints recover interrupted updates. Users receive the migration announcement after the replacement job is installed and Wirebot's connectors, scheduler, and Codex health are ready; successful notifications are recorded per recipient.
The copied default Codex workspace sandbox becomes Wirebot's container sandbox; approval policy stays unchanged. Docker installation needs root/passwordless sudo on Linux, or existing Homebrew/Docker Desktop on macOS. Missing prerequisites retain native Telex. README documents opt-out, storage, service management, and recovery. This PR prepares the release; it does not publish v0.0.35 or migrate live users.
Validation passed: local typecheck/lint, build, migration/rollback/checkpoint tests, shell no-op/failure/recovery checks, macOS plist validation, and the existing E2E CLI entry point. CI also passed retirement of a real systemd service, verified that the oneshot job exits with no process left, and booted the published Wirebot image against a simulated Telegram API to check mounted data, readiness, and snapshot restoration under
/root. Final-commit CI: https://github.com/sadfun/telex/actions/runs/34063546681. No real Telegram or ChatGPT credentials are used.