Repository navigation
fix(deps): upgrade dependencies - #107
Conversation
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
There was a problem hiding this comment.
I reviewed this PR and didn't find any bugs. A human should still take a look, because it changes runtime dependencies: zod moves from 4.4.3 to 4.6.6 and a global override puts viem, mppx and the MCP SDK on that same version. It also forces major-version bumps through overrides (toml 5, glob 14, minimatch 11).
What was reviewed:
pnpm-workspace.yaml: each new or bumped override has a matching lockfile entry. The image-size patch, itspatchedDependenciesentry and bothignoreGhsasexceptions are removed together, so no audit exception is left without its patch.- Lockfile: zod 4.4.3 and 4.6.5 collapse to 4.6.6 everywhere. glob 10's helper packages (jackspeak, foreground-child, path-scurry 1, minimatch 9) are dropped cleanly.
src/lib/dependencyPatches.test.ts: the image-size path now uses thedist/cjsanddist/esmfolders, and a new check covers the zero-length ICNS hang (GHSA-w3rx-r6r6-pgpr).
Extended reasoning...
The change bumps dependency versions in package.json, pnpm-workspace.yaml and pnpm-lock.yaml, removes the local image-size patch in favor of upstream 2.0.3, and adjusts one regression test. It does not touch the bot's own code paths. However, zod is the runtime validator for webhook and API payloads, and the new global zod override also affects viem, mppx and the MCP SDK. Combined with three forced major-version bumps (toml under remark-mdx-frontmatter, glob and minimatch under archiver), that is enough to want a maintainer's look at compatibility. The bug hunt found nothing, and the overrides are documented in comments.
|
The latest Tipbot preview deployment for 5689943
|
Fixes all 24 open Dependabot alerts on tip.bot (8 High, 14 Medium, 2 Low), plus the two Medium
pnpm auditfindings (glob, minimatch) that would otherwise fail CI'spnpm auditstep.Advisories fixed
package.json+zod: 4.6.6override (mppx, MCP SDK, viem pulled 4.6.5)config/patches/image-size@2.0.2.patch, itspatchedDependenciesentry and the twoauditConfig.ignoreGhsasexceptionspackageExtensionsremark-mdx-frontmatter>tomloverride@hono/node-server@<2.1.3overridereaddir-glob>minimatchoverridearchiver-utils>globoverridepnpm auditflags it)All new versions are older than the repo's 1-day
minimumReleaseAge, so no newminimumReleaseAgeExcludeentries are needed. The stale excludes for the replaced versions (fast-uri@3.1.8,ip-address@10.7.1,undici@7.29.1) were removed. Comments inpnpm-workspace.yamlare kept.glob and minimatch are major bumps, but they only affect dev and test code: testcontainers → archiver. archiver only calls
glob.syncandnew Minimatch(...), which glob 14 and minimatch 11 still export. I smoke-testedarchiver('tar')with.glob()and.directory()on glob 14.0.2 and it worked.src/lib/dependencyPatches.test.tsnow loads image-size 2.0.3'sdist/cjsanddist/esmbuilds (2.0.2 shipped.cjs/.mjs). It also has a regression check: a zero-length ICNS entry now throws, where 2.0.2 hung (checked against unpatched 2.0.2 withtimeout 5).Checks
pnpm install --frozen-lockfile(pnpm 11.0.7): passpnpm audit(the CI step): no vulnerabilities (before this PR it exited 1)pnpm check: passpnpm check:types: passpnpm test: 15 files, 359 tests passedpnpm build: passosv-scanner scan source -r .: no issues foundpnpm test:e2e: not run locally (needs Playwright browsers); left to CIExposure
z.arrayschema. tip.bot uses array schemas only on Slack and X webhook bodies, and both are checked by HMAC signature before parsing: Slack atsrc/api.ts:1065, with its arrays atsrc/api.ts:1094andsrc/lib/slack.ts:139(used atsrc/chat.ts:285); X atsrc/api.ts:1041, which comes beforeTwitter.handleWebhookatsrc/api.ts:1047andtweet_create_events: z.arrayatsrc/lib/twitter.ts:833. The public JSON validators insrc/api.ts(hono.validator) have no array schemas. So an outside attacker cannot reach this path. Only Slack or X themselves, or someone holding the signing secrets, could send such a payload.tapimo/client(src/lib/tapimo.ts:2), and thepnpm buildoutput does not contain image-size. The local patch already covered it, and this PR swaps the patch for the upstream fix.Dependency scan (centaur-tempo dependency-scan)
pnpm-lock.yaml: before this PR, 3 Medium (glob, 2× minimatch); after, none..github/dependabot.yml: alerts and security updates come from repo settings. Version updates and cooldown are not configured.minimumReleaseAge: 1440,minimumReleaseAgeStrict,blockExoticSubdeps,strictDepBuildsandallowBuildsare set.trustPolicy: no-downgradeis not set.