email.provider.<id>: DEPENDENCY/EMAIL, 300s, one per active provider. It uses the passive health state from real sends (UNHEALTHY is DOWN). The transport SPI has no non-sending connectivity method, so the check does no network I/O. The last failure message is never copied, because it can contain recipients.
email.readiness: DEPENDENCY/EMAIL, 300s. Runs EmailApi.readiness for each category; not ready is DEGRADED, with the failed check names as details.
Removed or changed: the home's standalone provider-health list, replaced by a generic status widget that reads central health. Passive health and the email.provider.unhealthy alerts are kept.
Secrets, credentials, recipients, prompts and PHI never go into details. A sentinel test covers every check's failure paths.
QQQ 4.1.0-RC.8
This PR pins QQQ 4.1.0-RC.8, which ships the central health kernel (QRun-IO/qqq#1207), and merges in develop (help bundles, foreign keys). The merge conflicts are resolved so that both sides are kept.
Tests
297 tests pass. Coverage is 95.4% of instructions and 100% of classes.
Local build: ./mvnw -o verify against RC.8.
Codex implemented this from the spec. I reviewed it.
## Summary
Registers email provider and readiness checks with the core health registry.
This is the qbit side of QQQ central health monitoring (spec `docs/specs/HEALTH.md`, QRun-IO/qqq#1199; kernel QRun-IO/qqq#1207).
**Checks registered**
- `email.provider.<id>`: DEPENDENCY/EMAIL, 300s, one per active provider. It uses the passive health state from real sends (UNHEALTHY is DOWN). The transport SPI has no non-sending connectivity method, so the check does no network I/O. The last failure message is never copied, because it can contain recipients.
- `email.readiness`: DEPENDENCY/EMAIL, 300s. Runs `EmailApi.readiness` for each category; not ready is DEGRADED, with the failed check names as details.
**Removed or changed:** the home's standalone provider-health list, replaced by a generic status widget that reads central health. Passive health and the `email.provider.unhealthy` alerts are kept.
Secrets, credentials, recipients, prompts and PHI never go into details. A sentinel test covers every check's failure paths.
## QQQ 4.1.0-RC.8
This PR pins QQQ 4.1.0-RC.8, which ships the central health kernel (QRun-IO/qqq#1207), and merges in develop (help bundles, foreign keys). The merge conflicts are resolved so that both sides are kept.
## Tests
297 tests pass. Coverage is 95.4% of instructions and 100% of classes.
Local build: `./mvnw -o verify ` against RC.8.
Codex implemented this from the spec. I reviewed it.
🤖 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
Registers email provider and readiness checks with the core health registry.
This is the qbit side of QQQ central health monitoring (spec
docs/specs/HEALTH.md, QRun-IO/qqq#1199; kernel QRun-IO/qqq#1207).Checks registered
email.provider.<id>: DEPENDENCY/EMAIL, 300s, one per active provider. It uses the passive health state from real sends (UNHEALTHY is DOWN). The transport SPI has no non-sending connectivity method, so the check does no network I/O. The last failure message is never copied, because it can contain recipients.email.readiness: DEPENDENCY/EMAIL, 300s. RunsEmailApi.readinessfor each category; not ready is DEGRADED, with the failed check names as details.Removed or changed: the home's standalone provider-health list, replaced by a generic status widget that reads central health. Passive health and the
email.provider.unhealthyalerts are kept.Secrets, credentials, recipients, prompts and PHI never go into details. A sentinel test covers every check's failure paths.
QQQ 4.1.0-RC.8
This PR pins QQQ 4.1.0-RC.8, which ships the central health kernel (QRun-IO/qqq#1207), and merges in develop (help bundles, foreign keys). The merge conflicts are resolved so that both sides are kept.
Tests
297 tests pass. Coverage is 95.4% of instructions and 100% of classes.
Local build:
./mvnw -o verifyagainst RC.8.Codex implemented this from the spec. I reviewed it.
🤖 Generated with Claude Code