Skip to content

v0.2.0 — CLI Tool & Foundation

Choose a tag to compare

@theuseless-ai theuseless-ai released this 10 Mar 11:45
· 33 commits to master since this release
8ad7595

msg-gateway v0.2.0

Second release — introduces the gw-cli command-line client, Cargo workspace restructure, and major feature additions across the gateway.

Binaries

Binary Size Description
gw-server 13M Gateway server (renamed from msg-gateway)
gw-cli 6.6M CLI client for chat, admin, and agent integration

Highlights

gw-cli — New CLI Tool

  • Interactive chat REPL (gw-cli chat) with WebSocket streaming
  • One-shot send (gw-cli send) — pipe-friendly, reads from stdin or --text
  • WebSocket listener (gw-cli listen) — streams JSONL for agents and scripts
  • Credential management (gw-cli credentials list/create/activate/deactivate)
  • Health check (gw-cli health) — exit code 0/1 for scripting
  • TTY-aware output: human-readable on terminal, JSON when piped
  • Environment variable support: GATEWAY_URL, GATEWAY_TOKEN, GATEWAY_ADMIN_TOKEN

CEL-Based Guardrails

  • Inbound message filtering with CEL expressions
  • Hot-reload: rule changes apply without restart
  • Actions: block (reject with 403) or log (audit only)
  • XDG-compliant config path resolution

OpenCode Backend (Built-in)

  • REST + SSE integration with session management
  • File attachment support and long response handling
  • Fire-and-forget with SSE response delivery

Named Backends with Per-Credential Routing

  • Multiple backend instances (e.g. separate Pipelit + OpenCode)
  • Each credential routes to a specific named backend
  • External backend subprocess protocol

Other Improvements

  • Cargo workspace restructure (gw-server + gw-cli)
  • File upload API with multipart support
  • Message format redesign: files[], extra_data, reply_to_message_id
  • E2E test framework with Cucumber-JS (19+ scenarios)
  • External backend adapter subprocess protocol
  • Comprehensive documentation updates

Upgrade Notes

  • Binary renamed: msg-gatewaygw-server
  • Config route fields changed: workflow_id/trigger_idworkflow_slug/trigger_node_id (to match Pipelit API)
  • New config fields: guardrails_dir, backends_dir, backend_port_range

Full Changelog

v0.1.0...v0.2.0