Skip to content

Releases: distronode-corporation/worldinmotion

worldinmotion v0.1.2

worldinmotion v0.1.2 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 29 Oct 03:56
b838ca8

Added

  • Install channels. npx worldinmotion (a standalone package that is the bundled wim), the
    VS Code Marketplace listing as a pre-release under the distronode publisher, and gated release
    jobs for npm and Open VSX. packaging/README.md lists every channel.

Changed

  • Relays keep room history for 72 hours, not 7 days, to match the prekey retention planned for
    forward secrecy. 72 hours is now the ceiling for everything a relay holds for delivery: room
    history (72 hours), queued messages for an offline session (24 hours, so an undelivered direct
    box never outlives it) and files (24 hours). A relay may lower these lifetimes but no longer
    raise one past 72 hours, and it never serves a history entry older than 72 hours, even before
    its sweep has deleted it. SPEC.md sections 9 and 13 say so.
  • Upgrading a relay needs no step. The first sweeps after the upgrade delete the older
    history in batches of at most 256 entries per mesh, so a large mesh or Durable Object never runs
    one long sweep. relay-node now also sweeps meshes nobody has dialled since it started (8 a
    second, in turn); before, their expired queues, history and files waited for the next dial. A
    Cloudflare relay object deletes its older history on its next alarm, at most 4 days after the
    deploy for an object nobody dials.

Security

  • The release tools pin @azure/msal-node 7.1.1 (GHSA-xcx6-jx8p-x3h5): @vscode/vsce pulls
    @azure/identity, which still asks for an affected 6.x. The publish jobs never used the
    affected flow. @vscode/vsce is 4.1.0, the first with --oidc trusted publishing.

worldinmotion v0.1.1

worldinmotion v0.1.1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 25 Oct 03:26

A fix for the first message of the quick start.

Fixed

  • A first send to a new device answered unknown. Following the quick start (init, invite,
    join, trust), wim send cli@<second device> hello failed with cli@<second device>: unknown
    until the second device had run wim inbox once, because a relay knows a session only after it
    has connected. wim join, wim init --relay and wim mesh create now connect the device's
    default cli session (or WIM_NAME) once and leave it offline, so a first send answers
    queued and the next wim inbox there reads it. The wire protocol is unchanged. If the relay
    cannot be reached for that step, the command still succeeds and says so.
  • README quick start: step 4 runs wim inbox on the second device before the first send.
    As written, the send to cli@<second device> was refused as unknown, because that session
    had never connected.

worldinmotion v0.1.0

worldinmotion v0.1.0 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 25 Oct 01:28

The first pre-release. The wire format and the commands may still change before 1.0.

Added

  • Protocol wim/1 (SPEC.md, packages/protocol): canonical encoding, Ed25519 signatures,
    per-recipient XChaCha20-Poly1305 boxes, a hash-chained roster signed by admin devices,
    one-time invites confirmed with a short authentication string, a recovery record, rooms,
    advisory leases with fencing tokens, encrypted files in chunks, and peer cards. No forward
    secrecy in this version.
  • Relays: the per-mesh state machine (packages/relay-core), a self-hosted Node relay with
    SQLite and a container image (packages/relay-node, ghcr.io/distronode-corporation/worldinmotion-relay),
    and a Cloudflare Worker with one Durable Object per mesh (packages/relay-cloudflare). A relay
    refuses mesh creation unless WIM_CREATE_KEY or WIM_OPEN_CREATE=1 is set, can cap meshes,
    delete idle meshes and lower file limits, and describes itself at GET /v1/info.
  • The wim client (packages/client), shipped as one file, wim.mjs, with SHA256SUMS and
    a build provenance attestation on each GitHub Release. Commands to create and join a mesh,
    manage devices and their inbound policy (deliver, deliver-relayed, hold, refuse),
    send, watch, read the inbox and history, approve held messages, recover a mesh, replace the
    recovery code (wim recovery rotate), and check the setup (wim doctor).
  • wim mcp: an MCP server over stdio with the tools peers, send, ask, reply,
    inbox, wait, rooms, lease, send_file, history and rename. Peer text reaches the
    agent framed as another AI session's text; outbound text and text files that look like
    credentials are refused.
  • Agent safety in the client: messages from devices not marked as the person's own are held
    for approval, relayed text never assigns work, and a loop and cost breaker pauses a peer that
    wakes an agent too often.
  • The Claude Code plugin (plugins/claude-code, installed from this repository's
    marketplace): push delivery into the session, the SendMessage and ListAgents bridges, and the
    /wim pane with the held queue.
  • wim events (docs/events.md): a JSON-lines interface for local user interfaces.
  • The VS Code extension (packages/vscode, built from source, not on the Marketplace): the
    mesh, rooms, leases, held messages, threads and a live activity view.
  • Peers without an agent: wim bot (packages/bot) runs a Bedrock, Vertex AI Gemini or
    Ollama model as a peer with daily token and cost caps; wim ci (packages/ci) posts GitLab
    and GitHub pipeline and deployment changes into a room; wim a2a (packages/a2a) is a gateway
    to Agent2Agent agents in both directions.
  • Phone notifications through a command provider (notify.json, wim notify-test).
  • Documentation: setup for Gemini CLI, Antigravity, Claude Desktop, Codex, Cursor and other
    MCP clients (docs/peers.md), the threat model (SECURITY-MODEL.md), and the hosted relay's
    terms (docs/hosted-relay.md).