fix: include Smee client in production image - #19
Merged
Conversation
zeyu2001
marked this pull request as ready for review
August 8, 2026 10:54
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
smee-clientin production dependenciesRoot cause
The Dockerfile sets
NODE_ENV=productionbefore runningnpm ci. Becausesmee-clientwas listed underdevDependencies, npm omitted it from the deployed image. Probot therefore started the HTTP server but warned that the Smee client was unavailable and never connected to the configured webhook proxy.GitHub App delivery history confirmed that
pull_requestevents received HTTP 200 from the configured Smee channel, while a no-diff smoke PR produced noSafe-setting validatorcheck in the app and the pod had no established Smee connection.Validation
npm run test:unit:ci— 16 suites passed, 137 tests passed, 14 skippednpm run lint:lockfile— passednpm ls smee-client --omit=dev— resolvessmee-client@5.0.0require.resolve('smee-client')inside the production image —/opt/safe-settings/node_modules/smee-client/index.jsgit diff --check— passedThe repository-wide JavaScript lint still reports pre-existing violations in unchanged source and test files.
Post-merge proof
After auto-deployment, open a fresh no-diff pull request and verify that the GitHub App creates and completes the
Safe-setting validatorcheck, then remove the temporary PR and branch.Note
Low Risk
Dependency classification and lockfile metadata only; no application logic changes, but it affects how production containers receive GitHub webhooks via Smee.
Overview
Moves
smee-clientfromdevDependenciestodependenciesinpackage.json, with matchingpackage-lock.jsonupdates so production installs include it and its runtime deps (eventsource, etc.) are no longer marked dev-only.This fixes deployed images built with
npm ciunder production/NODE_ENV=production, where the Smee webhook proxy client was previously omitted and Probot could not connect to the configured Smee channel despite returning HTTP 200 for deliveries.Reviewed by Cursor Bugbot for commit 4b0f43f. Bugbot is set up for automated code reviews on this repo. Configure here.