Skip to content

Releases: peerproblem/onthego

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 17 Oct 04:33
eb13f68

ONTHEGO 0.4.0

This release is about getting set up and moving between devices with less thinking. The handoff engine, file formats, and wire protocol are unchanged from 0.3.1, so 0.4.0 and 0.3.1 devices can hand off to each other.

One command to move

onthego sync <device> compares this workspace with the device's copy and pushes or pulls in the safe direction. It pulls back work you handed off, pushes new local work, does nothing when both sides match, and stops with clear options when both sides changed. --dry-run shows the decision.

Easier setup

  • onthego device add <name> --install detects the device's OS and CPU and copies the matching onthego binary to ~/.local/bin over SSH. The npm package already contains every platform, so servers need neither Node.js nor internet access. onthego device install <name> upgrades a paired device to your version.
  • onthego tailscale checks Tailscale, lists tailnet devices with their online state, and explains what each device still needs. onthego device add <name> --tailscale [user@]<device> pairs by tailnet name. See the new Tailscale guide.
  • install.sh installs the release binary with checksum verification on machines without Node.js:
    curl -fsSL https://raw.githubusercontent.com/peerproblem/onthego/main/install.sh | sh
  • SSH failures now explain the fix: missing keys, unknown or changed host keys, refused connections, unreachable or unresolved hosts, and a missing onthego on the device. They use the documented exit status 4 instead of 1. On an interactive terminal, device add offers to confirm an unknown host key.
  • onthego device path <name> [path] shows or sets where the current project lives on a device, and device list shows it. remote set still works with a deprecation warning.
  • Shell completion with device names: onthego completion bash|zsh|fish.

Quieter, clearer output

  • Agent disclaimers appear once, only when sessions actually travel. Workspace-only handoffs no longer print them.
  • Secret candidates are reported once, with the exact --include-secret command.
  • The cd hint appears only when the workspace landed somewhere else, and the session counts only when sessions were involved.
  • status suggests the next command when the work is on another device. doctor reports SSH, Tailscale, and the device's onthego version.
  • --help groups commands into everyday, setup, and recovery, and init prints the next steps.

Removed

  • The undocumented pass alias for push.
  • Internal planning files and the duplicate example policy from the repository.

Upgrading

npm update -g @jbaehova/onthego, then onthego device install <name> for each SSH device. No migration is needed.

What's Changed

  • 0.4.0: sync command, Tailscale pairing, remote install, clearer setup by @jbaehova in #5

Full Changelog: v0.3.1...v0.4.0

ONTHEGO 0.3.1

Choose a tag to compare

@jbaehova jbaehova released this 16 Oct 06:02

ONTHEGO 0.3.1

This patch protects files that leave the handoff policy and makes native session import recoverable after workspace delivery.

Upgrade both devices

Install @jbaehova/onthego@0.3.1 on both devices before the next peer handoff. New packages use snapshot schema 3 with signed retained_paths and payload_sizes. This version reads schema 2 and 3. Older receivers reject schema 3 packages. Peer negotiation now requires snapshot-v3 and session-scope.

Project policy and handoff receipts stay on schema 2. Recovery state is stored separately. Receipts written with --no-sessions contain the new optional selection.none field and cannot be read after downgrading to 0.3.0.

Rotate previously transferred credentials

If you handed off untracked credential files such as .npmrc with ONTHEGO 0.3.0 or earlier, rotate the corresponding tokens. Their plaintext bytes may remain in both devices' .git/objects, referenced by earlier WIP commits. Garbage collection does not remove objects still referenced by that history. This release does not rewrite or delete existing Git history.

New handoffs exclude these credential candidates automatically. An explicit --include-secret transfers permitted files as encrypted supplemental data outside Git objects. Files that were already managed remain on the receiver when policy stops sending them, with a warning. Actual source deletions still propagate.

Changes

  • Refuse case and Unicode normalization collisions before changing workspace files. Replace individual files and symlinks atomically.
  • Authenticate the manifest before writing payloads. Check signed payload names and exact sizes. Highly compressible valid packages now round-trip.
  • Reject invalid agents and unknown schema 2 policy keys before session selection.
  • Retry failed session imports with the same package or onthego sessions recover. Preserve workspace edits made after delivery, retain every pending import across consecutive failures, and report pending recovery in status and JSON.
  • Pin pending export commits until acknowledgment or expiry so Git GC cannot break offline return handoffs. Pruning uses the workspace lock. Backup listing and undo work without a valid policy file.
  • Add --no-sessions and --session-conflict. Keep --sessions as a deprecated alias. Validate dry-run options consistently and report omitted local checks.
  • Fail explicitly requested missing session IDs. Report malformed sessions and adapter failures without blocking healthy adapters. Import only touches agent homes actually present in the package.
  • Cancel stalled peer stdin reads promptly, limit their size, restore default behavior for a second interrupt, and forward npm launcher signals without leaving a native child behind.
  • Escape terminal control characters in text output. Distinguish internal failures (E_INTERNAL, exit 1) and cancellation (E_CANCELED, exit 130) from input errors.
  • Update compression and cryptography dependencies, build releases with Go 1.27.2, pin workflow actions and run scheduled vulnerability checks.

See the README for commands and the complete public error-to-exit-status table.

Full Changelog: v0.3.0...v0.3.1

ONTHEGO 0.3.0

Choose a tag to compare

@github-actions github-actions released this 16 Oct 04:44
fcdc8d6

ONTHEGO 0.3 carries unfinished Git work and native Codex CLI or Claude Code histories directly between your own computers. SSH connects the devices; no ONTHEGO account or central server is required.

Changes

  • Git WIP trees preserve staged and unstaged bytes. Incremental bundles transfer missing objects.
  • In-place application preserves destination Git settings, hooks, local dependencies, and directory inodes. Bounded Git backups support backups list, backups prune, and undo.
  • Recent-session selection, byte-preserving path remapping, malformed-tail handling, and explicit conflict policies keep session problems from blocking a workspace handoff.
  • Mutual identity pairing, protocol negotiation, per-project remote paths, and per-peer receipts support repeatable transfers and lost-acknowledgment recovery.
  • Kernel locks, signal cancellation, private temporary storage, excluded-secret output, and structured JSON errors improve recovery and automation.

Install and migrate

npm install -g @jbaehova/onthego@0.3.0

Install the same version on both devices. The package includes macOS and Linux binaries for arm64 and amd64. Native binaries and SHA256 files are also attached below.

Snapshot schema 2 replaces the unreleased patch-based development format. Recreate old .otg packages with 0.3. The retired 0.1 cloud workflow is unsupported, and its npm releases are deprecated. See migration and installation and pairing.

Validation

The release gate runs macOS and Ubuntu checks, race detection, demo, SIGINT recovery, native-agent resume, and real Linux SSH E2E. Codex 0.163.0 and Claude Code 2.1.301 resume generated sessions and committed fixtures after production adapter export/import. Compatibility uses the real CLIs with a localhost model provider and does not copy authentication or global databases.

A local macOS benchmark used 100,000 ignored files per device, 1 GiB Git history, and 500 sessions. Initial push took 28.7752 seconds. Incremental push took 2.6628 seconds with 56 KiB disk growth; return pull took 3.4435 seconds with 64 KiB growth. All ignored-file inodes and destination Git settings survived. These are fixture measurements, not a general performance guarantee. See validation evidence.

Reviewed through #1, #2, #3, and #4.

v0.1.3

Choose a tag to compare

@github-actions github-actions released this 19 Sep 06:51

The Contabo deployment now defaults to HTTPS port 443 with restricted systemd port-binding capabilities. Deployment tooling reads credentials only from the repository root .env, verifies the target and TLS pin before updating, and enables a daily certificate expiry check.

The CLI now rejects expired or not-yet-valid pinned certificates. onthego init ignores *.env files, and capture treats files such as vps.env as secrets.

Validation: Go tests and vet, certificate validity regression tests, guarded live server deployment, and a successful Daytona pass → status → pull flow with a real GPT-5.6 Luna high summary and matching artifact SHA-256.

npm install -g @jbaehova/onthego@0.1.3

Certificate replacement still requires updating client pins. The daily expiry check records a systemd failure within 30 days of expiry; it does not automatically rotate certificates or send notifications.

v0.1.2

Choose a tag to compare

@github-actions github-actions released this 19 Sep 06:34
ONTHEGO v0.1.2

ONTHEGO v0.1.1

Choose a tag to compare

@github-actions github-actions released this 19 Sep 06:29

ONTHEGO Phase 1 adds explicit project initialization and automatic project-scoped session handoff for Codex, Cursor, Hermes, and Claude.

Install:

npm install -g @jbaehova/onthego

Public commands: onthego init, login, pass, status, and pull.