Skip to content

Land the three Dependabot bumps as one change, with the fixtures they move - #172

Open
silverstein wants to merge 4 commits into
masterfrom
operator/dep-bumps-trio
Open

silverstein wants to merge 4 commits into
masterfrom
operator/dep-bumps-trio

Conversation

@silverstein

Copy link
Copy Markdown
Member

Lands the three open Dependabot bumps as one change: @modelcontextprotocol/ext-apps 1.7.4 to 1.7.5, rolldown 1.1.5 to 1.2.3, and vite 8.1.5 to 8.2.1. Supersedes #48, #128, and #129, all three of which were CONFLICTING/DIRTY.

Why one branch. All three PRs touch package.json, package-lock.json, and test/fixtures/eval/extraction/phase1/layout-occurrence-oracle.v1.json. Landing them one at a time means three rebase-and-regenerate cycles where each merge invalidates the next one's lock and fixture. One branch regenerates each artifact once and gates once.

A coupling all three PRs missed. A lock change has three bindings in this repo, and Dependabot only carried the oracle. npm run vendor:npm-licenses is required whenever package-lock.json moves, and both artifact builds fail closed if the committed licence evidence does not cover the lock exactly. It came back clean here because all three packages are devDependencies that never reach a shipped artifact, but a runtime bump filed the same way would have failed at build time with the cause several steps upstream. The pinned tool contract is bound to the server version, which does not move here, so it needed no re-pin.

The viewer. dist-ui/index.html is a tracked artifact and the new toolchain changes what rolldown emits, so it is rebuilt here rather than left stale. It is also the part of this bump that CI cannot check: the viewer runs inside Claude Desktop's Electron sandbox on an older Chromium, and pdfjs reaching an ES2025 API crashes it while every server-side test stays green. Checked against the specific hazard CLAUDE.md records:

before after
getOrInsertComputed 0 0
sumPrecise 18 10
bundle bytes 1837347 1836392

getOrInsertComputed is the API that actually crashes the viewer, and it is absent from both bundles. sumPrecise was already shipping and the rebuild emits less of it. pdfjs-dist is untouched at the pinned 5.4.624.

This is static evidence. Opening a PDF in Claude Desktop is the test that settles it, and that check is still owed before this merges.

Verified so far: extraction-phase1-layout-evidence 9/9, sbom-npm-licenses 27/27, trajectory-grader version-pinned tool contract passing, UI build clean on vite 8.2.1. The full suite is left to CI: this VM was running three concurrent embedding jobs at roughly fifteen cores, and local runs under that load fail on 5000ms timeouts that say nothing about the code.

🤖 Generated with Claude Code

silverstein and others added 3 commits August 19, 2026 13:48
Dependabot filed these as #48, #128, and #129. All three touch package.json,
package-lock.json, and the layout occurrence oracle, so landing them separately
means three rebase-and-regenerate cycles where each merge invalidates the next
one's lock and fixture. One branch regenerates each artifact once.

  @modelcontextprotocol/ext-apps  1.7.4 -> 1.7.5
  rolldown                        1.1.5 -> 1.2.3
  vite                            8.1.5 -> 8.2.1

All three are devDependencies, so none reaches a shipped artifact.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The oracle binds package.json and package-lock.json by digest, so a bump alone
fails ten extraction-phase1-scorer tests. Regenerated with its own generator,
never by hand:

  node scripts/eval-generate-extraction-layout-oracle.mjs --write

extraction-phase1-layout-evidence 9/9.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
dist-ui/index.html is a tracked artifact, so a toolchain bump that changes what
rolldown emits has to be rebuilt and inspected rather than left stale.

Checked against the hazard CLAUDE.md records, because a viewer regression is
invisible until someone opens a PDF in Claude Desktop: the Electron host ships
an older Chromium, and pdfjs reaching an ES2025 API crashes the viewer while
every server-side test stays green.

  getOrInsertComputed   0 -> 0     (the API that actually crashes it)
  sumPrecise           18 -> 10    (already shipping, now less of it)
  bundle             1837347 -> 1836392 bytes

pdfjs-dist is untouched at the pinned 5.4.624. Static evidence only: a real
Claude Desktop session is still the test that settles it.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
mcp-contract asserts the share package's dist-ui/index.html is byte-identical
to the source one, so rebuilding the viewer without mirroring it fails the gate
on both runtimes. It did:

  expected 'ba946a27...' to be '95a7c8a7...'

The binding is the point of that test, and it caught the omission exactly where
it should have. Local runs missed it because this VM was saturated and the full
suite could not complete honestly.

mcp-contract 43/43, plugin-freshness-coverage, packager-server-coverage,
viewer-compat and smoke-mcpb-contract 29/29, share contract reproducible at
44 tools and 122 SBOM components.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant