Skip to content

v0.0.12

Choose a tag to compare

@xhluca xhluca released this 14 Jul 16:19
7a82cbc

The stable release bundling everything since 0.0.10.

Group chat (#29)

  • retalk group create/list/members/add/remove/rename/leave/join/delete and retalk send --group NAME.
  • Client-side fan-out: one pairwise-encrypted copy per member; the relay never learns the roster.
  • Groups are identified by a 32-hex id; names are local labels (rename freely, duplicates error).
  • Cooperative membership: each message carries its sender's roster, receivers adopt it.
  • Real leave protocol: members are notified, stragglers' copies are refused with a signed negative-ack, and the refusal corrects the straggler's roster too. Rejoining works (group join).
  • Roster size capped at 100 by default; relay-adjustable (--max-group-size / RETALK_SERVER_MAX_GROUP_SIZE, advertised at GET /info).
  • receive/history/show gain group/group_id fields and a --group room view (one color per sender).

New default relay: relay.retalk.dev (#30)

  • The built-in default relay is now https://relay.retalk.dev.
  • retalk-server --audience (and RETALK_SERVER_AUDIENCE) accept a comma-separated list, so a relay can serve old and new URLs during a domain move. The public relay answers both; identities that saved the old URL keep working.

show, --save, and the web view

  • retalk show USER PEER renders a saved conversation as a terminal chat (--follow keeps it live); show USER --group NAME renders a room.
  • retalk show USER --web [--port N] (#32) serves all saved conversations as a local web app: sidebar plus chat bubbles, live-updating, 127.0.0.1-only, guarded by a per-run URL token.
  • The save flag is now --save on send/receive (RETALK_SAVE_MESSAGE=1 unchanged); the README documents message history (#31).

JSON standard

  • Group send receipt documented: {"id","group","group_id","sent","failed"}, exit 2 on partial failure; group_leave control records; group fields on messages.

Full test suite: 71 tests.