Summary
- update the insufficient-balance email template so low-credit warnings read as low-credit warnings instead of invoice failures
- render the balance and metering-provided add-credits URL in both HTML and text bodies
- point the low-credit warning CTA at the dashboard billing hash route
Fixes #270
Test plan
cargo test -p email-service test_insufficient_balance_email_uses_low_balance_context -- --nocapturecargo test -p email-servicecargo test -p meteringcargo clippy -p email-service -p metering --all-targets --all-features(passes with pre-existing warnings)git diff --check
## Summary
- update the insufficient-balance email template so low-credit warnings read as low-credit warnings instead of invoice failures
- render the balance and metering-provided add-credits URL in both HTML and text bodies
- point the low-credit warning CTA at the dashboard billing hash route
Fixes #270
## Test plan
- `cargo test -p email-service test_insufficient_balance_email_uses_low_balance_context -- --nocapture`
- `cargo test -p email-service`
- `cargo test -p metering`
- `cargo clippy -p email-service -p metering --all-targets --all-features` (passes with pre-existing warnings)
- `git diff --check`