You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(triggers): stop cloned trigger blocks reusing the source's webhook URL
Before a deploy, a trigger block's webhook URL is DERIVED — use-webhook-management
falls back to the block's own id, which paste already regenerates, so cloning an
undeployed trigger yields a fresh URL. Deploy then registers the webhook at
`path = triggerPath || block.id` and writes that literal string back into the
source block's `triggerPath`. From then on the URL is STORED, and copy/paste
copies it verbatim, so the clone renders the source's URL.
Clear the two identity fields (`webhookId`, `triggerPath`) on in-canvas clones so
the clone falls back to deriving a path from its new block id.
- Clear both the subBlocks structure AND the sub-block value map: the value map
is authoritative in mergeSubblockStateWithValues, and `triggerPath` normally
lives only there since no trigger declares it as a subblock.
- Gate on `blockOwnsWebhookIdentity`, never on the subblock id: Discord, Attio,
and Vercel action blocks expose a REQUIRED user-entered `webhookId` that must
survive a copy. The predicate mirrors deploy's `resolveTriggerId` so both sides
agree on which blocks own a webhook, and fails closed on unregistered types.
- `triggerConfig`/`triggerId` are deliberately preserved — they are user
configuration, and `triggerConfig` can be a legacy trigger's only config home.
Scoped to the clone paths. No deploy-side, server-side, or import/export
behavior changes.
0 commit comments