Skip to content

feat(messaging): new-conversation mode is a platform default that bound apps inherit (#1134) - #1137

Merged
DoodleBears merged 6 commits into
mainfrom
claude/1134-new-conversation-default
Oct 8, 2026
Merged

DoodleBears merged 6 commits into
mainfrom
claude/1134-new-conversation-default

Conversation

@DoodleBears

@DoodleBears DoodleBears commented Oct 7, 2026 •

Copy link
Copy Markdown
Contributor

#1134 | #1107 | Screenshots folder

Why the change

"New conversations" (admit automatically or ask me first) could only be set app by app. The platform's global IM defaults now carry it, so one setting covers every bound app unless an app overrides it.

Screenshots

Settings → Bot settings → External platform defaults, Lark tab, with the new New conversations column. Saving "Ask me first" here read back through the bridge as newConversations: "ask".

Defaults page

The edit dialog of the real bound Lark app on the cloud QA Host, after it migrated to generation 64. New conversations shows "Follow platform default (Admit automatically)".

<img src="https://raw.githubusercontent.com/BotHarness/DeepSeekBot/4af20a46bc096075b2f6dd740ab8eab0060cbc0a/docs/assets/pr/1134-new-conversation-default/bound-app-edit.png" width="720" alt="Bound app edit dialog">

Special things to note

  • Schema generation 64 adds messaging_bindings.new_conversations_inherited. Apps already on ask stay custom. Every other app inherits, and the default is auto, so nothing changes for them. External conversations 1: a bound app's group streams into a Channel (#1145) #1148 also uses generation 64, so whichever merges second is renumbered to 65.
  • Merge risk: one-way door (small). The column is additive. Reverting the code leaves it unused, and new_conversations still holds each app's last explicit choice.
  • Blast radius: small. It affects which new DMs and groups are admitted automatically for inheriting apps. Worst case, a changed platform default admits or holds new conversations for every inheriting app.
  • Review focus: the update SQL in outbound.ts and the migration.

Change outline

Data

  messaging_bindings
+   new_conversations_inherited INTEGER NOT NULL DEFAULT 1 CHECK IN (0,1)   -- 0 where new_conversations = 'ask'
  messaging_default_revisions.body (feishu | slack | discord)
+   newConversations: 'auto' | 'ask'   -- absent in old revisions → 'auto'; omitted on save → keep prior

Contracts

  messagingIdentity update
-   newConversations?: 'auto' | 'ask'
+   newConversations?: 'auto' | 'ask' | 'inherit'
  MessagingIdentity
+   newConversations = inherited ? platform default : own value
+   newConversationsInheritance: 'inherit' | 'custom'
  messagingDefaultsSet input
+   newConversations?: 'auto' | 'ask'

Client

  App edit dialog → New conversations
+   Follow platform default (Admit automatically) | Admit automatically | Ask me first
  Settings → External platform defaults → identity table
+   New conversations <select>

🤖 Generated with Claude Code

https://claude.ai/code/session_01TukXcCoCAFsqkoHCthVEKC

…nd apps inherit (#1134)

Lark, Slack and Discord defaults gain newConversations (auto unless
changed). Bindings follow it via messaging_bindings.new_conversations_inherited
(schema generation 64; apps already on ask stay custom). The app dialog
offers Follow platform default, and the defaults page gets the picker.

Issue: #1134
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TukXcCoCAFsqkoHCthVEKC
@DoodleBears DoodleBears self-assigned this Oct 7, 2026
@coderabbitai

coderabbitai Bot commented Oct 7, 2026 •

Copy link
Copy Markdown

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 37 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

Learn how review limits work.

Review configuration:

⚙️ Run configuration
  • Configuration used: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 14f6a3cb-6093-4e3b-955f-080b6b96cc82
📥 Commits

Reviewing files that changed from the base of the PR and between 5104bae and c9e96ec.

⛔ Files ignored due to path filters (2)
  • docs/assets/pr/1134-new-conversation-default/bound-app-edit.png is excluded by !**/*.png
  • docs/assets/pr/1134-new-conversation-default/defaults.png is excluded by !**/*.png
📒 Files selected for processing (17)
  • CHANGELOG.md
  • CHANGELOG.zh.md
  • docs/assets/pr/1134-new-conversation-default/README.md
  • docs/channel-sidebar/external-identities.md
  • docs/channel-sidebar/external-identities.zh.md
  • packages/client/src/client/external-identity-list.tsx
  • packages/client/src/client/locale.ts
  • packages/client/src/client/messaging-defaults-settings.tsx
  • packages/client/test/external-identity-list.test.ts
  • packages/client/test/messaging-defaults-settings.test.ts
  • packages/core/src/bridge/methods.ts
  • packages/core/src/database/schema-plan.ts
  • packages/core/src/messaging/defaults.ts
  • packages/core/src/messaging/identity.ts
  • packages/core/src/messaging/outbound.ts
  • packages/core/test/messaging-lark-dm.test.ts
  • packages/core/test/messaging-new-conversation-default.test.ts
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Issue: #1134
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TukXcCoCAFsqkoHCthVEKC
@DoodleBears
DoodleBears marked this pull request as ready for review October 7, 2026 20:01
claude added 2 commits October 8, 2026 05:09
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TukXcCoCAFsqkoHCthVEKC
…rsation-default

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TukXcCoCAFsqkoHCthVEKC
@DoodleBears
DoodleBears merged commit 006c0fa into main Oct 8, 2026
2 checks passed
@DoodleBears
DoodleBears deleted the claude/1134-new-conversation-default branch October 28, 2026 04:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants