~singpolyma/cheogram

Allow users to opt-in to JID discoverability

So that we can actually build out this feature and turn it on in a way that
respects users right to not want this.
Merge branch 'stats'

* stats:
  Add stats counter for cmd list fetch
  Add stats counter for adhoc-bot cmd run
  Add stats counter for adhoc-bot msg received
  Add stats counter for service start up
  Add stats counter for malformed cacheobb url
Add stats counter for cmd list fetch
Add stats counter for adhoc-bot cmd run
Add stats counter for adhoc-bot msg received
Add stats counter for service start up
Add stats counter for malformed cacheobb url
Make sure we use cheojid when switching to a new jid
Cache OOB items for outgoing messages

Since backends may want to send these URLs on further.
Allow prev from completed or canceled on ConfigureDirectMessageRoute

Since the proxied backend may use this.
gsasl-haskell uses some deprecated symbols that were removed in gsasl2

So pin to gsasl1
Include the command payload item along with the bot prompt
Do not reflect errors

Never reply to an error with an error, instead just ignore the stanza.
Make forkXMPP safe

Copy the throw-to-parent patter from unexceptionalio.  The biggest improvement
is making sure that we throw syncronous exceptions inside an asyncronous wrapper
in the parent thread.  Otherwise normal error handling logic in the parent might
catch it as though it were thrown locally, resulting in both wrong and confusing behaviour.
Not using this msg
Suggest known gateways as part of registration

Just like we do on the website and planned to do in the android app.
More HasCallStack
die on component connection error
Don't tell a number "not joined" more than once per hour

Real humans will only notice a bit and bots will loops much less.
Logs for service thread deaths and deadlock checks
Next