`email.readiness` DEGRADED now reads e.g. "Brand postal address is not set (Email > Brand > open the default brand > Postal address). Needed for marketing email footers; transactional email is unaffected." instead of "Email configuration incomplete" plus a bare code.
`failedChecks` detail unchanged; new `howToFix` detail carries the same text. Message capped at 500 chars, details at 4096.
Transactional readiness and sends are unaffected: only MARKETING checks the postal address (EmailApi readiness, EmailLayout footer).
Test
`EmailHealthChecksTest.readinessAcrossCategories` asserts the new message and detail; full `./mvnw verify` passes (28 suites, 0 failures).
## Summary
- \`email.readiness\` DEGRADED now reads e.g. "Brand postal address is not set (Email > Brand > open the default brand > Postal address). Needed for marketing email footers; transactional email is unaffected." instead of "Email configuration incomplete" plus a bare code.
- \`failedChecks\` detail unchanged; new \`howToFix\` detail carries the same text. Message capped at 500 chars, details at 4096.
- Transactional readiness and sends are unaffected: only MARKETING checks the postal address (EmailApi readiness, EmailLayout footer).
## Test
- \`EmailHealthChecksTest.readinessAcrossCategories\` asserts the new message and detail; full \`./mvnw verify\` passes (28 suites, 0 failures).
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
Test
🤖 Generated with Claude Code