fix(guard): derive must-not-bundle candidates independently of external
Addresses the suppressed review comment on #2099, which was the sharpest of the three rounds: the guard stopped looking at a package the moment its `external` entry was removed — so deleting `"undici"` from the web config would have made the pre-fix bundle pass. That is self-referential, and #2067 was precisely a MISSING declaration, so the guard covered its regression but not the bug. Candidates are now the union of two independently-derived lists: each client's `external` array, and the root manifest's `dependencies` — root-declared by rule, reached through `core/`, and required to be external in every client bundle. Removing a package from an `external` list can no longer remove it from scrutiny. That immediately surfaced one latent instance of the same rule violation: `@modelcontextprotocol/ext-apps` is root-declared and reached through `core/mcp/apps.ts`, but was absent from the CLI's `external` list and was being inlined into `index.js` — dragging the transitive v1 SDK and zod-to-json-schema in with it. It is ESM, so it was not failing the way `undici` did; what it violated was the rule. Adding it drops the CLI bundle from 590KB to 518KB. It is also a real example of the shape the previous revision could not see: it was inlined into the entry, emitting no `<pkg>-HASH.js` chunk at all. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JTHVxSu8AUgHRLvo1ntZ8H Signed-off-by: cliffhall <cliff@futurescale.com>
This commit is contained in:
parent
2f83549bc3
commit
dbe95e58ed
1 changed files with 87 additions and 10 deletions
|
|
@ -38,6 +38,12 @@ export default defineConfig({
|
|||
"proper-lockfile",
|
||||
"@modelcontextprotocol/client",
|
||||
"@modelcontextprotocol/core",
|
||||
// Root-declared and reached through `core/mcp/apps.ts`, so it must be
|
||||
// external here like every other root runtime dependency — it was being
|
||||
// inlined (dragging the transitive v1 SDK and zod-to-json-schema with it),
|
||||
// which the #2067 guard surfaced. ESM, so it was not failing the way
|
||||
// `undici` did; the rule is what it violated.
|
||||
"@modelcontextprotocol/ext-apps",
|
||||
"commander",
|
||||
"pino",
|
||||
],
|
||||
|
|
|
|||
Loading…
Reference in a new issue