Summary
Portable message presentation buttons have a disabled field in the runtime type, but the message tool schema rejects it and the Discord presentation mapper drops it.
Current behavior
Callers cannot reliably send disabled presentation buttons through openclaw message even though Discord button specs and the lower-level Discord component builder support disabled buttons.
Expected behavior
presentation.blocks[].buttons[] should accept disabled: true and preserve it when building Discord component button specs.
Why this matters
Generated review messages often need to show already-handled or unavailable actions without making them interactive. Dropping the disabled state makes the rendered message less clear and can expose actions that should not be clickable.
Suggested scope
Keep this to schema and adapter preservation:
- Add
disabled to the presentation button tool schema.
- Preserve
disabled: true in Discord presentation mapping.
- Add a focused test for the mapping.
Summary
Portable message presentation buttons have a
disabledfield in the runtime type, but themessagetool schema rejects it and the Discord presentation mapper drops it.Current behavior
Callers cannot reliably send disabled presentation buttons through
openclaw messageeven though Discord button specs and the lower-level Discord component builder support disabled buttons.Expected behavior
presentation.blocks[].buttons[]should acceptdisabled: trueand preserve it when building Discord component button specs.Why this matters
Generated review messages often need to show already-handled or unavailable actions without making them interactive. Dropping the disabled state makes the rendered message less clear and can expose actions that should not be clickable.
Suggested scope
Keep this to schema and adapter preservation:
disabledto the presentation button tool schema.disabled: truein Discord presentation mapping.