Skip to content

Fix Slack table column settings validation - #68434

Closed
tishan-jayasekera wants to merge 1 commit into
NousResearch:mainfrom
tishan-jayasekera:agent/fix-slack-table-column-settings
Closed

Fix Slack table column settings validation#68434
tishan-jayasekera wants to merge 1 commit into
NousResearch:mainfrom
tishan-jayasekera:agent/fix-slack-table-column-settings

Conversation

@tishan-jayasekera

Copy link
Copy Markdown

What changed

  • emit an object for every column_settings entry when a Markdown table requests any non-default alignment
  • preserve column positions with explicit { "align": "left" } placeholders instead of null
  • keep omitting column_settings when every column uses Slack's default left alignment
  • update the table-rendering regression test to enforce object-only settings

Root cause

The Block Kit renderer used null placeholders for default-aligned columns so later center/right settings retained their positions. Slack's current chat.postMessage validation rejects those entries with invalid_blocks and must provide an object at the affected column_settings JSON pointer.

User impact

Mixed-alignment Markdown tables can now be posted as native Slack table blocks instead of failing at delivery time. Tables that use only default left alignment retain the existing payload shape.

Verification

  • scripts/run_tests.sh tests/gateway/test_slack_block_kit.py tests/gateway/test_slack_block_kit_adapter.py -q
  • 33 tests passed
  • reproduced the rejection and successful object-only payload against Slack's Web API in a private DM canary

@tishan-jayasekera
tishan-jayasekera marked this pull request as ready for review July 21, 2026 05:52
@alt-glitch alt-glitch added type/bug Something isn't working comp/plugins Plugin system and bundled plugins platform/slack Slack app adapter P3 Low — cosmetic, nice to have sweeper:risk-message-delivery Sweeper risk: may drop, duplicate, misroute, or suppress messages duplicate This issue or pull request already exists labels Jul 21, 2026
@alt-glitch

Copy link
Copy Markdown
Collaborator

This was generated by AI during triage.

Duplicate of #65355: both replace null Slack table column_settings placeholders with valid objects while retaining positional alignment.

Copy link
Copy Markdown
Author

Closing in favor of #57128, which addresses the same null table-column placeholder defect and also adds a safe plain-text retry for future invalid_blocks failures.

I independently validated #57128's exact head: 277 focused Slack tests pass, the diff is clean, upstream CI is green, and the root cause is corroborated by a private Slack DM canary. Keeping one canonical PR should make the upstream merge path clearer.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp/plugins Plugin system and bundled plugins duplicate This issue or pull request already exists P3 Low — cosmetic, nice to have platform/slack Slack app adapter sweeper:risk-message-delivery Sweeper risk: may drop, duplicate, misroute, or suppress messages type/bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants