* commands to support introduction
* agent messages / envelopes to support introductions
* introductions and invitations table; insert record with random unique ID
* store class methods and types for introductions
* process INTRO and ACPT commands for connection introductions
* fix tests: add MonadFail constraint, remove OK response to JOIN
* process agent messages for introductions
* ICON notification when introduction is completed
* replace multiway if with case
* correction
* support random connection IDs
* save additional connection fields, refactor create connection funcs
* refactor
* refactor
* test duplex connection with random IDs
* store methods for introductions
* test introduction
* fix parsing of CON agent message
* test introduction with random connection IDs
* broadcast with random connection and broadcast IDs
* clean up sql
* groups agent protocol
* groups to chat protocol
* update groups doc / diagram
* group protocol commands
* update group protocol
* count messages for different group operations
* broadcast and introduction as components for group protocol
* list connections in the broadcast
* protocol commands overview - using polymorphic commands
* another version of group protocol based on "broadcast" and "introduction" concepts
* update number of messages needed to establish connection
* corrections to broadcast and introduction protocols
* corrections in groups protocol
* corrections
* database migrations
* fix: reverse order of down migrations
* use positional parameters in queries
* simplify migrations
* typo
* rename SchemaMigration to Migration
* move store initialization to IO monad
* example websockets server
* example of ws client
* type class TConnection for generic TCP/WebSockets implementation
* support WebSockets transport
* rename TConnection methods
* revert runClient to not need transport arg
* pass the list of ports and transports via SMP server config
* remove TypeApplications
* s/Transport/TProxy/, s/TConnection/Transport/
* fix server with multiple transports, make SMP client use WS transport with port 80 (TODO fallback to WS)
* agent: send CON to user when the 1st party responds HELLO; fix REPLY vulnerability
* test for getRcvConn
* add commented OK response to JOIN command
* store: use Only newtype to select one field
* move SMP server from agent commands NEW/JOIN to agent config
* fix SMPServer parser
* update agent protocol - server management
* enable agent test
* agent test with 2 servers
* create reply queue on the configured server
* choose random server
* swap bind
* adjust out-of-band message abnf
* define hostname and encoded using prose-val
* elaborate on base64
* corrections up to SMP procedure
* fix CONN -> NEW
* update SMP protocol to align with the implementation
* remove Possible extensions from TOC
* lists
* corrections
Co-authored-by: Efim Poberezkin <8711996+efim-poberezkin@users.noreply.github.com>