Merge branch 'finish-btc' * finish-btc: No more legacy session for BTC Do not lose WebRegisterManager on retart
No more legacy session for BTC Set the same key as web register manager, so that on next register jmp.chat the tel we were using in this flow will be used. Not needed if they came from web register, but will still extend expiry in that case and no harm. Clean up pending tel key on Finish.
Do not lose WebRegisterManager on retart Store web registrations in redis. Set an expiry so they don't grow in RAM forever as they previously would have without a restart.
Customer always has a JID
Merge branch 'command-object' * command-object: ErrorToSend => FinalStanza Since Command#finish causes an error, a then off the end won't work Refactor commands to have Command and Command::Execution objects
ErrorToSend => FinalStanza
Refactor commands to have Command and Command::Execution objects Brings the common elements of all commands together, and threads the most useful state (such as ability to reply) through automatically using the new EMPromise fiber trampoline.
Merge branch 'logging' * logging: Slightly better logging
Slightly better logging Import structured logging gem ougai and replace current use of puts/warn with logging calls. Gives us level, timestamp, and formatting for exceptions and/or hash of arbitrary context data. Can do JSON logging if we ever need that, but set to human-readable (with colour if isatty) for now.
On SGX register! failure, return a useful error to user
Alt registration payment wording
No more "choose next" Instead, adhoc bot will show the options for actions to take
Set catapult_fwd_timeout on our backend-facing JID Not on our inbound-facing JID. This is why we shouldn't be mucking in the SGX's Redis at all...
Fix Invites with Empty Guard Turns out every user will start with no attempts, and the code wasn't handling that case. Oops.
Cheogram should not save the route since signup is not done
Signup should work if rate center lookup fails
Allow using pay-by-mail or eTransfer during register Just gives them the information and we're done. Support has to manually process these payments anyway.
Add btc_addresses to Customer And use that in registration instead of implementing it inline
Merge branch 'bitcoin-tmp' * bitcoin-tmp: Save legacy session for Bitcoin flow