♻️ refactor(bot): slim iMessage setup schema to user-edited fields#15291
Conversation
…user schema These are not user-supplied: the Desktop client fills the device id from the local gateway and generates the webhook secret on first save. Removing them from the platform schema keeps the iMessage setup form to the fields the user actually edits. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 30765ea319
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| // `credentials.desktopDeviceId` and `credentials.webhookSecret` are not user | ||
| // fields: the Desktop client fills the device id from the local gateway and | ||
| // generates the webhook secret on first save (see imessage/CredentialExtras). |
There was a problem hiding this comment.
Keep iMessage required credentials in the exposed schema
Because agentBotProvider.listPlatforms returns platformRegistry.listSerializedPlatforms() directly (src/server/routers/lambda/agentBotProvider.ts:48-49), this schema is still exposed to authenticated API/tool clients even while the channel page masks iMessage as coming soon. Removing the credentials section makes schema-driven clients believe no desktopDeviceId or webhookSecret is needed, but the runtime still rejects missing values in ImessageClientFactory.validateCredentials and resolveCredentials, so any bot created from the advertised schema will save/connect as an unusable iMessage provider until a separate Desktop-only filler lands.
Useful? React with 👍 / 👎.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## canary #15291 +/- ##
===========================================
- Coverage 89.69% 71.12% -18.58%
===========================================
Files 859 3175 +2316
Lines 104915 317462 +212547
Branches 9187 27988 +18801
===========================================
+ Hits 94105 225799 +131694
- Misses 10638 91491 +80853
Partials 172 172
Flags with carried forward coverage won't be shown. Click here to find out more.
🚀 New features to boost your workflow:
|
💻 Change Type
🔀 Description of Change
Removes
credentials.desktopDeviceIdandcredentials.webhookSecretfrom the iMessage platform schema. Neither is user-supplied:getDeviceInfo).After this change the iMessage setup form only asks for the fields a user actually edits (Application ID + the BlueBubbles bridge fields, which live in the Desktop-only
CredentialExtras).Safe to land ahead of the Desktop bridge PR: iMessage is still gated as "Coming Soon" in the channel list (
COMING_SOON_PLATFORMS), so no one can reach this form yet. The Desktop bridge PR (which auto-fills both values and unveils the platform) depends on this.🔗 Related Issue
Part of the iMessage channel work (LOBE-6554 / LOBE-6384); carved out of the Desktop bridge branch so the server schema lands independently.
🧪 Testing
bun run type-check