---
name: "Consolidate is_permission_approval into chat::util"
---

# Refactor 440: Consolidate is_permission_approval into chat::util

## Current State

- TBD

## Desired State

Three copies of `is_permission_approval` exist across Slack (`chat/transport/slack/commands.rs`), WhatsApp (`chat/transport/whatsapp/commands.rs`), and Matrix (`chat/transport/matrix/bot/messages.rs`). The Slack and WhatsApp versions are identical; the Matrix version is a superset that also strips @mentions. Consolidate into a single `pub` function in `chat::util` using the Matrix superset behavior, then delete the 3 private copies.

## Acceptance Criteria

- [ ] Single pub fn is_permission_approval exists in chat::util
- [ ] All 3 private copies are removed
- [ ] Matrix @mention-stripping behavior is preserved in the shared version
- [ ] All call sites use the shared version

## Out of Scope

- TBD
