Skip to content

fix(web): show real PM webhook callback URL in Trello/JIRA wizard#1401

Merged
zbigniewsobiecki merged 2 commits into
mongrel-intelligence:devfrom
jkwiecien-solvd:fix/pm-webhook-display-url
Jun 12, 2026
Merged

fix(web): show real PM webhook callback URL in Trello/JIRA wizard#1401
zbigniewsobiecki merged 2 commits into
mongrel-intelligence:devfrom
jkwiecien-solvd:fix/pm-webhook-display-url

Conversation

@jkwiecien-solvd

Copy link
Copy Markdown
Contributor

Problem

The Trello and JIRA webhook wizard steps displayed the webhook URL as ${origin}/webhooks/<project>/<provider>, but:

  • The router serves /<provider>/webhook (e.g. /trello/webhook), not /webhooks/<project>/<provider>.
  • The value actually registered with Trello/JIRA (and the curl example shown right below it) is ${callbackBaseUrl}/<provider>/webhook.

So the displayed URL and the real callback diverged. An operator copying the shown URL points the provider at a path the router never handles — it falls through to the dashboard SPA (returns the HTML app, not the webhook handler), so deliveries silently go nowhere. This was hit live while configuring a Trello integration behind a Cloudflare tunnel.

Fix

Derive the displayed webhookUrl from callbackBaseUrl with the correct /<provider>/webhook suffix, so the wizard shows exactly what gets registered.

  • trello/wizard.ts: webhookUrl = callbackBaseUrl ? ${callbackBaseUrl}/trello/webhook : ''
  • jira/wizard.ts: webhookUrl = callbackBaseUrl ? ${callbackBaseUrl}/jira/webhook : ''
  • Moved each after callbackBaseUrl is computed (it was referenced before definition otherwise).

Linear already used the correct ${routerOrigin}/linear/webhook form — no change needed.

Notes

Display-only change; the actual create/delete mutations already used callbackBaseUrl + /<provider>/webhook server-side, so previously-created webhooks are unaffected. Lint + typecheck pass.

🤖 Generated with Claude Code

jkwiecien-solvd and others added 2 commits June 12, 2026 11:46
The Trello and JIRA webhook steps displayed `${origin}/webhooks/<project>/<provider>`
as the webhook URL, but the router serves `/<provider>/webhook` and the actual
registered callback (and the curl example) is `${callbackBaseUrl}/<provider>/webhook`.

The displayed URL and the real callback diverged, so operators copying the shown
URL pointed Trello/JIRA at a path the router never handles (it falls through to the
dashboard SPA). Derive the displayed `webhookUrl` from `callbackBaseUrl` with the
correct `/<provider>/webhook` suffix so the wizard shows exactly what gets
registered. Linear already used the correct `${routerOrigin}/linear/webhook` form.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@zbigniewsobiecki zbigniewsobiecki merged commit faa92dd into mongrel-intelligence:dev Jun 12, 2026
5 checks passed
@codecov

codecov Bot commented Jun 12, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

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