Skip to content

Merge dev into main - #259

Merged
purpshell merged 28 commits into
mainfrom
dev
Sep 16, 2026
Merged

purpshell merged 28 commits into
mainfrom
dev

Conversation

@purpshell

@purpshell purpshell commented Sep 16, 2026 •

Copy link
Copy Markdown
Member

Summary

Promotes SDK dev to main (28 commits). This merge produces a tree identical to dev.

SDK main currently carries the original bootstrap ledger, pinned to polymorfa/polymorfa@6918c56. Against monorepo main's current contracts it reports about 350 gaps. The main coverage job opens one issue per gap and stopped at 240 when GitHub rate-limited it. After this merge, SDK main uses dev's ledger, pinned to aca849cda44ad8582d7ae87489404d2483173a53. The monorepo promotion (polymorfa/polymorfa#178) brings monorepo main to those same contract bytes. The next main coverage run then finds no gaps and closes the [main] SDK coverage issues.

Included since the last promotion:

Verification

  • git merge-tree origin/main origin/dev has no conflicts and matches the dev tree exactly.
  • The last dev changes each passed the full local gate and hosted Node 20 and 22 CI before merging.
  • With dev's ledger and feat(sdk): add typed BanSafe Health resources #8 merged, the strict coverage check reports 0 missing operations at aca849c.

Five-part check

Part Status
API Unaffected. Consumes contract aca849c.
SDKs Updated. Promotes the reviewed dev TypeScript packages to main. Nothing is published to a registry.
CLI Unaffected by this merge. The CLI pins exact SDK commits.
Docs The repository docs move with dev. Public Mintlify docs are unaffected: they cover installing the unpublished package, not SDK type names, and the API reference already documents the webhook events.
Feature releases No registry release, tag, or flag change.

View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.

Align messaging identifiers across TypeScript, browser and Calls
Unify session configuration and QuickLink onboarding
Replace the raw platform string on WhatsAppAccount, ProfileData, and the
session.connected payload with phonePlatform and accountType, type the
connected account's public id instead of lid, and repin the contracts to
polymorfa/polymorfa aca849cda.
Replays the net BanSafe Health SDK change from codex/bansafe-health-sdk
(previous head 254da4c) onto dev 65fe3c5 as one commit. Conflicts in
README.md and transport/http.ts keep dev's behavior.
Remove the draft BanSafe snapshots; dev's canonical snapshots at
1600403db9dcf7996dbbb882375b1165859829d3 cover the same operations.
Move the 35 BanSafe ledger gaps to covered, add MessagingClient.banSafe
for the 10 Messaging settings routes (client tokens rejected before
transport), type claim credit amounts as decimal quantities, and accept
the optional nested enforcement projection on enforcement summaries.
QuickLink is a closed-source hosted page. Integrators create a link on
the server with MessagingClient.quickLinks.create and send the person
to the returned URL, so the browser controller, pmfa-quicklink element,
./quicklink elements subpath, and React QuickLink component are removed.
Shared element and binding tests now use the message list, the examples
drop QuickLink, and the ledger exclusions name the hosted page as the
only consumer of the public participant routes.
feat(sdk): add typed BanSafe Health resources
Replace allowedRedirectUris with successCallbackUrl, failureCallbackUrl, and
allowPhoneChange on saved QuickLink settings. Remove Customer phone,
CustomerSummary phoneMasked, and pairing-link locale/theme request fields,
none of which exist in the pinned management contract. Add a contract-shape
test that compares these types with the snapshot schemas.
Add ContactsSyncPayload and MessageEchoPayload, register both events, and
expose the optional QuickLink externalId on the webhook envelope, matching the
messaging contract at API 1600403.
Refresh the pinned source revision, remove retired direct session creation from
the resource list, fix stale QuickLink examples and routes, and remove Customer
phone from examples.
Add Customer lifecycle, BanSafe, campaign, message.failed, and
template.status payloads to the webhook catalog, and the redacted
response excerpt to webhook delivery attempts. A contract test now
fails when the pinned Messaging spec defines an event the catalog does
not list, and validates complete fixtures against each payload schema.

Closes #256
Closes #257
Align QuickLink settings, Customer, and Cloud webhook types with API 1600403
@coderabbitai

coderabbitai Bot commented Sep 16, 2026

Copy link
Copy Markdown

Warning

Review limit reached

Next included review available in 30 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used all 6 included reviews currently available. Your 40 included PR review attempts over the past 7 days set your current allowance at 6 reviews per hour.

The included review limit has been reached and this organization has disabled usage-based review continuation. Wait for reviews to reset or ask a billing admin to change After included review limits.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Team

Run ID: 7e199489-4a56-4881-b6ca-b9de8dd02f60

📥 Commits

Reviewing files that changed from the base of the PR and between 6afbd4c and 8803f05.

📒 Files selected for processing (108)
  • CHANGELOG.md
  • README.md
  • contracts/README.md
  • contracts/coverage.json
  • contracts/openapi.messaging.json
  • contracts/openapi.platform.json
  • contracts/source.json
  • docs/superpowers/plans/2026-08-19-browser-ui-sdk.md
  • docs/superpowers/specs/2026-08-19-polymorfa-sdks-design.md
  • examples/react/App.tsx
  • examples/vanilla-elements/index.html
  • examples/vanilla-elements/main.ts
  • packages/browser/README.md
  • packages/browser/src/calls/api.ts
  • packages/browser/src/calls/backend.ts
  • packages/browser/src/calls/signaling.ts
  • packages/browser/src/calls/socket.ts
  • packages/browser/src/index.ts
  • packages/browser/src/messaging/client.ts
  • packages/browser/src/messaging/composer.ts
  • packages/browser/src/messaging/types.ts
  • packages/browser/src/quicklink/controller.ts
  • packages/browser/src/quicklink/index.ts
  • packages/browser/test/calls-backend.test.ts
  • packages/browser/test/calls-client.test.ts
  • packages/browser/test/calls-socket.test.ts
  • packages/browser/test/calls.test.ts
  • packages/browser/test/client-actions.test.ts
  • packages/browser/test/quicklink.test.ts
  • packages/calls/src/api.ts
  • packages/calls/src/call.ts
  • packages/calls/src/protocol.ts
  • packages/calls/test/client.test.ts
  • packages/calls/test/helpers.ts
  • packages/calls/test/protocol.test.ts
  • packages/elements/README.md
  • packages/elements/package.json
  • packages/elements/src/index.ts
  • packages/elements/src/quicklink.ts
  • packages/elements/test/elements.test.ts
  • packages/react/README.md
  • packages/react/src/components.tsx
  • packages/react/src/index.ts
  • packages/react/test/react.test.tsx
  • packages/typescript/README.md
  • packages/typescript/src/client.ts
  • packages/typescript/src/errors.ts
  • packages/typescript/src/index.ts
  • packages/typescript/src/messaging/bansafe.ts
  • packages/typescript/src/messaging/business.ts
  • packages/typescript/src/messaging/channels.ts
  • packages/typescript/src/messaging/client-tokens.ts
  • packages/typescript/src/messaging/client.ts
  • packages/typescript/src/messaging/identities.ts
  • packages/typescript/src/messaging/messages.ts
  • packages/typescript/src/messaging/observation-policies.ts
  • packages/typescript/src/messaging/onboarding.ts
  • packages/typescript/src/messaging/operations.ts
  • packages/typescript/src/messaging/quicklinks.ts
  • packages/typescript/src/messaging/session-configuration.ts
  • packages/typescript/src/messaging/sessions.ts
  • packages/typescript/src/messaging/testing-configuration.ts
  • packages/typescript/src/messaging/types.ts
  • packages/typescript/src/platform/bansafe.ts
  • packages/typescript/src/platform/billing.ts
  • packages/typescript/src/platform/developer-resources.ts
  • packages/typescript/src/platform/developer-types.ts
  • packages/typescript/src/platform/projects.ts
  • packages/typescript/src/platform/quicklink-settings.ts
  • packages/typescript/src/platform/session-configuration.ts
  • packages/typescript/src/platform/sessions.ts
  • packages/typescript/src/platform/types.ts
  • packages/typescript/src/transport/http.ts
  • packages/typescript/src/webhooks/events.ts
  • packages/typescript/src/webhooks/index.ts
  • packages/typescript/test/bansafe-contract.test.ts
  • packages/typescript/test/bansafe.test.ts
  • packages/typescript/test/billing-contract.test.ts
  • packages/typescript/test/billing-tier-change.test.ts
  • packages/typescript/test/business.test.ts
  • packages/typescript/test/calls-lids-users.test.ts
  • packages/typescript/test/channels.test.ts
  • packages/typescript/test/client.test.ts
  • packages/typescript/test/contract-shapes.test.ts
  • packages/typescript/test/coverage-issues.test.ts
  • packages/typescript/test/coverage-reconciliation.test.ts
  • packages/typescript/test/coverage.test.ts
  • packages/typescript/test/customers.test.ts
  • packages/typescript/test/developer-operations.test.ts
  • packages/typescript/test/exports.test.ts
  • packages/typescript/test/groups.test.ts
  • packages/typescript/test/messages.test.ts
  • packages/typescript/test/messaging.test.ts
  • packages/typescript/test/observation-policies.test.ts
  • packages/typescript/test/onboarding.test.ts
  • packages/typescript/test/package.test.ts
  • packages/typescript/test/platform-access.test.ts
  • packages/typescript/test/platform-automation.test.ts
  • packages/typescript/test/platform.test.ts
  • packages/typescript/test/profile.test.ts
  • packages/typescript/test/quicklinks.test.ts
  • packages/typescript/test/session-configuration.test.ts
  • packages/typescript/test/system.test.ts
  • packages/typescript/test/transport.test.ts
  • packages/typescript/test/webhook-contract.test.ts
  • packages/typescript/test/webhook-event-types.test.ts
  • packages/ui/src/locale.ts
  • scripts/check-coverage.mjs

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

@purpshell
purpshell merged commit 9de8dfd into main Sep 16, 2026
6 checks passed
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.

1 participant