Skip to content

Build(deps-dev): Bump undici from 7.28.0 to 7.29.0 in /vscode - #147

Merged
kdr merged 1 commit into
mainfrom
dependabot/npm_and_yarn/vscode/undici-7.29.0
Aug 5, 2026
Merged

Build(deps-dev): Bump undici from 7.28.0 to 7.29.0 in /vscode#147
kdr merged 1 commit into
mainfrom
dependabot/npm_and_yarn/vscode/undici-7.29.0

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Aug 4, 2026

Copy link
Copy Markdown
Contributor

Bumps undici from 7.28.0 to 7.29.0.

Release notes

Sourced from undici's releases.

v7.29.0

⚠️ Security fixes

High severity

  • GHSA-4cwx-7wf7-3272: malformed qualified private Cache-Control directives could cause cross-user information disclosure in shared caches or a parse-time crash. The cache parser now treats empty qualified directives conservatively and safely handles mixed qualified and unqualified directives. Fixed by 9f10f1e9, with regression coverage in 466e99d1.

Medium severity

  • GHSA-m8rv-5g2x-5cg5: a malicious type property on a duck-typed blob-like HTTP/1.1 request body could inject CRLF sequences into the generated content-type header. Undici now coerces and validates the value before adding it to the request. Fixed by 33928bc2.
  • GHSA-jr45-8vmc-qm54: optional whitespace around = in qualified no-cache and private directives could bypass shared-cache restrictions and disclose authenticated data across users. Cache-Control parsing now normalizes these forms and applies conservative cache decisions. Fixed by 98011a86.
  • GHSA-8xcm-r25x-g524: the retry interceptor could expose a stale Content-Length after resuming a partial response, potentially causing downstream response desynchronization, hangs, or corruption. Undici now rejects partial responses whose Content-Length is inconsistent with Content-Range. Fixed by 1b5a5312, with corrected fixtures in 4a9dafb1.
  • GHSA-v3r7-h72x-cjcm: unsanitized domain and unparsed values passed to setCookie() could inject cookie attributes. Undici now validates cookie domains, paths, and unparsed attributes more strictly. Fixed by 3bf91ddb.

Full Changelog: nodejs/undici@v7.28.0...v7.29.0

Commits
  • 9e38fc1 Bumped v7.29.0 (#5590)
  • d887e34 fix: validate coerced header values for CRLF (#5579)
  • 33928bc fix: validate blob body content type
  • 98011a8 fix(cache): harden cache directive parsing
  • 4a9dafb test(retry): correct broken content-range fixtures in retry-handler.js
  • 1b5a531 fix(retry): reject partial content length mismatch
  • 466e99d test: cover crash on mixed unqualified and qualified private cache directives
  • 9f10f1e fix: handle empty qualified private cache directive
  • 3bf91dd fix: harden cookie domain, path, and unparsed attribute validation
  • See full diff in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    You can disable automated security fix PRs for this repo from the Security Alerts page.

Note

Low Risk
Lockfile-only dev dependency patch with no runtime code changes; risk is limited to tooling/test dependency resolution behavior.

Overview
Bumps the dev transitive undici lockfile entry in vscode/package-lock.json from 7.28.0 to 7.29.0 (resolved tarball and integrity hash only; no application source changes).

This patch release addresses several HTTP client security issues (Cache-Control parsing, blob content-type CRLF injection, retry Content-Length handling, and setCookie() validation) that affect the Node fetch stack used indirectly via dependencies such as cheerio.

Reviewed by Cursor Bugbot for commit 140f4d7. Bugbot is set up for automated code reviews on this repo. Configure here.

Bumps [undici](https://github.com/nodejs/undici) from 7.28.0 to 7.29.0.
- [Release notes](https://github.com/nodejs/undici/releases)
- [Commits](nodejs/undici@v7.28.0...v7.29.0)

---
updated-dependencies:
- dependency-name: undici
  dependency-version: 7.29.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file javascript Pull requests that update javascript code labels Aug 4, 2026
@kdr
kdr merged commit c16b3f3 into main Aug 5, 2026
5 checks passed
@kdr
kdr deleted the dependabot/npm_and_yarn/vscode/undici-7.29.0 branch August 5, 2026 04:56
kdr added a commit that referenced this pull request Aug 5, 2026
… add --all abort test (#152)

Closes out the current Dependabot security sweep
(https://github.com/kdr/overcast/security/dependabot).

## What

- **vscode/package-lock.json (lockfile-only, within existing semver
ranges):**
- `postcss` 8.5.19 → 8.5.25 — attacker-controlled `sourceMappingURL`
reads arbitrary `.map` files when `from` is unset (alert #22; via
tsup/vite)
- `brace-expansion` 5.0.8 → 5.0.9 — DoS via unbounded intermediate
arrays (flagged by `npm audit`, no open Dependabot PR; via
`@vscode/vsce` → minimatch)
  - vscode `npm audit` after: **0 vulnerabilities**
- **test/unit/face-index.test.ts:** deterministic abort point for
`aborting during add --all backpressure stops before the next wave`. The
100 ms wall-clock abort raced wave 0's child processes under suite load:
landing mid-spawn surfaces node's generic `AbortError` (reason demoted
to `cause`) instead of `signal.reason`, and wave-0 membership may not be
written yet — intermittently failing both assertions (this reddened
#149's CI and one local full run). The test now aborts only once the
wave-0 member is visibly written, i.e. provably inside the 60 s
between-wave settle sleep whose abort path rejects with the reason; if
the run settles first the poll bails so the real error surfaces through
`assert.rejects`.

## Triage context (same sweep, handled outside this PR)

- Merged: #150 (root postcss 8.5.25), #151 (vscode fast-uri 3.1.5) —
both green; alerts #21/#23 auto-closed.
- Closed: #149 (vscode postcss) as superseded — its only CI failure was
the flaky test fixed here; its bump is included here.
- Already on main: #147 (vscode undici 7.29.0).

## Not addressed — upstream-blocked (alerts #19, #11–13)

Root `brace-expansion@5.0.7` (high) and `undici@8.5.0` (3 medium) are
pinned inside `@earendil-works/pi-coding-agent`'s published
`npm-shrinkwrap.json`. Root `overrides` and `npm audit fix` silently
no-op on the shrinkwrapped subtree (audit even prints "fix available",
then changes nothing), and pi-coding-agent 0.83.0 still declares
`undici@8.5.0` exactly — the only real fix is an upstream pi release
with a refreshed shrinkwrap, then a reviewed exact-pin bump. Interim
reachability: pi 0.83.0's undici use has no cache/retry interceptors
(the CVE surfaces), and its minimatch patterns are config-driven, not
attacker input.

## Verification (all on this branch, full unfiltered output)

| suite | result |
| --- | --- |
| `npm test` | **1319/1319 pass**, exit 0 |
| `npm run test:e2e` (offline) | **367/367 passed, 0 failed**, exit 0 |
| `npm run typecheck` | exit 0 |
| vscode `typecheck` / `build` / `test` / `package` | exit 0 / exit 0 /
**56/56** / `.vsix` packaged (vsce = the brace-expansion consumer) |
| `npm run test:e2e:live` (compiled **bun binary**) | **767/778 passed,
11 failed** |
| live re-run of the 5 failing cases (same binary) | **187/194 passed, 7
failed** — 4 recovered (transient: Apify `x` no-hits, brain-LLM `see`
empty responses) |

The 7 persistent live failures are external-data conditions, not code:
Apify lens actor returning no hits today (4 assertions), `chain:btc`
head tx currently **unconfirmed** so `payload.created` is null by design
(`chain.sh` maps `status.block_time // null`), and one borderline CLIP
text×image ranking. The bun binary under test is content-identical to
main's (this diff is vscode-lockfile + a unit test only; root lockfile
byte-identical after rebase), so those reflect main's current live
status, not this PR.

Flake-fix determinism: patched test file green 3×3 isolated runs + full
suite green (previously failed the full-suite run).

## Follow-up suggestions (not in this PR)

- Watch pi upstream for a shrinkwrap refresh to clear alerts #19/#11–13
via a reviewed pin bump.
- The live `20b` chain case could tolerate an unconfirmed head tx
(assert `created` only on confirmed txs).

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> **Low Risk**
> Lockfile-only dependency patches plus a unit-test timing fix; no
production runtime or application logic changes.
> 
> **Overview**
> **Dependency updates (vscode lockfile only):** bumps `postcss` to
8.5.25 and `brace-expansion` to 5.0.9 within existing semver ranges to
address Dependabot/npm audit findings (source map path handling and
minimatch DoS).
> 
> **Test stability:** the `index add --all` backpressure abort test no
longer fires `AbortController` after a fixed 100ms. It waits until wave
0 has written at least one index member (or the run settles), so abort
happens during the long between-wave `sleep` where rejection uses
`signal.reason`, avoiding flaky `assert.rejects` and wrong member counts
under full-suite load.
> 
> <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit
836b3fb. Bugbot is set up for automated
code reviews on this repo. Configure
[here](https://www.cursor.com/dashboard/bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
@kdr kdr mentioned this pull request Aug 5, 2026
kdr added a commit that referenced this pull request Aug 5, 2026
Patch version bump so the Dependabot lockfile fixes
(#147/#150/#151/#152) ship to npm.

`npm version patch --no-git-tag-version` per RELEASING.md —
`sync-version.mjs` propagated 0.0.15 to `src/version.ts`,
`.claude-plugin/plugin.json`, `.claude-plugin/marketplace.json`, and
`vscode/package.json`+lock (7 files, verified with `sync-version.mjs
--check`).

After merge, cut the tag on main to trigger the npm publish + binary
release train:

```bash
git checkout main && git pull && git tag v0.0.15 && git push origin v0.0.15
```

## Verification

| suite | result |
| --- | --- |
| `npm test` | **1319/1319 pass**, exit 0 |
| `npm run test:e2e` (offline) | **367/367 passed, 0 failed**, exit 0 |
| `node scripts/sync-version.mjs --check` | all surfaces match 0.0.15 |
| `node dist/bin/overcast.js --version --json` |
`{"overcast":"0.0.15","pi":"0.82.1","node":"24.17.0"}` |

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> **Low Risk**
> Version-metadata-only bump with no runtime or security logic changes.
> 
> **Overview**
> **Patch release** that bumps the published version from **0.0.14** to
**0.0.15** so recent lockfile/dependency fixes can ship on npm and the
release train.
> 
> The change is limited to synchronized version strings: root
`package.json` / `package-lock.json`, `OVERCAST_VERSION` in
`src/version.ts`, Claude plugin metadata (`plugin.json`,
`marketplace.json`), and the VS Code extension `package.json` /
lockfile. No application logic or behavior changes in this diff.
> 
> <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit
2501773. Bugbot is set up for automated
code reviews on this repo. Configure
[here](https://www.cursor.com/dashboard/bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file javascript Pull requests that update javascript code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant