Skip to content

ENG-175: move webhook parsing + MCP discovery to worker; remove backend docker#267

Merged
betterclever merged 8 commits intomainfrom
codex/eng-175-webhook-parsing-worker
Feb 6, 2026
Merged

ENG-175: move webhook parsing + MCP discovery to worker; remove backend docker#267
betterclever merged 8 commits intomainfrom
codex/eng-175-webhook-parsing-worker

Conversation

@betterclever
Copy link
Contributor

Addresses Linear ENG-175.

Changes:

  • Webhook parsing runs via Temporal in the worker (backend no longer runs parsing/docker directly).
  • Removed all backend direct Docker spawning for MCP discovery and made controller leaner.
  • MCP library UI cleanup: remove duplicate group import button, simplify group import UX.
  • Fix: MCP group tool counts show immediately after import (no refresh needed).

Testing:

  • bun run typecheck
  • bun run test
  • RUN_E2E=true bun test e2e-tests/webhooks.test.ts

Linear: https://linear.app/shipsec-ai/issue/ENG-175/webhook-parsing-test-fails-docker-api-connection-error-no-such-file-or

Signed-off-by: betterclever <paliwal.pranjal83@gmail.com>
Signed-off-by: betterclever <paliwal.pranjal83@gmail.com>
Signed-off-by: betterclever <paliwal.pranjal83@gmail.com>
Signed-off-by: betterclever <paliwal.pranjal83@gmail.com>
Signed-off-by: betterclever <paliwal.pranjal83@gmail.com>
Signed-off-by: betterclever <paliwal.pranjal83@gmail.com>
Signed-off-by: betterclever <paliwal.pranjal83@gmail.com>
Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: ca801103c7

ℹ️ 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".

input: ExecuteWebhookParsingScriptActivityInput,
) => Promise<Record<string, unknown>>;
}>({
startToCloseTimeout: '2 minutes',

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Disable automatic retries for webhook parsing activity

When the user parsing script throws (syntax/runtime error), webhookParsingWorkflow will keep retrying executeWebhookParsingScriptActivity with Temporal's default retry policy because only startToCloseTimeout is set here and no retry policy limits attempts. In this flow the backend blocks on temporalService.getWorkflowResult(...) in WebhooksService.executeParsingScript, so a permanently failing script can leave webhook deliveries stuck in processing and the request hanging until infrastructure timeouts instead of failing fast. Please set retry.maximumAttempts (typically 1) or a bounded scheduleToCloseTimeout for this activity.

Useful? React with 👍 / 👎.

Signed-off-by: betterclever <paliwal.pranjal83@gmail.com>
@betterclever
Copy link
Contributor Author

CI lint failures were prettier/prettier formatting issues. Ran eslint --fix (backend + worker) and pushed.

Also addressed potential infinite retry/hanging webhook parsing: webhookParsingWorkflow now bounds activity retries (maximumAttempts=1) and uses a bounded scheduleToCloseTimeout/startToCloseTimeout derived from input.timeoutSeconds (default 120s, capped at 10m).

@betterclever betterclever merged commit c555903 into main Feb 6, 2026
3 checks passed
@LuD1161 LuD1161 deleted the codex/eng-175-webhook-parsing-worker branch February 6, 2026 22:29
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