Repository navigation
Releases: distronode-corporation/worldinmotion
Releases · distronode-corporation/worldinmotion
Release list
worldinmotion v0.1.2
Added
- Install channels.
npx worldinmotion(a standalone package that is the bundledwim), the
VS Code Marketplace listing as a pre-release under thedistronodepublisher, and gated release
jobs for npm and Open VSX.packaging/README.mdlists 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.mdsections 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-node7.1.1 (GHSA-xcx6-jx8p-x3h5):@vscode/vscepulls
@azure/identity, which still asks for an affected 6.x. The publish jobs never used the
affected flow.@vscode/vsceis 4.1.0, the first with--oidctrusted publishing.
worldinmotion v0.1.1
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> hellofailed withcli@<second device>: unknown
until the second device had runwim inboxonce, because a relay knows a session only after it
has connected.wim join,wim init --relayandwim mesh createnow connect the device's
defaultclisession (orWIM_NAME) once and leave it offline, so a first send answers
queuedand the nextwim inboxthere 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 inboxon the second device before the first send.
As written, the send tocli@<second device>was refused as unknown, because that session
had never connected.
worldinmotion v0.1.0
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 unlessWIM_CREATE_KEYorWIM_OPEN_CREATE=1is set, can cap meshes,
delete idle meshes and lower file limits, and describes itself atGET /v1/info. - The
wimclient (packages/client), shipped as one file,wim.mjs, withSHA256SUMSand
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 toolspeers,send,ask,reply,
inbox,wait,rooms,lease,send_file,historyandrename. 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
/wimpane 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
commandprovider (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).