URGENT. qbit-slack 0.1.0-RC.1 through RC.3 fail to start on QQQ 4.1.0-RC.7. The cause is in SlackPreferencesAdapter.register: it was written against the #1162 stand-in, and it reflected UserPreferencesMetaData.withSection(String,String,QCodeReference), which the real RC.7 SPI doesn't have. This blocks kof22 WB#222 and #212.
Fix
Build against QQQ 4.1.0-RC.7.
Preferences. I deleted the reflection adapter. The new SlackPreferencesProvider uses the real SPI directly: UserPreferencesMetaData.ofOrWithNew(...).withSection(...).
The section shows a read-only connections list.
Its actions are Connect Slack, Install for my organization, Send me a test message and Disconnect, filtered by permission.
Patches are rejected.
It's registered only when the core classes exist, guarded with ClassNotFoundException | LinkageError only. Real configuration errors still surface.
RC.7 has no redirect result, so Connect returns the authorize URL in UserPreferenceActionResult.message.
Messaging (#1194). The stand-in is replaced with the RC.7 rich messaging fields. The QBIT_SLACK provider now declares its capabilities and returns status, message id and reasons.
New tests:
SlackStartupTest: produces the qbit on RC.7, checks that QInstanceValidator passes, and checks that the slack section is registered.
SlackPreferencesTest: the section only shows the owner's connections, actions are filtered by permission, a PATCH is rejected, and Connect and Install return the URL.
verify is green locally: 175 tests, 91.3% instruction coverage. The remaining stand-ins are #1142 (classification tokens), #1198 (help) and #1205 (delivery, unreleased).
**URGENT.** qbit-slack 0.1.0-RC.1 through RC.3 fail to start on QQQ 4.1.0-RC.7. The cause is in `SlackPreferencesAdapter.register`: it was written against the #1162 stand-in, and it reflected `UserPreferencesMetaData.withSection(String,String,QCodeReference)`, which the real RC.7 SPI doesn't have. This blocks kof22 WB#222 and #212.
## Fix
- **Build** against QQQ 4.1.0-RC.7.
- **Preferences.** I deleted the reflection adapter. The new `SlackPreferencesProvider` uses the real SPI directly: `UserPreferencesMetaData.ofOrWithNew(...).withSection(...)`.
- The section shows a read-only connections list.
- Its actions are Connect Slack, Install for my organization, Send me a test message and Disconnect, filtered by permission.
- Patches are rejected.
- It's registered only when the core classes exist, guarded with `ClassNotFoundException | LinkageError` only. Real configuration errors still surface.
- RC.7 has no redirect result, so Connect returns the authorize URL in `UserPreferenceActionResult.message`.
- **Messaging (#1194).** The stand-in is replaced with the RC.7 rich messaging fields. The `QBIT_SLACK` provider now declares its capabilities and returns status, message id and reasons.
- **New tests:**
- **`SlackStartupTest`**: produces the qbit on RC.7, checks that `QInstanceValidator` passes, and checks that the `slack` section is registered.
- **`SlackPreferencesTest`**: the section only shows the owner's connections, actions are filtered by permission, a PATCH is rejected, and Connect and Install return the URL.
`verify` is green locally: 175 tests, 91.3% instruction coverage. The remaining stand-ins are #1142 (classification tokens), #1198 (help) and #1205 (delivery, unreleased).
Codex implemented this; 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.
URGENT. qbit-slack 0.1.0-RC.1 through RC.3 fail to start on QQQ 4.1.0-RC.7. The cause is in
SlackPreferencesAdapter.register: it was written against the #1162 stand-in, and it reflectedUserPreferencesMetaData.withSection(String,String,QCodeReference), which the real RC.7 SPI doesn't have. This blocks kof22 WB#222 and #212.Fix
SlackPreferencesProvideruses the real SPI directly:UserPreferencesMetaData.ofOrWithNew(...).withSection(...).ClassNotFoundException | LinkageErroronly. Real configuration errors still surface.UserPreferenceActionResult.message.QBIT_SLACKprovider now declares its capabilities and returns status, message id and reasons.SlackStartupTest: produces the qbit on RC.7, checks thatQInstanceValidatorpasses, and checks that theslacksection is registered.SlackPreferencesTest: the section only shows the owner's connections, actions are filtered by permission, a PATCH is rejected, and Connect and Install return the URL.verifyis green locally: 175 tests, 91.3% instruction coverage. The remaining stand-ins are #1142 (classification tokens), #1198 (help) and #1205 (delivery, unreleased).Codex implemented this; I reviewed it.
🤖 Generated with Claude Code