chore: exclude cli-plugins/copilot from pnpm workspace - #5345
Merged
Conversation
Removes @equinor/fusion-framework-cli-plugin-copilot from the pnpm workspace to keep its ~400MB @github/copilot-sdk/agent-browser native binaries out of the shared CI pnpm store cache. - pnpm-workspace.yaml: exclude packages/cli-plugins/copilot, clear the now-unused root patchedDependencies entry - packages/cli-plugins/copilot: pin @equinor/fusion-framework-cli to a real semver range instead of workspace:^, relocate the vscode-jsonrpc patch here and wire it via its own pnpm config so a standalone install still resolves vscode-jsonrpc/node correctly - tsconfig.json: exclude the package from root type-checking - CODEMAP.md: document the exclusion and standalone install process - remove stale changesets referencing the now-excluded package
odinr
marked this pull request as ready for review
August 19, 2026 18:43
Fixes the verify-agent-context CI check, which scans CODEMAP.md for the literal package name of every packages/** manifest on disk (workspace exclusion doesn't remove the file, so it's still expected to be documented).
|
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.
Why is this change needed?
@equinor/fusion-framework-cli-plugin-copilot's@github/copilot-sdkdependency pulls inagent-browserand platform-specific native Copilot CLI binaries (@github/copilot-{darwin,linux,linuxmusl,win32}-{arm64,x64}viaoptionalDependencies), adding ~400MB to the pnpm store. Because it was a workspace member, every rootpnpm install— including every CI job that installs the workspace — resolved and cached this weight for all 85 packages, not just this one plugin.What is the current behavior?
The plugin lives inside the pnpm workspace (
packages/cli-plugins/copilot), is versioned via Changesets, and its heavy dependencies are part of the rootpnpm-lock.yamland the shared CI pnpm-store cache.What is the new behavior?
packages/cli-plugins/copilotis excluded from the pnpm workspace (pnpm-workspace.yaml) and from root TypeScript type-checking (tsconfig.json).@equinor/fusion-framework-clito a real semver range (^15.2.9) instead ofworkspace:^, since it's no longer resolved through the workspace graph.vscode-jsonrpcpatch (needed transitively by@github/copilot-sdk) moved from the rootpatches/directory into the package's ownpatches/, and is now declared via a"pnpm"field in the package's ownpackage.jsonso a standalone install still applies it. The rootpatchedDependenciesentry was removed.CODEMAP.mddocuments the exclusion and points to the package's own install process.README.mdgained "Standalone install" and "Publishing" sections explaining how to install/build/version/publish it now that it's outside the workspace and Changesets.What is the intended behavior or invariant?
pnpm-lock.yamland CI pnpm-store cache must never reference@github/copilot-sdk,@github/copilot*, oragent-browseragain — verified locally (grepfor these inpnpm-lock.yamlreturns zero matches after a fresh root install).fusion-cli.config.tsalready loads this plugin optionally viaPromise.allSettled, so the rest of the repo'sffcCLI must continue to work whether or not this package is installed/built — this was already true and is unchanged.packages/cli-plugins/copilot), with its ownnode_modules, patch, and build-script exclusions — verified locally via a standalonepnpm install/pnpm build.Does this PR introduce a breaking change?
No for consumers of the framework. For contributors: the plugin is no longer built/type-checked as part of a root
pnpm install/pnpm build— anyone working on it mustcd packages/cli-plugins/copilot && pnpm installfirst. This is documented in the package's README.Impact assessment:
pnpm list -rand a full root install).pnpm-lock.yamland CI pnpm-store cache for the whole monorepo.Review guidance:
pnpm-workspace.yaml's!packages/cli-plugins/copilotexclusion and clearedpatchedDependencieslook correct."pnpm"field inpackages/cli-plugins/copilot/package.jsonare wired correctly (no root config needed).Additional context
This plugin is a Copilot SDK-powered evaluation tool for
ffc copilot app eval, used to validate cookbook/app behavior against markdown eval criteria. It has no runtime relationship to the rest of the framework's published packages.Related issues
None.
Checklist
pnpm installsucceeds cleanly; standalonepnpm install/pnpm buildin the plugin directory succeeds)