Fix config queue overrides for Matrix#79863
Conversation
|
Codex review: needs changes before merge. Summary Reproducibility: yes. Source inspection on current main shows Matrix is an active bundled channel id, the strict queue override schema omits Real behavior proof Next step before merge Security Review findings
Review detailsBest possible solution: Land the schema/type key alignment with regression coverage using current queue modes, while leaving broader per-channel cap/drop design to #55858. Do we have a high-confidence way to reproduce the issue? Yes. Source inspection on current main shows Matrix is an active bundled channel id, the strict queue override schema omits Is this the best way to solve the issue? No, not as currently written. The schema/type alignment is the narrow maintainable fix, but the added tests need to replace the retired Full review comments:
Overall correctness: patch is incorrect Acceptance criteria:
What I checked:
Likely related people:
Codex review notes: model gpt-5.5, reasoning high; reviewed against caf8fa2ebf39. |
|
@clawsweeper automerge |
|
🦞🔧
Draft PRs stay fix-only until GitHub marks them ready for review. Pause with Automerge progress:
|
|
ClawSweeper 🐠 reef update Thanks for the contribution here. ClawSweeper could not safely push to this branch, so it opened a replacement PR from a writable branch and carried the contributor trail along with it. Why replacement: ClawSweeper could not update the source PR branch directly; GitHub did not grant sufficient push rights to the bot for that branch.
fish notes: model gpt-5.5, reasoning high; reviewed against 301a370. |
Summary
messages.queue.byChannel.matrixwas rejected by config validation even though Matrix is an active OpenClaw channel.matrixto the queue by-channel runtime schema and exported queue provider type, keptgooglechat/mattermostschema/type drift aligned, and added regression coverage for validation and schema lookup.Change Type (select all)
Scope (select all touched areas)
Linked Issue/PR
Real behavior proof (required for external PRs)
messages.queue.byChannel.messages.queue.byChannel: Unrecognized key: "matrix".Root Cause (if applicable)
googlechatvsmattermost), so this PR also aligns those keys while keeping the fix focused.Regression Test Plan (if applicable)
src/config/config.schema-regressions.test.ts,src/config/schema.test.tsmessages.queue.byChannel.matrixvalidates forsteerandinterrupt; schema lookup listsmatrix; unknown queue provider keys remain rejected.User-visible / Behavior Changes
Operators can now configure Matrix-specific queue behavior with
messages.queue.byChannel.matrix.Diagram (if applicable)
Security Impact (required)
Yes/No) NoYes/No) NoYes/No) NoYes/No) NoYes/No) NoYes, explain risk + mitigation: N/ARepro + Verification
Environment
{ "messages": { "queue": { "byChannel": { "matrix": "steer" } } } }Steps
messages.queue.byChannel.matrix.messages.queue.byChannelin the generated config schema.Expected
Actual
Evidence
Attach at least one:
Additional local verification:
Human Verification (required)
What you personally verified (not just CI), and how:
steer, Matrixinterrupt,googlechat, andmattermostqueue overrides validate; unknown queue provider keys remain rejected; schema lookup includes Matrix.AI-assisted: yes. I understand the change: it extends the closed queue provider schema/type keys and adds direct regression coverage for the config contract.
Review Conversations
Compatibility / Migration
Yes/No) YesYes/No) Yes — existing configs may now usemessages.queue.byChannel.matrix.Yes/No) NoRisks and Mitigations