Skip to content

chore(deps-dev): bump vitest from 4.1.7 to 4.1.8 - #23

Open
dependabot[bot] wants to merge 26 commits into
mainfrom
dependabot/npm_and_yarn/vitest-4.1.8
Open

chore(deps-dev): bump vitest from 4.1.7 to 4.1.8#23
dependabot[bot] wants to merge 26 commits into
mainfrom
dependabot/npm_and_yarn/vitest-4.1.8

Conversation

@dependabot

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

Copy link
Copy Markdown
Contributor

Bumps vitest from 4.1.7 to 4.1.8.

Release notes

Sourced from vitest's releases.

v4.1.8

   🐞 Bug Fixes

    View changes on GitHub
Commits
  • e61f2dd chore: release v4.1.8
  • e4067b3 fix(browser): disable client cdp API when allowWrite/allowExec: false [ba...
  • See full diff in compare view

Note
Automatic rebases have been disabled on this pull request as it has been open for over 30 days.

rm-rf-prod added 23 commits May 30, 2026 23:31
- typescript ^5.9.3 -> ^6.0.3; eslint ^10.4.0 -> ^10.4.1
- tsconfig: module/moduleResolution Node16 -> NodeNext, target/lib
  ES2022 -> ES2023 (no import changes needed for ESM + .js specifiers)
- .node-version 22.11.0 -> 24.15.0 to match the runtime/Dockerfile and
  end the three-way CI/prod drift; engines kept at >=22 for compatibility
- CLAUDE.md: correct the Node + TypeScript facts

Verified: typecheck, 1119 tests, lint, and the obfuscation build all
pass under TS6; npm audit reports 0 vulnerabilities.
- snippet-extract: IDF-weight query terms so a library-name token present
  in every snippet no longer dominates ranking (Context7 parity gap)
- cache: drop the never-consumed _staleKeys/getStaleKeys revalidation
  tracking (dead code); keep beneficial serve-stale within the SWR window
- lockfile: detect all package versions in parallel (auto-scan requests
  20+ at once against the same lockfiles)
- telemetry: type the log entry as LogEntry instead of casting `as never`
probeLlmsTxt built its probe URLs from the normalized base path but
keyed the cache on origin only, so two libraries hosted on the same
domain under different paths (docs.example.com/react vs /vue) shared a
single probe result. Key on the full normalized base instead.
The npm-version stats sweep matched `v7.0.0` inside CI workflow comments
(e.g. actions/upload-artifact # v7.0.0) and bumped them to the gt-mcp
version, making the SHA-pin comment lie. Skip .github/ in the sweep.
Also refreshes llms.txt to v7.0.1.
Constant-time bearer-token comparison (timingSafeEqual) and CSP/COOP/CORP
headers on the HTTP transport. Block CGNAT 100.64.0.0/10 (cloud metadata)
and fail closed on malformed IPs in the SSRF guard. Cap remote response
bodies at 5MB to stop OOM from hostile upstreams. Log SSRF-blocked
redirects/Jina fetches and disk-cache write failures instead of swallowing
them. Escape all regex metacharacters in the dynamic version matcher (ReDoS).
Reject 0 for timeout/concurrency env vars; make deepFetchRelevanceThreshold
env-tunable. Emit raw Prometheus error counts, render all logger fields and
strip CR/LF (log injection). Prune respects the SWR stale window; the disk
cache validates deserialized shape before serving.
resolveFromPypi now carries llmsFullTxtUrl like the other resolvers.
gt_migration with only a target version no longer collapses the release
band to a single major (the lower bound opens to -Infinity). gt_compat
cache key includes the token budget so a truncated result is never served
to a request asking for more tokens.
22 reference entries had an empty language array; set the "agnostic"
sentinel and add a non-empty invariant test. schemas.test now registers and
snapshots gt_dispatch (the count was a 13-vs-14 undercount). README tool
table lists all 14 tools (gt_snippets and gt_dispatch were missing).
Closes the remaining security/reliability findings from the 2026-06-02
deep audit, each verified against OWASP/Unicode/Node docs and covered by
new tests:

- SEC-002: strip variation selectors (U+FE00-FE0F), Mongolian FVS and the
  Tag block (U+E0000-E007F) in the injection-scan projection so split
  keywords ("i<VS>gnore previous") can no longer bypass detection. Content
  strip preserves FE0F so emoji survive.
- SEC-007: realpathSync before the safeguardPath boundary check so a
  symlink inside an allowed dir cannot reach a blocked system path.
- SEC-009: sanitize fetched documentation before it is written to the
  mem/disk cache (cacheDoc helper) so poisoned content is never persisted
  raw; npm/pypi/sitemap JSON writes are deliberately left untouched.
- SEC-012: GT_NO_WATERMARK=1 opt-out for air-gapped/multi-tenant installs.
- REL-002: single-flight half-open probe (probePending) so a recovering
  circuit no longer lets every concurrent caller stampede the upstream.
- REL-004: guard FetchSemaphore.release against underflow.
- REL-007 / TS-011: disk-cache prune re-reads the dir for the live count
  and drops corrupt-but-parseable entries instead of leaking them.
- TS-005 / TS-006: shape-guard sitemap and snippet-index cache reads.
- EH-004: log GitHub releases fetch failures at debug.
- CORR-006: minimum fuzzy-match score (parameterised fuzzySearch) so a
  generic query like "how to build a rest api" no longer misroutes to a
  build-tool library's best practices.
- CORR-007: gt_batch_resolve route now parses library names from the query
  (and falls back to gt_search) instead of emitting args that fail Zod.
- CORR-002/003/004/005: carry llmsFullTxtUrl on registry matches, stop
  external npm/pypi fallback when fuzzy already returned good results,
  dedupe crates/go results, and token-match the ranking query.
- CORR-010/011: version-tagged README fallback in gt_get_docs; wrap the
  gt_best_practices handler in withTelemetry so it reports metrics.
- COR-001/008: parse single-line go.mod requires, Poetry dev-dependencies
  and PEP 735 dependency-groups in gt_auto_scan.
- EH-005: log external resolver failures at debug.
- TS-002/009/010: replace casts with type guards/predicates.
- PERF-003: tokenize each section once and reuse across avgDocLen, IDF and
  BM25 scoring (was O(N*Q) re-tokenization). Ranking output is unchanged.
- PERF-005: cap code-block count/size before tokenizing in BM25 scoring.
- PERF-004: match hyphenated HTML5 custom-element closing tags when
  stripping noisy elements.
- PERF-006: halve the deep-fetch direct-hit fan-out (12 -> 6 URLs).
- COR-010: close a fenced code block per CommonMark (run length + char),
  so a nested longer fence no longer terminates it early.
- OBS-006: log deep-fetch pipeline timeouts at warn for visibility.
Move the ~4.8KB McpServer instructions template out of index.ts into
buildServerInstructions(toolCount) so it can be unit-tested and edited in
isolation. toolCount stays sourced from the TOOL_COUNT constant. (MX-004)
- BSC-002/005/006: SHA-pin actions, use .node-version, and add a
  concurrency block in security.yml (matching ci.yml).
- BSC-003: download the mcp-publisher binary to a file instead of piping
  curl into tar, so an integrity check can be added later.
- BSC-008: pin the publish-time npm upgrade to the 11.x major.
- BSC-001: gate the release:* scripts on typecheck + test (not
  prepublishOnly, to avoid a CI double-run).
- BSC-004: fail update-stats instead of writing a wrong test-count badge
  when vitest is unavailable.
- MX-002/005b: write TOOL_COUNT back to constants.ts and fix the README
  comparison-table tool count + tools badge automatically.
Lock in every behaviour change from this wave: Unicode injection-bypass
blocking, symlink path guard, sanitize-before-cache, single-flight circuit
probe, cache prune/shape guards, router misroute + batch-resolve routing,
resolver llmsFullTxtUrl/dedup/fallback, go.mod + PEP 735 scanning, CommonMark
fence close, custom-element stripping, watermark opt-out, and the new
buildServerInstructions module. Suite: 1120 -> 1198, all green.
Regenerated by update-stats: test badge, tool count in the comparison
table, and prose counts.
The version lifecycle sweep rewrites llms.txt but did not stage it, so it
drifted after each release. Add it to the version git-add list.
The shared sanitizeContent chokepoint (every fetched doc passes through it
via cacheDoc) was incomplete, so noise survived on the Jina/llms.txt/
GitHub-raw paths that bypass html-to-md. Harden it: CRLF normalization,
full HTML-entity decoding (named + numeric + hex), Cloudflare email-
protection decode/strip, orphan comment markers, and newline-separated
nav chrome (version switchers, Prev/Up/Home/Next pagers, event headings).
Entity decode runs AFTER the surgical tag strips so docs that teach the
script/head elements keep their literal text instead of being stripped.

Also fix the relevance/reliability bugs that surfaced as noise:
- gt_search: drop score-1 generic topic co-matches when a specific multi-
  word topic matched (no more PostgreSQL reference page for an OWASP SQL-
  injection query); cap topic sources before fetching, not after.
- gt_best_practices: defer canonical best-practices URLs when the topic
  matches none of them, and keep short version tokens (v4), so
  "tailwind v4 migration" no longer returns optimizing-for-production;
  known URLs kept as a guaranteed last-resort fallback (never empties).
- gt_snippets: fall back to the GitHub README when a landing-page-only
  doc yields no fenced code blocks.
- gt_examples: exclude markdown/doc files from GitHub code search.

New shared util src/utils/decode-entities.ts consumed by both sanitize.ts
and html-to-md.ts. 34 new regression tests added; 1232 passing.
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file javascript Pull requests that update javascript code labels Jun 4, 2026
rm-rf-prod and others added 3 commits June 12, 2026 17:24
Every topic-targeted tool now verifies its final output against the
request before returning. checkEvidence() requires repeated topic
occurrences, a heading hit, or topic tokens inside code — a single
passing mention no longer counts as an answer. Failing output triggers
one forced topic-targeted deep fetch (new deepFetchForTopic force
param); when the topic never appears at all, tools return an explicit
"no topic-specific evidence found" miss with the sources checked and a
content outline instead of off-topic intro sections. Successful
responses carry an "## Evidence" footer (source URLs, fetch date,
topic-coverage stats) and an evidence verdict in structuredContent.

Root causes this kills:
- BM25 zero-score fallthrough served a doc's first sections (generic
  intro) whenever the topic was absent
- Docsify hash-route URLs (getpino.io/#/docs/web) always fetched the
  homepage — fragments never reach the server; new docsifyToRaw()
  rewrites to the raw .md path
- gt_audit fix guidance: every perf finding got the LCP article,
  security fell back to an OWASP index page, and any 200-char
  tangential snippet passed — now metric-specific web.dev articles,
  per-class OWASP cheat sheets, per-rule typescript-eslint pages, all
  evidence-gated with source attribution
- gt_compat scraped MDN/caniuse search-results pages — now resolves
  real MDN documents via the search JSON API, search pages demoted to
  labeled weak evidence
- gt_search stages 7/8 passed search-results shells on length alone —
  fetchTopicContent now drops zero-coverage pages and only caches
  verified text
- gt_snippets returned an empty shell when a topic matched nothing —
  now lists what the index does cover
- audit seo pattern flagged every component for missing
  generateMetadata (content/path confusion) — patterns now receive the
  file path
Bumps [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) from 4.1.7 to 4.1.8.
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Changelog](https://github.com/vitest-dev/vitest/blob/main/docs/releases.md)
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.1.8/packages/vitest)

---
updated-dependencies:
- dependency-name: vitest
  dependency-version: 4.1.8
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot
dependabot Bot force-pushed the dependabot/npm_and_yarn/vitest-4.1.8 branch from fe526cf to 3214c7a Compare June 12, 2026 15:27
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