Add CAD currency, forex cross-pair support, and adventure timer fixes

Forex: add CAD to tracked currencies, add cross-pair syntax (EUR/USD,
EUR|JPY, etc.) for both !fx rate and !fx report with full historical
analysis computed from stored USD-base rates.

Adventure: fix midnight reset silently failing due to SQLite busy
contention with the reminder fire loop — propagate errors so the job
isn't marked complete on failure, add retry with backoff, and add
startup catch-up for missed resets and expired death timers.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
prosolis
2026-03-26 23:38:06 -07:00
parent 9c6ded13fa
commit 1b423b1b16
7 changed files with 370 additions and 32 deletions

View File

@@ -531,8 +531,10 @@ Three activity types across 5 tiers of locations (15 total). Higher tiers requir
|---------|-------------|
| `!stock <ticker>` | Stock quote (Finnhub) |
| `!stockwatch add\|list\|remove` | Stock watchlist |
| `!fx rate [EUR\|JPY]` | Live USD exchange rate + quick signal |
| `!fx report [EUR\|JPY]` | Full analysis (averages, 52w range, buy score) |
| `!fx rate [EUR\|JPY\|CAD]` | Live USD exchange rate + quick signal |
| `!fx rate EUR/USD` | Cross-pair rate from first currency's perspective |
| `!fx report [EUR\|JPY\|CAD]` | Full analysis (averages, 52w range, buy score) |
| `!fx report EUR/JPY` | Cross-pair full analysis with computed history |
| `!fx setalert <currency> <rate>` | DM alert when rate hits threshold |
| `!fx alerts` | List your active alerts |
| `!fx delalert <currency> <rate>` | Remove an alert |