fix(slack): thread agent identity through channel reply path#27134
fix(slack): thread agent identity through channel reply path#27134Takhoffman merged 5 commits intoopenclaw:mainfrom
Conversation
Greptile SummaryAdded agent identity customization support to the Slack channel reply path, allowing multi-agent setups to display distinct usernames and avatars when posting replies. The implementation correctly threads the agent's
The changes are minimal, focused, and properly typed. Identity support is correctly implemented for the standard reply path that uses Confidence Score: 5/5
Last reviewed commit: 6a18aa4 |
|
Fixed the oxfmt import ordering issue — CI should be green on the next run. This threads the agent's |
|
Ping for review — CI green (Windows test failure is the known |
|
Friendly ping — CI is all green now (including the TypeScript fix for the test mock). This PR adds tests, changelog entry, and follows conventional commit format. Ready for review when you have a moment. Thanks! |
ac815c2 to
d33ff59
Compare
sendMessageSlack() correctly accepts opts.identity for chat:write.customize overrides, but the inbound channel reply path (deliverReplies) never passed it. Resolve the agent's outbound identity from config and forward it so replies display the configured name/avatar instead of the default bot profile. Closes openclaw#27080 Co-Authored-By: Claude Opus 4.6 <[email protected]>
Add unit tests verifying agent identity (username, icon URL, emoji) is correctly threaded through deliverReplies to sendMessageSlack for both text and media replies. Co-Authored-By: Claude Opus 4.6 <[email protected]>
Provide required log/error/exit stubs so tsgo passes. Co-Authored-By: Claude Opus 4.6 <[email protected]>
d33ff59 to
2dc7a4b
Compare
|
PR #27134 - fix(slack): thread agent identity through channel reply path (#27134) Merged via squash.
Thanks @hou-rong! |
…w#27134) thanks @hou-rong Verified: - pnpm install --frozen-lockfile - pnpm build - pnpm check - pnpm test:macmini Co-authored-by: hou-rong <[email protected]> Co-authored-by: Tak Hoffman <[email protected]>
…w#27134) thanks @hou-rong Verified: - pnpm install --frozen-lockfile - pnpm build - pnpm check - pnpm test:macmini Co-authored-by: hou-rong <[email protected]> Co-authored-by: Tak Hoffman <[email protected]>
…w#27134) thanks @hou-rong Verified: - pnpm install --frozen-lockfile - pnpm build - pnpm check - pnpm test:macmini Co-authored-by: hou-rong <[email protected]> Co-authored-by: Tak Hoffman <[email protected]>
…w#27134) thanks @hou-rong Verified: - pnpm install --frozen-lockfile - pnpm build - pnpm check - pnpm test:macmini Co-authored-by: hou-rong <[email protected]> Co-authored-by: Tak Hoffman <[email protected]>
…w#27134) thanks @hou-rong Verified: - pnpm install --frozen-lockfile - pnpm build - pnpm check - pnpm test:macmini Co-authored-by: hou-rong <[email protected]> Co-authored-by: Tak Hoffman <[email protected]>
…w#27134) thanks @hou-rong Verified: - pnpm install --frozen-lockfile - pnpm build - pnpm check - pnpm test:macmini Co-authored-by: hou-rong <[email protected]> Co-authored-by: Tak Hoffman <[email protected]>
…w#27134) thanks @hou-rong Verified: - pnpm install --frozen-lockfile - pnpm build - pnpm check - pnpm test:macmini Co-authored-by: hou-rong <[email protected]> Co-authored-by: Tak Hoffman <[email protected]>
…w#27134) thanks @hou-rong Verified: - pnpm install --frozen-lockfile - pnpm build - pnpm check - pnpm test:macmini Co-authored-by: hou-rong <[email protected]> Co-authored-by: Tak Hoffman <[email protected]>
…w#27134) thanks @hou-rong Verified: - pnpm install --frozen-lockfile - pnpm build - pnpm check - pnpm test:macmini Co-authored-by: hou-rong <[email protected]> Co-authored-by: Tak Hoffman <[email protected]>
…w#27134) thanks @hou-rong Verified: - pnpm install --frozen-lockfile - pnpm build - pnpm check - pnpm test:macmini Co-authored-by: hou-rong <[email protected]> Co-authored-by: Tak Hoffman <[email protected]>
…w#27134) thanks @hou-rong Verified: - pnpm install --frozen-lockfile - pnpm build - pnpm check - pnpm test:macmini Co-authored-by: hou-rong <[email protected]> Co-authored-by: Tak Hoffman <[email protected]>
…w#27134) thanks @hou-rong Verified: - pnpm install --frozen-lockfile - pnpm build - pnpm check - pnpm test:macmini Co-authored-by: hou-rong <[email protected]> Co-authored-by: Tak Hoffman <[email protected]> (cherry picked from commit b3f60a6)
…w#27134) thanks @hou-rong (#1415) Verified: - pnpm install --frozen-lockfile - pnpm build - pnpm check - pnpm test:macmini (cherry picked from commit b3f60a6) Co-authored-by: HouRong <[email protected]> Co-authored-by: hou-rong <[email protected]> Co-authored-by: Tak Hoffman <[email protected]>
Summary
Thread agent outbound identity (
chat:write.customizeoverrides) through the Slack channel reply delivery path so per-agent username, icon URL, and icon emoji are applied to all Slack replies including media messages.Fixes #27080
Problem
When an agent has
outbound.identityconfigured (name, avatarUrl, emoji), the Slack monitor reply path (deliverReplies) ignores it. All replies appear as the default bot identity, even thoughsendMessageSlackalready supports anidentityparameter viachat:write.customize.Solution
identity?: SlackSendIdentityparam todeliverReplies()insrc/slack/monitor/replies.tssendMessageSlackcallsdispatch.ts, resolve the agent's outbound identity viaresolveAgentOutboundIdentity()and convert toSlackSendIdentityformatdeliverNormally()→deliverReplies()Test plan
src/slack/monitor/replies.test.tswith 3 tests:sendMessageSlackfor text repliessendMessageSlackfor media repliespnpm test src/slack/monitor/replies.test.ts— all 3 tests passChangelog
Added entry under
### Fixesin CHANGELOG.md.