Repository navigation
fix(messaging): show apps the IM plugin can't serve as greyed out in Bind app (#1123) - #1128
Conversation
…llow again (#1109) The app's Conversations list in Edit identity sorts entries into Waiting, Active, Muted and Blocked. Mute admits silently, Rules reuses the group reception editor, Block revokes the entry, cancels unsent replies and writes a durable block per Bot, app fingerprint and conversation that survives restart and rebind; Allow again creates a fresh entry with no backfill. New conversations can be admitted automatically or held for the user, and new entries are bounded to 20 per hour and 500 active per app with at most 200 held. Issue: #1109 Agent-Task: claude-code/cloud/session_01WXjBatxGTRyRSxZYeJpqgH Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WXjBatxGTRyRSxZYeJpqgH
A Bot can now bind several apps of the same platform; one app still belongs to one Bot. Generation 63 drops messaging_binding_bot_platform and the bind and authorize commands no longer refuse a second app of a platform. A new apps projection lists every Provider account with its bound Bot; Bind app hides apps another Bot uses, External identities groups apps by platform, and Bot settings gets an IM apps list that refreshes on roster changes. Shared replies from a Bot with two apps in the same group refuse with reply-target-ambiguous. Issue: #1110 Agent-Task: claude-code/cloud/session_01WXjBatxGTRyRSxZYeJpqgH Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WXjBatxGTRyRSxZYeJpqgH
Per review, the app overview lives where apps are chosen. Bind app now lists every connected app: apps a Bot already uses are disabled and name that Bot (or say they are bound to this Bot), disconnected apps say so, and Manage app credentials opens IM bots settings. The IM apps list in Bot settings and its messagingApps bridge method are removed; the snapshot's accounts already carry the owner. Issue: #1110 Agent-Task: claude-code/cloud/session_01WXjBatxGTRyRSxZYeJpqgH Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WXjBatxGTRyRSxZYeJpqgH
The dsh-im provider used to drop any app whose plugin lacks proactive-text-checked, so Discord apps on the pinned dsh-im silently vanished from Bind app. The account list now reports such apps with unsupported: 'checked-send', inspection for binding still refuses them, and Bind app shows them disabled with an update-the-plugin reason. Issue: #1123 Agent-Task: claude-code/cloud/session_01WXjBatxGTRyRSxZYeJpqgH Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WXjBatxGTRyRSxZYeJpqgH
Issue: #1123 Agent-Task: claude-code/cloud/session_01WXjBatxGTRyRSxZYeJpqgH Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WXjBatxGTRyRSxZYeJpqgH
📝 WalkthroughWalkthroughThe Discord provider now lists accounts without checked-send support as unsupported. Bind app displays these accounts as disabled with an IM-plugin update hint. Inspection rejects unsupported accounts, and fallback lookup paths exclude them. ChangesUnsupported account handling
Priority: ➖ Normal Estimated code review effort: 3 (Moderate) | ~20 minutes Change: Bug fix Merge Risk: 🔵 Low · up to The messaging change appears mergeable, subject to the planned pinned-plugin check. The remaining concern is limited to screenshot descriptions. 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
Full details: Docstring CoverageExplanation Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 4 functions across 8 files. (3 skipped: 3 unsupported.)
✨ Finishing Touches 💡 1📝 Generate docstrings 💡
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
# Conflicts: # CHANGELOG.md # CHANGELOG.zh.md # packages/client/src/client/external-entries.tsx # packages/client/src/client/external-identity-list.tsx # packages/client/src/client/locale.ts # packages/client/test/external-identity-list.test.ts # packages/core/src/database/schema-plan.ts
…ed-apps # Conflicts: # packages/client/src/client/external-identity-list.tsx # packages/client/src/client/locale.ts # packages/client/test/external-identity-list.test.ts
There was a problem hiding this comment.
🔇 Additional comments (12)
packages/core/src/messaging/provider.ts (1)
7-7: LGTM!packages/core/src/messaging/dsh-im.ts (2)
310-343: LGTM!
383-383: LGTM!packages/core/test/dsh-im-unsupported.test.ts (1)
1-32: LGTM!packages/client/src/client/external-identity-list.tsx (1)
283-310: LGTM!packages/client/src/client/locale.ts (1)
817-817: LGTM!Also applies to: 2965-2965
packages/client/test/external-identity-list.test.ts (1)
255-255: LGTM!Also applies to: 267-272, 319-319
CHANGELOG.md (1)
51-52: LGTM!CHANGELOG.zh.md (1)
51-52: LGTM!packages/core/src/messaging/channel-media.ts (1)
145-147: LGTM!packages/core/src/messaging/outbound.ts (1)
382-384: LGTM!docs/assets/pr/1123-unsupported-apps/README.md (1)
7-8: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value
⚠️ Unverified finding
Verification ran but could not confirm this finding. It is shown for review, not as a verified issue.Add alt text to the images.
markdownlint reports MD045 on both image rows. Add descriptive alt text, for example
.Source: Linters/SAST tools
ℹ️ Review info
⚙️ Run configuration
- Configuration used: defaults
- Review profile: CHILL
- Plan: Advanced
- Run ID:
5751d545-94c1-4afe-9b0a-74f01b8b85a7
📒 Files selected for processing (15)
CHANGELOG.mdCHANGELOG.zh.mddocs/assets/pr/1123-unsupported-apps/README.mddocs/assets/pr/1123-unsupported-apps/bind-en-dark.webpdocs/assets/pr/1123-unsupported-apps/bind-en-light.webpdocs/assets/pr/1123-unsupported-apps/bind-zh-dark.webpdocs/assets/pr/1123-unsupported-apps/bind-zh-light.webppackages/client/src/client/external-identity-list.tsxpackages/client/src/client/locale.tspackages/client/test/external-identity-list.test.tspackages/core/src/messaging/channel-media.tspackages/core/src/messaging/dsh-im.tspackages/core/src/messaging/outbound.tspackages/core/src/messaging/provider.tspackages/core/test/dsh-im-unsupported.test.ts
Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.
Requested by Vain · project thread
Part of #1123 (the BotHarness half) · part of #1107 · stacked on #1121 (base switches to
mainonce #1120 and #1121 merge)Before: the dsh-im provider dropped any app whose IM plugin lacks
proactive-text-checked. With the pinned dsh-im, every Discord app silently vanished from Bind app, with no hint why.After: such apps stay in Bind app, greyed out, with update the IM plugin to bind this app. Binding them is still refused.
The other half of #1123, adding Discord
proactive-text-checkedto the dsh-im fork and repinning, ships with the dsh-im release for #1111/#1115. That push needs the Claude GitHub App on DoodleBears/dsh-im.How
createDshImProvidersplitsdescribe(shape checks) fromaccount(adds the capability check).accounts()usesdescribeand marks a missing capability asunsupported: 'checked-send'.inspectAccountstill throwsprovider-incompatible, so bind, reception and sends keep refusing those apps.accounts()when there is noinspectAccountskip unsupported accounts.Screenshots
From a real Host with a simulated provider; "旧版插件应用" lacks the capability. All variants: https://github.com/BotHarness/BotHarness/tree/claude/1123-unsupported-apps/docs/assets/pr/1123-unsupported-apps
Tests
dsh-im-unsupported.test.ts: a Discord app without checked send is listed as unsupported and refused byinspectAccount; a capable app is listed plainly and inspects fine.external-identity-list.test.ts: Bind app shows the unsupported app disabled with its reason, next to apps bound to this Bot or another Bot.pnpm changelog:checkare clean.Human verification
🤖 Generated with Claude Code
https://claude.ai/code/session_01WXjBatxGTRyRSxZYeJpqgH
Generated by Claude Code
Summary by CodeRabbit