Skip to content

chore: bump vitest from 4.1.11 to 5.0.5 - #93

Merged
dangrondahl merged 1 commit into
mainfrom
dependabot/npm_and_yarn/vitest-5.0.4
Oct 23, 2026
Merged

dangrondahl merged 1 commit into
mainfrom
dependabot/npm_and_yarn/vitest-5.0.4

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Oct 22, 2026 •

Copy link
Copy Markdown
Contributor

Bumps vitest from 4.1.11 to 5.0.5.

Release notes

Sourced from vitest's releases.

v5.0.5

   🐞 Bug Fixes

    View changes on GitHub

v5.0.4

   🚀 Features

   🐞 Bug Fixes

... (truncated)

Commits

@dependabot dependabot Bot added dependencies Pull requests that update a dependency file javascript Pull requests that update javascript code labels Oct 22, 2026
@claude

claude Bot commented Oct 22, 2026 •

Copy link
Copy Markdown

Claude finished @dependabot[bot]'s task in 3m 22s —— View job


Dependency review — vitest 4.1.11 → 5.0.5

  • Read the PR diff
  • Check vitest config and test API usage in test/
  • Check Node floor implications
  • Check CI results
  • Post review

Verdict: safe to merge. A major bump, but it lands on the part of vitest this repo barely touches. One doc follow-up, no blockers.


What actually changed

4.1.11 5.0.5
engines.node ^20.0.0 || ^22.0.0 || >=24.0.0 ^22.12.0 || ^24.0.0 || >=26.0.0
vite direct dependency required peer (^6.4.0 || ^7.0.0 || ^8.0.0)
assertions @vitest/expect chai@^6 + @types/chai as direct deps
internals @vitest/{expect,runner,snapshot,utils,pretty-format} folded into vitest
@types/node peer ^20 || ^22 || >=24 ^22.0.0 || >=24.0.0

Lockfile: 11 packages removed, 2 added — net smaller tree. Vite itself only moves 8.2.2 → 8.3.4 (minor), not a Vite major.

Why the blast radius is small here

  • There is no vitest.config.* in this repo. Every config-shape breaking change in v5 — workspace/projects, pool defaults, the reshaped results cache, --changed behaviour — is a no-op.
  • The suite uses only describe / it / expect / vi.fn / vi.spyOn / vi.stubGlobal / mockReset / it.each with %s titles. No snapshots, no vi.mock, no fake timers, no expect.extend, no globals: true. That is exactly the surface v5 left alone — and it.each uses positional %s, so the 5.0.4 $-value title-truncation changes don't apply.
  • Chai 6 under expect is the one real behaviour risk (deep-equal edge cases, error message wording). The assertions in use are toBe / toEqual / toMatchObject / expect.objectContaining / expect.stringContaining / toHaveBeenCalledWith / toBeInstanceOf — all green.

Node floor: no change needed, but the rationale moved

.nvmrc 22.12, CI matrix ['22.12', '24'], update-catalog.yml 22.12, release.yml 24 — all inside the new range. engines.node (>=22) is the consumer floor and correctly stays put; the consumer-floor: 22.0.0 bundle smoke leg doesn't run vitest.

What did change: the 22.12 dev floor now comes from vitest's own engines, not transitively from Vite 8, and the new range also excludes Node 23 and 25. CLAUDE.md:44 and CONTRIBUTING.md:7 still explain it the old way — inline comment with details and a fix link. Docs-only; nothing to change in package.json.

@types/node — unaffected, rule still holds

The new peer range ^22.0.0 || >=24.0.0 is satisfied by the pinned ^22.12.0. No pressure to bump it off the Node 22 major, and the dependabot.yml major-ignore for @types/node is intact.

Worth knowing (optional, not blocking)

Vite is now a required peer that the repo doesn't declare. npm ci installs it from the lock deterministically (both CI legs prove it), but the Vite major the dev toolchain gets is now governed by vitest's peer range rather than a pin inside vitest. If the lock is ever regenerated from scratch, Vite could in principle resolve to 6 or 7 — whose engines differ — and the dev floor would shift without anyone editing a file. Adding vite to devDependencies would make that visible and Dependabot-tracked. Your call; the current setup is not broken.

CI

test (node 22.12)   pass   42s
test (node 24)      pass   30s

Both legs cover build → typecheck → test → smoke dist/ → pack .mcpb → mcpb validate → smoke the unzipped bundle, and 22.12 also smoke-tests the bundle on the 22.0.0 consumer floor. No follow-up test needed.
· branch

dangrondahl added a commit that referenced this pull request Oct 23, 2026
#96)

## Why

`npm audit --omit=dev` reports 8 advisories (1 critical, 3 high) in the
locked runtime dependencies. This lockfile is what the `.mcpb` bundle
installs from (`pack-mcpb.sh` copies it before `npm install
--omit=dev`), so that's where users get them, along with CI and any scan
of the repo. The npm package doesn't ship a lockfile, so `npx` users
already resolve current versions within the SDK's ranges. All of them
come in indirectly through `@modelcontextprotocol/sdk`:

| Package | Before → after | Pulled in by |
|---|---|---|
| `proxy-addr` (critical) | 2.0.7 → 2.0.8 | express |
| `hono` | 4.12.12 → 4.13.13 | SDK |
| `@hono/node-server` | 1.19.13 → 2.1.5 | SDK (allows `^1.19.9 \|\|
^2.0.5`) |
| `fast-uri` | 3.1.0 → 3.1.9 | ajv |
| `ip-address`, `express-rate-limit` | 10.1.0 → 10.7.4, 8.3.2 → 8.7.1 |
SDK |
| `qs`, `body-parser` | 6.15.1 → 6.16.1, 2.2.2 → 2.4.0 | express |

Most of these belong to the SDK's HTTP server transports, which this
server doesn't use, since it only speaks stdio. Scanners still flag them
in the release.

Nothing would have fixed them otherwise. The weekly Dependabot version
updates bump only direct dependencies, and Dependabot security updates
were off. The repo also showed 0 Dependabot alerts, because the
dependency graph was off. Both are being switched on in the repo
settings.

## What

`npm audit fix --omit=dev`. Only `package-lock.json` changes, and
`package.json` is untouched. Every new version stays within the range
its parent declares. The other lockfile changes (`content-type`,
`type-is`, `iconv-lite`, `hasown`, `side-channel`, `es-object-atoms`)
are patch or minor bumps that npm needed to resolve the fixed versions.

## Checked

- `npm audit --omit=dev`: 0 vulnerabilities, down from 8.
- `npm install --package-lock-only` leaves the lockfile unchanged, so
it's consistent with `package.json`.
- Locally: build, typecheck, 122 tests, and the smoke test against
`dist/`. Before the rebase onto #79's merge commit I also ran it against
the unzipped `.mcpb` (manifest validated). The bundle ships
`@hono/node-server` 2.1.5. CI repeats all of this, plus the bundle on
Node 22.0.0.

## Not in this PR

- **Dev-only advisories (10).** They never ship. `@anthropic-ai/mcpb`'s
`node-forge` and `tmp` have no fix yet. The `vite`/`vitest` ones should
move with #93 (vitest 5).
- **Declaring `zod` directly:** #95.
@dangrondahl

Copy link
Copy Markdown
Contributor

@dependabot rebase

Bumps [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) from 4.1.11 to 5.0.5.
- [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/v5.0.5/packages/vitest)

---
updated-dependencies:
- dependency-name: vitest
  dependency-version: 5.0.4
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot changed the title chore: bump vitest from 4.1.11 to 5.0.4 chore: bump vitest from 4.1.11 to 5.0.5 Oct 23, 2026
@dependabot
dependabot Bot force-pushed the dependabot/npm_and_yarn/vitest-5.0.4 branch from 07182a8 to 0f5c198 Compare October 23, 2026 09:48
Comment thread package.json
"tsx": "^4.19.0",
"typescript": "^5.7.0",
"vitest": "^4.1.10"
"vitest": "^5.0.5"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

vitest 5 narrows its own engines.node from ^20.0.0 || ^22.0.0 || >=24.0.0 to ^22.12.0 || ^24.0.0 || >=26.0.0.

Nothing breaks — .nvmrc (22.12), the CI matrix (22.12, 24), update-catalog.yml (22.12) and release.yml (24) all satisfy it — but the reason for the 22.12 dev floor has moved. Two docs still attribute it to Vite transitively:

  • CLAUDE.md:44 — "because vitest pulls Vite 8, which requires it"
  • CONTRIBUTING.md:7 — "vitest pulls Vite 8, which requires ^20.19.0 || >=22.12.0"

Vitest now requires 22.12 directly, and its range also excludes Node 23 and 25 — so "≥ 22.12" is no longer the whole rule. Worth rewording so the next person moving the floor checks vitest's engines, not Vite's. (ci.yml:25-27 carries the same stale comment; I can't edit workflow files.)

Fix this →

@dangrondahl
dangrondahl merged commit 9b8fb78 into main Oct 23, 2026
5 checks passed
@dangrondahl
dangrondahl deleted the dependabot/npm_and_yarn/vitest-5.0.4 branch October 23, 2026 10:01
@dangrondahl dangrondahl mentioned this pull request Oct 23, 2026
5 tasks
dangrondahl added a commit that referenced this pull request Oct 23, 2026
Release prep for **0.6.0**. A draft for now: it gets rebased once #97
(CodeQL) merges, then marked ready.

`npm version minor --no-git-tag-version` moves `package.json`,
`package-lock.json` and the generated `src/version.ts` together.
`manifest.json` gets the version at pack time. Nothing else changes.

## What's in 0.6.0 (since 0.5.0)

### ⚠️ Changes that affect existing setups
- **No configured org (#65).** `KOSLI_ORG` and the Desktop extension's
*Organization* setting are removed. Every org-scoped call names its org
through the execute tools' `org` input, so no request lands in an org
the caller didn't name. An existing config that still sets `KOSLI_ORG`
starts fine and logs that the value is ignored, but calls that relied on
the default are now refused until an org is given.
- **Node ≥ 22 (#38).** It was ≥ 20.

### Fixes
- **Evidence downloads work again (#88, fixes #86).** Since 16 Oct,
every `get_attestation_evidence` call failed: our token was forwarded to
the pre-signed S3 URL. Text files come back as text, and binary files
return a clear error.
- **The `.mcpb` bundle starts on Node 22.0 – 22.6 (#87).** It didn't
before.
- **No known vulnerabilities in the bundled dependencies (#96).** `npm
audit --omit=dev` is clean.

### Features
- **`org` input on the execute tools (#65).**
- **`User-Agent` carries the version (#41):**
`kosli-mcp-server/<version>`.

### Dependencies
- **Runtime:** `@modelcontextprotocol/sdk` 1.29.0 → 1.32.1 (#29, #71,
#79).
- **Dev:** TypeScript 7 (#45), with emitted output byte-identical to
5.9. vitest 5 (#93).
- **Catalog:** regenerated from the OpenAPI spec (#50, #53, #60, #69,
#78).

### Release confidence (CI only)
Typecheck of tests and scripts, a stdio smoke test against `dist/` and
the unzipped bundle (including Node 22.0.0), `mcpb validate`, and
`release.yml` publishing only after every check (#87). There's also a
phased Claude review (#90), Dependabot grouping with a 7-day cooldown,
and CodeQL (#97).

## Checked locally on this branch

- Build, typecheck, 122 tests.
- The smoke test reports `server advertises version 0.6.0`, both from
`dist/` and from the unzipped bundle.
- `kosli-mcp-server-0.6.0.mcpb`: the manifest says 0.6.0 and `mcpb
validate` passes.

## Before tagging (after merge)
- [ ] Rebase onto `main` once #97 merges, then mark ready.
- [ ] Install the 0.6.0 `.mcpb` in Claude Desktop, including an upgrade
over 0.5.0 with an org configured.
- [ ] Run `KOSLI_API_TOKEN=… KOSLI_SMOKE_ORG=<org> npm run smoke` on
`main`.
- [ ] Download one piece of evidence via `get_attestation_evidence`.
- [ ] `git tag -a v0.6.0 -m "v0.6.0" <merge commit> && git push origin
v0.6.0`. `release.yml` does the rest.
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