Skip to content

v0.5.0 — samocall: dynamic bot presence

Choose a tag to compare

@NikolayS NikolayS released this 10 Jun 07:18
3ca3977

Highlights

Project renamed: samoagent → samocall. Binary, npm package, SAMOCALL_* env vars, X-Samocall-* HTTP headers, and the ~/.samocall home dir all follow. GitHub redirects from the old repo name; the samoagent.dev domain is retained during the transition.

Dynamic bot presence. The static camera avatar is replaced by a live, token-gated presence page served by the local callback server and rendered as the bot's camera in the call:

  • samocall presence <listening|thinking|speaking|acting|idle> [message] — update the in-call state; bare toggles update quietly, explicit messages also appear in the Comments lane
  • Live "heard" lane mirrors recent transcript lines without overriding the agent-set state
  • join --presence-bg <sphere|field|static|cycle> — background mode; join --no-presence — opt out entirely
  • join --variant <web|web_4_core|web_gpu> — larger Recall instances for smoother rendering
  • Graceful degradation: if the tunnel serves a browser interstitial (free ngrok, localtunnel), the bot joins without the camera and warns, instead of failing

Security hardening. Read/write presence token split (the URL given to Recall is read-only); header-only /presence.json; constant-time token comparison; tokens passed to the helper server via environment, not argv; loopback bind; 1 MB request body cap.

Quality

  • 324 tests (bun:test), five rounds of multi-agent REV review on PR #21
  • Full changes: #21