Registers one health check per enabled assistant provider and per enabled model. The circuit breaker reuses the central result instead of probing local hosts a second time.
assistant.provider.<id>: DEPENDENCY/AI, every 300s (60s for local hosts: Ollama, LM Studio, vLLM, llama.cpp), using checkHealth. Providers without a probe use the persisted breaker state if it is under 10 minutes old, otherwise UNKNOWN.
assistant.model.<id>: DEPENDENCY/AI, every 6h with a 30s timeout. It makes the minimal connection-test call. Usage is recorded as TEST, and the provider cost cap applies (UNKNOWN "skipped: cost cap").
Removed or changed: the home's own provider health and last-test indicators. The home now shows a generic status card that reads central health. The Test connection actions, the lastTest* fields and the breaker are kept. There is also a separate one-line fix: forwarded UI API headers are set instead of appended, which QQQ 4.1 develop requires.
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
12 new health tests; 389 tests in total pass across 7 modules. One pgvector test is skipped because it needs Docker. The repo's existing checkstyle config is unchanged and passes.
Local build: ./mvnw -o verify against RC.8.
Codex implemented this from the spec. I reviewed it and reverted unrelated changes Codex had made to the checkstyle config, the pom and imports.
## Summary
Registers one health check per enabled assistant provider and per enabled model. The circuit breaker reuses the central result instead of probing local hosts a second time.
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**
- `assistant.provider.<id>`: DEPENDENCY/AI, every 300s (60s for local hosts: Ollama, LM Studio, vLLM, llama.cpp), using `checkHealth`. Providers without a probe use the persisted breaker state if it is under 10 minutes old, otherwise UNKNOWN.
- `assistant.model.<id>`: DEPENDENCY/AI, every 6h with a 30s timeout. It makes the minimal connection-test call. Usage is recorded as TEST, and the provider cost cap applies (UNKNOWN "skipped: cost cap").
**Removed or changed:** the home's own provider health and last-test indicators. The home now shows a generic status card that reads central health. The Test connection actions, the `lastTest*` fields and the breaker are kept. There is also a separate one-line fix: forwarded UI API headers are set instead of appended, which QQQ 4.1 develop requires.
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
12 new health tests; 389 tests in total pass across 7 modules. One pgvector test is skipped because it needs Docker. The repo's existing checkstyle config is unchanged and passes.
Local build: `./mvnw -o verify ` against RC.8.
Codex implemented this from the spec. I reviewed it and reverted unrelated changes Codex had made to the checkstyle config, the pom and imports.
🤖 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 one health check per enabled assistant provider and per enabled model. The circuit breaker reuses the central result instead of probing local hosts a second time.
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
assistant.provider.<id>: DEPENDENCY/AI, every 300s (60s for local hosts: Ollama, LM Studio, vLLM, llama.cpp), usingcheckHealth. Providers without a probe use the persisted breaker state if it is under 10 minutes old, otherwise UNKNOWN.assistant.model.<id>: DEPENDENCY/AI, every 6h with a 30s timeout. It makes the minimal connection-test call. Usage is recorded as TEST, and the provider cost cap applies (UNKNOWN "skipped: cost cap").Removed or changed: the home's own provider health and last-test indicators. The home now shows a generic status card that reads central health. The Test connection actions, the
lastTest*fields and the breaker are kept. There is also a separate one-line fix: forwarded UI API headers are set instead of appended, which QQQ 4.1 develop requires.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
12 new health tests; 389 tests in total pass across 7 modules. One pgvector test is skipped because it needs Docker. The repo's existing checkstyle config is unchanged and passes.
Local build:
./mvnw -o verifyagainst RC.8.Codex implemented this from the spec. I reviewed it and reverted unrelated changes Codex had made to the checkstyle config, the pom and imports.
🤖 Generated with Claude Code