build(deps-dev): bump vscode postcss + brace-expansion; deterministic add --all abort test - #152
Merged
Conversation
… /vscode - postcss 8.5.19 -> 8.5.25: attacker-controlled sourceMappingURL reads arbitrary .map files when `from` is unset (GHSA follow-up fix) - brace-expansion 5.0.8 -> 5.0.9: DoS via unbounded intermediate arrays Lockfile-only, within existing semver ranges (via @vscode/vsce -> minimatch and tsup/vite -> postcss). vscode npm audit: 0 vulnerabilities. NOT addressed (upstream-blocked): root brace-expansion 5.0.7 + undici 8.5.0 are pinned inside @earendil-works/pi-coding-agent's npm-shrinkwrap.json — overrides/audit fix are silently ignored for shrinkwrapped subtrees, and even pi-coding-agent 0.83.0 still declares undici 8.5.0 exactly. Needs an upstream pi release + a reviewed pin bump.
… test The 100ms 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 — failing both assertions intermittently (bit this run and PR #149's CI). Abort once the wave-0 member is visibly written, when the run is provably inside the 60s between-wave settle sleep whose abort path rejects with the reason. Bail out early if the run settles first so a real failure surfaces through assert.rejects instead of an unhandled rejection + poll-to-deadline.
Merged
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 -->
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.
Closes out the current Dependabot security sweep (https://github.com/kdr/overcast/security/dependabot).
What
postcss8.5.19 → 8.5.25 — attacker-controlledsourceMappingURLreads arbitrary.mapfiles whenfromis unset (alert Add evidence-only case memory and typed indexes #22; via tsup/vite)brace-expansion5.0.8 → 5.0.9 — DoS via unbounded intermediate arrays (flagged bynpm audit, no open Dependabot PR; via@vscode/vsce→ minimatch)npm auditafter: 0 vulnerabilitiesaborting 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 genericAbortError(reason demoted tocause) instead ofsignal.reason, and wave-0 membership may not be written yet — intermittently failing both assertions (this reddened Build(deps): Bump postcss from 8.5.19 to 8.5.25 in /vscode #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 throughassert.rejects.Triage context (same sweep, handled outside this PR)
Not addressed — upstream-blocked (alerts #19, #11–13)
Root
brace-expansion@5.0.7(high) andundici@8.5.0(3 medium) are pinned inside@earendil-works/pi-coding-agent's publishednpm-shrinkwrap.json. Rootoverridesandnpm audit fixsilently no-op on the shrinkwrapped subtree (audit even prints "fix available", then changes nothing), and pi-coding-agent 0.83.0 still declaresundici@8.5.0exactly — 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)
npm testnpm run test:e2e(offline)npm run typechecktypecheck/build/test/package.vsixpackaged (vsce = the brace-expansion consumer)npm run test:e2e:live(compiled bun binary)xno-hits, brain-LLMseeempty responses)The 7 persistent live failures are external-data conditions, not code: Apify lens actor returning no hits today (4 assertions),
chain:btchead tx currently unconfirmed sopayload.createdis null by design (chain.shmapsstatus.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)
20bchain case could tolerate an unconfirmed head tx (assertcreatedonly on confirmed txs).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
postcssto 8.5.25 andbrace-expansionto 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 --allbackpressure abort test no longer firesAbortControllerafter 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-wavesleepwhere rejection usessignal.reason, avoiding flakyassert.rejectsand wrong member counts under full-suite load.Reviewed by Cursor Bugbot for commit 836b3fb. Bugbot is set up for automated code reviews on this repo. Configure here.