refactor: budget alerts through core QAlerts on QQQ RC.5 (#28) #31

Merged
KofTwentyTwo merged 1 commits from fix/core-alerts-rc5 into develop 2026-10-14 00:34:21 +00:00
KofTwentyTwo commented 2026-10-14 00:30:07 +00:00 (Migrated from github.com)

Part of #28 (architecture review QRun-IO/qqq#1150, F3).

  • The default QQQ moves from 4.1.0-RC.4 to 4.1.0-RC.5. develop was verified green on RC.5 before the change.
  • BudgetAlerts now calls QAlerts.raise(new AlertSignal(...)) directly; the reflection stand-in is gone. With no alerts implementation installed, core's LoggingAlertSink handles the signals.
  • The qbit producer declares the alert types assistant.budget.warning, assistant.budget.downgraded and assistant.budget.stopped as QAlertTypeMetaData (visibility assistant.admin, subject assistant_budget, with a how-to-fix).
  • Tests: signals go through a test sink (AlertsInstanceMetaData.withSink), and the types are registered. 258 tests are green in ./mvnw verify.
  • Not done here: removing the DataClassification copy and LoopbackUiApiGateway waits for RC.6, as the issue says.

🤖 Generated with Claude Code

Part of #28 (architecture review QRun-IO/qqq#1150, F3). - The default QQQ moves from 4.1.0-RC.4 to **4.1.0-RC.5**. develop was verified green on RC.5 before the change. - `BudgetAlerts` now calls `QAlerts.raise(new AlertSignal(...))` directly; the reflection stand-in is gone. With no alerts implementation installed, core's `LoggingAlertSink` handles the signals. - The qbit producer declares the alert types `assistant.budget.warning`, `assistant.budget.downgraded` and `assistant.budget.stopped` as `QAlertTypeMetaData` (visibility `assistant.admin`, subject `assistant_budget`, with a how-to-fix). - **Tests:** signals go through a test sink (`AlertsInstanceMetaData.withSink`), and the types are registered. 258 tests are green in `./mvnw verify`. - **Not done here:** removing the `DataClassification` copy and `LoopbackUiApiGateway` waits for RC.6, as the issue says. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Sign in to join this conversation.