Detect refund/suspension status changes and generate notifications
stored in Redis. Bell icon in navbar shows unread count badge,
click to expand dropdown with dismiss per-item or read-all.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Backend check-claude-payment accepts optional emails list
- Frontend sends filtered emails when filter is active
- Button label updates to show current filter scope
- Add project skill for development guidance
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Add refund_received column to claude_payment_status table
- API endpoint POST /api/tools/refund-received/{email} to toggle
- Clickable badge in table to mark refund as received/not received
- Filter options: refund received / refund not received
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Add Redis service (docker-compose) for caching accounts, messages, payment status
- Cache accounts list (5min), messages (3min), payment status (10min)
- Auto-invalidate cache on import/delete/payment-check/note-update
- Add refresh button to email list panel (force re-fetch from IMAP)
- Messages API supports refresh=true param to bypass cache
- New cache.py module with RedisCache class
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>