Skip to content

feat(slack): route modal interactions with private metadata#18252

Closed
Solvely-Colin wants to merge 0 commit into
openclaw:mainfrom
Solvely-Colin:codex/slack-modal-session-routing
Closed

feat(slack): route modal interactions with private metadata#18252
Solvely-Colin wants to merge 0 commit into
openclaw:mainfrom
Solvely-Colin:codex/slack-modal-session-routing

Conversation

@Solvely-Colin

@Solvely-Colin Solvely-Colin commented Feb 16, 2026

Copy link
Copy Markdown
Contributor

Why

Modal interactions currently default to the main Slack session. This can misroute submissions/closures when a modal was launched from a specific channel/thread context.

Dependency

What This PR Adds

  • In /Users/solvely/Projects/OpenClaw/src/slack/monitor/events/interactions.ts:
    • parse view.private_metadata safely when present
    • support metadata routing fields:
      • sessionKey (explicit override)
      • channelId + optional channelType (derive session via existing resolver)
    • apply routing to both view_submission and view_closed
    • include routed channel hints in emitted payload (routedChannelId, routedChannelType)

Behavior

  • If metadata contains sessionKey, modal events route directly there.
  • Else if metadata contains channelId, route via resolveSlackSystemEventSessionKey({ channelId, channelType }).
  • Else retain existing fallback routing.
  • Invalid/non-JSON metadata safely falls back without throwing.

Validation

  • pnpm test src/slack/monitor/events/interactions.test.ts
  • pnpm check

Reviewer Focus

  • src/slack/monitor/events/interactions.ts
  • src/slack/monitor/events/interactions.test.ts

@openclaw-barnacle openclaw-barnacle Bot added channel: slack Channel integration: slack size: L labels Feb 16, 2026
This was referenced Feb 16, 2026
@Solvely-Colin
Solvely-Colin force-pushed the codex/slack-modal-session-routing branch from afe40ca to dacffd7 Compare February 16, 2026 23:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

channel: slack Channel integration: slack size: XS

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants