Skip to content

Yobiru 0.4.4 — service stability and transport diagnostics

Choose a tag to compare

@guo-yu guo-yu released this 12 Oct 17:35

Fixes

  • Stable service Python paths (#9, fixes #7): receiver and update-reminder templates preserve interpreter symlinks and virtual environments. For a reported Homebrew Cellar executable, a verified same-file stable path within the same prefix is used when available. Explicit receiver --python overrides remain unchanged.
  • Actionable transport diagnostics (#10, fixes #8): timeouts and connection errors include the peer, resolved endpoint and a bounded tailscale ping suggestion. Send failures include the message ID and explain that delivery is unknown; check the recipient's inbox before sending again. There is no automatic retry or Tailscale restart. Local file errors remain distinct, and malformed HTTP response contents are excluded from diagnostics.

Upgrading

Update the plugin, install its durable runtime with install-runtime --upgrade --apply, and restart the receiver. If the Codex bridge is installed, follow the upgrade skill with the same session UUID, socket and Codex home. Preserve existing data, agents, webhooks, permissions and custom instructions.

Existing service definitions are not rewritten automatically. On macOS, regenerate and reload the receiver definition with service-template launchd and any installed reminder definition with update reminder-template launchd (retain --retry-notices if used). Review the interpreter and plugin script paths before loading them. The separate macOS Codex bridge installer is outside this service-template fix.

Verification

The release tree passed 191 plugin tests and 132 bridge/resident/installer tests. Packaging consistency, deterministic archives, private-data checks and Python 3.8 syntax parsing passed.

Homebrew regression tests simulate an upgrade and old-keg cleanup on Linux and execute saved interpreter paths; a real isolated virtual environment is also covered. Native macOS/launchd upgrades and the reported stale Tailscale/DERP path were not reproduced. The transport tests include a real loopback receiver accepting a message and withholding its response.