erio
a9880ee7b9
fix: round-2 audit fixes — security, code quality, and UI improvements
Security (HIGH):
- Normalize all Redis cache keys to lowercase (verifyCode, passwordReset)
- Fix verify code TTL renewal on failed attempts: use remaining TTL via
ExpiresAt field instead of resetting to full 15-minute window
- Add 3 missing fields to diffSettings audit log (promo_code, invitation_code,
custom_endpoints)
Code quality (MEDIUM):
- Extract filterVerifiedEmails shared helper (balance_notify_service.go)
- Add Pricing array non-empty validation for channel pricing rules
- Add platform token semantics comment in gateway_service.go
- Complete validatePlanPatch test coverage (+10 test cases)
- Replace string types with QuotaThresholdType/QuotaResetMode across frontend
- Remove duplicate getPlatformTextColor/getRateBadgeClass in ChannelsView
- Return EMAIL_NOT_FOUND error on RemoveNotifyEmail miss
UI improvements:
- Reorder cost tooltip: user billing above separator, account billing below
- Add NaN guard to accountBilled function
- Move timezone selector inline into reset-mode row (no longer standalone)
2026-04-14 09:35:05 +08:00
..
2026-03-24 19:27:51 +08:00
2026-03-14 17:13:30 +08:00
2026-02-12 03:47:06 +08:00
2026-01-04 15:36:00 +08:00
2026-03-15 11:26:42 +08:00
2026-03-16 04:58:58 +08:00
2026-04-05 17:11:01 +08:00
2026-02-28 15:01:20 +08:00
2026-04-13 07:34:07 +08:00
2026-03-24 19:27:51 +08:00
2026-04-14 09:33:39 +08:00
2026-02-24 16:48:16 +08:00
2026-04-14 09:33:39 +08:00
2026-01-03 06:34:00 -08:00
2026-03-15 17:46:58 +08:00
2026-04-05 17:19:27 +08:00
2026-03-07 19:06:59 +08:00
2026-04-14 09:35:05 +08:00
2026-04-14 09:35:05 +08:00
2026-04-14 09:35:05 +08:00
2026-04-05 17:19:27 +08:00
2026-02-09 10:39:09 +08:00
2026-03-08 06:59:53 +08:00
2026-03-17 19:23:35 +08:00