Skip to content

Releases: antst/sessionbus

v0.5.4

Choose a tag to compare

@github-actions github-actions released this 14 Sep 12:51
v0.5.4
cade269

Sessionbus v0.5.4

Parent-controlled child tracing

A parent can enable events or content tracing on a fresh or resumed child
with the spawn trace field, or change it using the tool's trace action.
The default is off; only the child's live parent can configure it.

The originating daemon sends one ordinary message to each eligible parent after
the original send settles. Two traced siblings talking to each other produce
one copy for their common parent, including across hosts. Copies identify the
original sender, permitted recipients and delivery outcomes; content also
includes the body. Normal parent delivery and idle-run policies apply. Copies
and their completion pointers do not generate more copies.

Tracing adds no persistence: no history API, journal, disk queue, replay or
durable trace policy. Copy delivery is bounded, best-effort and never delays the
original result. Turning tracing off stops subsequent admissions; previously
admitted remote sends may still produce a copy. Ended parent lifetimes cannot
receive late copies. See the complete contract.

Remote tracing requires updated daemons and hub, plus updated SDK/tool
declarations. Explicit unsupported remote controls return unsupported_trace;
ordinary messaging continues across older links. Optional tracing metadata is
omitted when needed to preserve an ordinary message's frame-size limit.

Communication logging and fixes

  • Daemon communication logging is opt-in through service configuration or CLI
    flags. One structured JSONL stream records explicit sender/target identities,
    message and delivery IDs, and lifecycle outcomes. Content mode writes a
    message's body once per observing daemon; dispatch and receipt rows carry
    metadata. Rotation, filtering and memory bounds are configurable. Logging is
    independent of parent tracing and is not a complete audit or replay store.
  • A delivery rejected before dispatch reports not_submitted. Loss after
    dispatch retains the uncertain no_receipt result (#64).
  • Retained offline lanes can be closed idempotently or forgotten. Forget removes
    only the daemon row; native product history is unchanged (#67).
  • Completion pointers name the public wait and ack actions (#68).

Use the ordinary installers from main; they select the latest stable release.
Product integrations and the JavaScript kit are released separately. The matching
JavaScript kit is @sessionbus/kit@0.1.0-pre.3, which adds the same trace controls
and unsupported_trace error as the Go SDK.

Development build

Development build Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 09 Sep 21:55
78c148b

Built from tested develop. Pin a versioned release for stable installations.

v0.5.3

Choose a tag to compare

@github-actions github-actions released this 13 Sep 23:13
v0.5.3
f33fd9a

Sessionbus v0.5.3

Daemons now reconnect to the hub after connection loss or a hub restart. An unreachable hub no longer prevents local daemon startup; federation retries with bounded backoff. Lost requests are settled without replay, and a new connection does not resurrect remote Worker ownership from the old connection.

Other changes:

  • Bound incomplete incoming hub TLS handshakes to five seconds.
  • Honor Worker cancellation during startup and service; make pre-Serve Call/Shutdown safe. Peer wrappers must consume the separately updated SDK/build to benefit from this change.
  • Configure advertised lane products with SESSIONBUS_PRODUCTS in service.env, or override with -products. Newly created service.env files list claude-peer, codex-peer, grok-peer, kilo-peer, omp-peer, opencode-peer, pi-peer, qwen-peer, and dashi. Existing configuration remains preserved on reinstall. Advertisement does not install binaries or act as a launch allowlist.

Install or update using the normal commands; both select latest stable:

curl -fsSL https://raw.githubusercontent.com/antst/sessionbus/develop/deploy/install-host.sh | sh
curl -fsSL https://raw.githubusercontent.com/antst/sessionbus/develop/deploy/install-hub.sh | sh

Install the hub only on hub hosts. A daemon upgrade restarts its service. Peer resident reconnect changes are distributed separately in the sessionbus-peers development release; this daemon release alone does not update existing wrappers. Half-open network detection still follows the underlying transport, and an interrupted remote operation is not automatically retried.

Validation: Linux/macOS CI, full local Go and SDK race suites, real TLS hub restart/startup-outage tests, admitted request loss/no-replay, handshake timeout, and literal installer/config preservation tests.

v0.5.2

Choose a tag to compare

@github-actions github-actions released this 13 Sep 12:10
v0.5.2
3bc030b

Sessionbus v0.5.2

sessionbus roster now shows online peers and lanes, plus any lane with an
active Run. Offline and retained/archived entries are hidden by default.

sessionbus roster              # online or running entries
sessionbus roster --all        # include offline and archived entries
sessionbus roster --json       # the same default filter in JSON
sessionbus roster --local --all

The filter applies to local and remote hosts in both table and JSON output.
Host errors and incomplete-federation warnings remain visible. CLI help,
README, and operator documentation describe the new default and --all.

This is a CLI change using the existing connected and running fields;
the operator protocol is unchanged. The new CLI can query a v0.5.1 daemon.
Complete remote inventory still requires the roster capability introduced in
v0.5.1 on the hub and federated hosts.

The installers continue to select the latest stable release automatically:

curl -fsSL https://raw.githubusercontent.com/antst/sessionbus/develop/deploy/install-host.sh | sh
curl -fsSL https://raw.githubusercontent.com/antst/sessionbus/develop/deploy/install-hub.sh | sh

Install the hub only where needed. Set SESSIONBUS_VERSION=v0.5.2 on sh to
pin this release. Installation preserves configuration, join keys, and durable
state, and restarts the selected role. Product integrations and SDK packages
remain separately released.

v0.5.1

Choose a tag to compare

@antst antst released this 13 Sep 09:31
v0.5.1
272181e

Sessionbus v0.5.1

This patch restores the operator inventory missing from v0.5.0 and corrects
command help. It also addresses verified release, installation, and lifecycle
findings from the v0.5.0 review.

Operator roster

sessionbus roster
sessionbus roster --json
sessionbus roster --local

The daemon owner can inspect all connected peers and retained lanes across
groups. Federated hosts contribute live metadata when both hub and host support
the new operator capability. Ordinary peer discovery remains group-restricted.
The roster excludes arbitrary peer info, native arguments, prompts, results,
credentials, and ownership tokens. --json uses sessionbus.roster.v1.

Upgrade the daemon for local roster support and the hub plus federated hosts for
complete remote rosters. Mixed-version links remain usable: unsupported remote
inventory is reported explicitly, and incomplete rosters exit nonzero. Use
--local when only local inspection is needed. No daemon reconnection is implied;
restart affected hosts after a hub restart when reconnecting the federation.

Command help

sessionbus --help lists daemon options, roster, secret, environment
settings, and service-management examples. sessionbus-hub --help documents the
hub's actual flags and add-host command. Help and subcommand help exit
successfully without starting services or reading/modifying join keys.

Review fixes

  • Release tags require the exact stable vMAJOR.MINOR.PATCH format.
  • sessionbus-call timeouts now cover initial connection attempts.
  • The example Worker releases native-run state when a delivery receipt fails.
  • Concurrent add-host commands serialize their configuration updates.
  • Legacy retained lanes expose their persistent policy before resume.
  • Protocol documentation agrees on the close deadline and unavailable output.

The installer still defaults to the latest stable release and supports explicit
version pins and operator-selected mirrors.

Install or upgrade

The installers select the latest stable release by default. No version edit is needed:

curl -fsSL https://raw.githubusercontent.com/antst/sessionbus/develop/deploy/install-host.sh | sh
curl -fsSL https://raw.githubusercontent.com/antst/sessionbus/develop/deploy/install-hub.sh | sh

Install the hub only where needed. Set SESSIONBUS_VERSION=v0.5.1 on sh for an
exact version. Installation preserves role configuration, join keys, and durable
state; it restarts the selected role. Linux and macOS archives are provided for
amd64 and arm64. Product integrations and SDK packages remain separately released.

v0.5.0

Choose a tag to compare

@github-actions github-actions released this 13 Sep 08:01
v0.5.0
d9a4f62

Sessionbus v0.5.0

This release packages the Sessionbus host daemon and federation hub. Product
integrations are maintained and released separately in sessionbus-peers.
The JavaScript npm kit and independent Go SDK retain their separate release
versions; the v0.5.0 binary tag does not publish either SDK package.

Install or upgrade

Install the host as your normal login user:

curl -fsSL https://raw.githubusercontent.com/antst/sessionbus/v0.5.0/deploy/install-host.sh | sh

Install the hub only on machines that need the federation router:

curl -fsSL https://raw.githubusercontent.com/antst/sessionbus/v0.5.0/deploy/install-hub.sh | sh

The host archive contains sessionbus, sessionbus-call, and example-peer.
The hub archive contains sessionbus-hub. Both are available for Linux and
macOS on amd64 and arm64, with SHA256SUMS and source revision records.
The installer verifies the archive checksum, preserves existing configuration
and join keys, and replaces only the selected role under ~/.local. It restarts
that role's systemd user service or launchd agent. Run installation while no
owned work needs the connection being restarted.

Default installation selects GitHub's latest stable release. To retain this
exact release as newer versions are published, set SESSIONBUS_VERSION=v0.5.0
on sh. The rolling development prerelease requires an explicit override. No Go or npm is needed to install
the binaries. Native product CLIs and their peer integrations install separately.

Changes

  • Separate checksummed host and hub installers, with persistent join-key setup,
    migration from earlier directory installations, and preserved role configuration.
  • Independent lane lifetime policies and resident run/result ownership, including
    explicit collection, acknowledgment, and bounded unsent delivery staging.
  • Caller wait cancellation that preserves the run and retained result rather
    than interrupting native work.
  • session.list replies identify the calling session through self_info, even
    when filters select a different set of sessions.
  • SDK lifecycle fixes for in-flight Worker Open, duplex connection shutdown,
    canceled RPC correlations, and JavaScript write settlement after stream close.
  • Correct systemd environment-file directives, so preserved service environment
    files are read instead of ignored because of literal quotes.

Compatibility and limits

Upgrade peer/client SDK integrations before upgrading a daemon that introduces
self_info: older strict decoders reject that response field. Updated Go and
JavaScript SDK source accepts omission from older daemons. Coordinate federated
host upgrades as well, since forwarded replies are decoded by each host.

Native product permissions, sessions, and history remain product-owned. This
binary release does not certify every product adapter's acceptance campaign.
In particular, Pi/OMP acceptance results and remaining scenarios belong to the
separate peers repository.

A retiring Worker can close its connection before an in-flight interrupt reply
is written. In that case callers may receive no_receipt while the run's
terminal status is already available; an uncertain receipt is not a success
acknowledgment.

Linux and macOS CI cover tests, race checks, vet, lint, SDK checks, and builds.
Cross-compiled archives alone do not establish native product runtime acceptance
on each platform. Release validation records should name the exact source and
installed artifacts rather than infer them from a moving branch name.

Release validation

Source: d9a4f6298d10e2d0eea93e41266400c57f2183b5 (signed v0.5.0 tag).

CI passed for this source. The Linux amd64 candidate was installed and reinstalled
on the dedicated development host using the permanent host and hub installations.
Both services, role-isolated restarts, host calls, authenticated hub connectivity,
and preservation of existing keys, configuration, and durable state passed.
The initial probe fixture exceeded the Unix socket path limit; its corrected
continuation passed without changing the candidate binaries.

After publication, all eight stable archive checksums passed and their member
bytes, types, and modes matched the tested candidate. Both public bootstrap
scripts were then exercised on the development host with version and download
root overrides unset: latest-default installation, isolated restarts, host calls,
authenticated hub connectivity, cleanup, and preserved private state all passed.