#15853: feat: add option to suppress media placeholder text
channel: imessage
channel: signal
stale
size: S
Cluster:
Signal Plugin Enhancements
## Summary
Add a new config option `messages.suppressMediaPlaceholders` to disable automatic media placeholder text (e.g., `<media:audio>`) when sending media-only messages through messaging channels.
## Changes
- Added `suppressMediaPlaceholders` option to `MessagesConfig` type in `src/config/types.messages.ts`
- Updated `src/signal/send.ts` to conditionally skip placeholder when option is enabled
- Updated `src/imessage/send.ts` to conditionally skip placeholder when option is enabled
## Testing
- Verified TypeScript compilation passes
- Ran linting (0 warnings, 0 errors)
## Usage
Set in config:
```json
{
"messages": {
"suppressMediaPlaceholders": true
}
}
```
Fixes openclaw/openclaw#15840
<!-- greptile_comment -->
<h2>Greptile Overview</h2>
<h3>Greptile Summary</h3>
This PR adds a new `messages.suppressMediaPlaceholders` config option and wires it into the Signal and iMessage send paths so media-only outbound messages can omit the `<media:...>` fallback text when desired.
It also includes a small fix in the agent runner’s Gemini session-corruption recovery to pass `agentId` when resolving transcript paths, and documentation updates to agent workflow guidelines.
<h3>Confidence Score: 4/5</h3>
- This PR is close to merge-ready, with one small but definite formatting/regression issue to fix before merging.
- The functional changes to Signal/iMessage are minimal and gated behind a default-off config flag, and the agent session transcript path fix matches existing APIs. The only clear must-fix issue is the `CLAUDE.md` change resulting in a missing trailing newline (and likely unintentionally converting a symlink to a regular file), which can create persistent diff churn.
- CLAUDE.md
<sub>Last reviewed commit: dae1249</sub>
<!-- greptile_other_comments_section -->
<sub>(5/5) You can turn off certain types of comments like style [here](https://app.greptile.com/review/github)!</sub>
<!-- /greptile_comment -->
Most Similar PRs
#15914: feat: add messages.suppressMediaPlaceholders config option
by Shuai-DaiDai · 2026-02-14
87.3%
#8271: feat(signal): Add full quoted message context support
by ProofOfReach · 2026-02-03
79.5%
#11898: Fix for issue #11895
by rerickardjr · 2026-02-08
78.2%
#15864: feat: add deliverOnlyToolMessages config for clean messaging channe...
by gandalf-the-engineer · 2026-02-14
77.9%
#4878: fix: string/type handling and API fixes (#4537, #4380, #4373, #4547...
by lailoo · 2026-01-30
77.9%
#18708: feat(messages): add suppressToolErrorWarnings config option
by codexGW · 2026-02-17
77.6%
#7353: fix: prevent silent message drops after config.patch restart
by 18-RAJAT · 2026-02-02
77.6%
#14274: feat: add collapseReplyPayloads to collapse multi-message replies
by Henry-Roff-AI · 2026-02-11
77.2%
#15467: feat(messages): add debounceMedia option for inbound debouncing
by tangcruz · 2026-02-13
76.8%
#15852: fix: pass agentId when resolving IRC session paths
by MisterGuy420 · 2026-02-14
76.4%