Repository navigation
fix(deps): remove vulnerable ShellJS production dependency chain - #223
Merged
Merged
Conversation
Adding .gitkeep for PR creation (default mode). This file will be removed when the task is complete. Issue: #221
konard
marked this pull request as ready for review
October 11, 2026 00:26
Member
Author
Working session summaryPR #223 is updated and ready for review. Removed the vulnerable production dependency chain while preserving ShellJS compatibility. Clean consumer audits report zero vulnerabilities. Local tests pass, and CI shows 42 passing checks. Changes are pushed, latest main is included, and the working tree is clean. The patch release is prepared. This summary was automatically extracted from the AI working session output. |
Member
Author
🤖 Solution Draft LogThis log file contains the complete execution trace of the AI solution draft process. 💰 Cost estimation:
📊 Context and tokens usage:
Total: (541.8K + 15.0M cached) input tokens, 117.5K output tokens, $6.928797 cost 🤖 Models used:
📎 Log file uploaded as Gist (9433KB)Now working session is ended, feel free to review and add any feedback on the solution draft. |
Member
Author
🎉 Auto-mergedThis pull request has been automatically merged by hive-mind.
|
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.
Installing the published
command-stream@2.0.0in a clean npm project resolvesshelljsand@types/shelljsintofast-glob → micromatch → braces@3.0.3, producing six high severity production audit findings. This PR removes that consumer dependency chain while preserving the ShellJS command API. A clean install of the packed fix reports zero production vulnerabilities, without overrides or advisory exclusions.Fixes #221.
command-stream/shelljs/pluginfor plugins using the bundled instance. A separately installed upstream ShellJS package has separate state; plugin authors use the documented new subpath.require(esm)and merge the Deno loader fix from main. The Deno HTTP smoke test covers core commands, ShellJS commands/globs and depth protection; esm.sh imports usetarget=denonext&conditions=nodeto select Execa's Node filesystem exports. Deduplicate builtin import bindings in the CDN harness. A future published npm/CDN artifact is not verified by this PR.The repository development audit exception remains only for tooling and upstream reference packages. Packed production consumers are audited without it. The
parity-exemptlabel applies because npm packaging and the JavaScript-only compatibility boundary have no Rust runtime equivalent; executable JavaScript/Rust feature parity is still checked.Reproduction and validation
js/tests/production-dependencies.test.mjsfailed all three assertions before implementation, covering the runtime manifest, production lockfile graph and declaration imports.experiments/issue-221/consumer-audit.mjsreproduces the published release and packed fix in isolated npm projects. Reproduction instructions and before/after evidence are committed.Local validation:
bun run check: ESLint, Prettier, duplicate-code threshold and strict TypeScript checks; frozen Bun lockfile and direct-dependency freshness checks.The initial CI failure was run 38094949858 at head
04f5dac: downloaded log lines 640–646 identify the staleserde_jsonversions. The refreshed direct-dependency check reports 89 checked and zero stale.Final CI validation at
413979dpasses the production-install matrix, Node 22/24/26 suites, Linux/macOS/Windows Bun suites, Deno HTTP/CDN imports, security checks, dependency freshness, repository quality and executable language parity.The first Windows attempt in run 38097686334 timed out in the existing PowerShell
get-hostsmoke test. Downloaded job-log lines 6712–6741 show Bun killing the dangling process and its delayed SIGTERM rejection being attributed to the following test. Those tests passed on main in run 38096709358 and in the same-commit rerun. The exact cause of the first timeout was not established; the process launcher, smoke tests and their timeouts are unchanged.