chore: add monorepo type-check and CI validation lanes#111
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 39f55039d4
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| set -euo pipefail | ||
| npm ci --prefix gui | ||
| npm ci --prefix sdk | ||
| npm ci --prefix sdk/typescript |
There was a problem hiding this comment.
Stop using
npm ci in packages without lockfiles
npm ci is only valid when the target package already has a package-lock.json/npm-shrinkwrap.json. In this tree, sdk/typescript, shell-tool-mcp, and extensions/windsurf-extension do not have lockfiles, and npm ci --prefix sdk/typescript currently fails with EUSAGE (“can only install with an existing package-lock.json…”). That means the new type-check job exits during dependency installation and never reaches any of the validation steps.
Useful? React with 👍 / 👎.
| import { spawnSync } from 'node:child_process'; | ||
|
|
||
| const tsPackages = [ | ||
| 'gui', |
There was a problem hiding this comment.
Exclude the already-red GUI package from the new monorepo lane
Putting gui first in the new runner makes npm run type-check fail on every invocation in the current repo state: npm --prefix gui run type-check exits non-zero with hundreds of TypeScript errors, and run() aborts on the first failing package. As a result, the lane never reaches sdk, packages/protocol-client, or the pyright pass, so this check is permanently red until the entire GUI backlog is fixed.
Useful? React with 👍 / 👎.
|
I have read the CLA Document and I hereby sign the CLA You can retrigger this bot by commenting recheck in this Pull Request. Posted by the CLA Assistant Lite bot. |
Motivation
py -3usage) and MCP/protocol schema/version validation first-class CI checks so failures are easy to triage.Description
type-checkpipeline andtype-check:versionsscript inpackage.jsonand a driverscripts/run-type-check.mjsto run TypeScript checks acrossgui,sdk,sdk/typescript,packages/protocol-client,shell-tool-mcp, extensions and Python (pyright).tsconfig.strict.jsonand update subpackagetsconfig.jsonfiles to extend it; addtype-checkscripts and bump several package versions to3.0.0(e.g.sdk,sdk/typescript,packages/protocol-client,shell-tool-mcp, extensions) and convertextensions/vscode-codexdependency tofile:../../packages/protocol-clientfor monorepo resolution.pyrightconfig.jsonfor chosen scripts, plusscripts/check-workspace-versions.mjsandscripts/check_protocol_versions.pyto validate package versions and canonical MCP/protocol schema/version alignment..github/workflows/ci.yml:type-check,schema-diff, andprotocol-version, and expandsubagent-ciclippy steps to runcodex-app-server-protocol,codex-protocol, andcodex-cli; suppress a newly exposedclippy::too_many_argumentswarning incodex-rs/protocol/src/models.rsto resolve immediate failure.Testing
npm run type-check:versionswhich succeeded and confirmed workspace versions are aligned.python3 scripts/check_protocol_versions.pywhich passed and printed the canonical protocol version.pyright --project pyrightconfig.jsonagainst the selected scripts which completed with no errors for the scoped set.npm --prefix packages/protocol-client run type-checkandnpm --prefix shell-tool-mcp run type-checkwhich completed successfully.npm run type-checkwhich correctly executes but stops onguibecauseguicontains many pre-existing strict TypeScript errors (not introduced by this PR) and therefore fails as expected; other targeted packages pass.cargo clippyoncodex-protocol/codex-app-server-protocol/codex-clipath and fixed the surfacedtoo_many_argumentswarning incodex-rs/protocol/src/models.rsso the expanded clippy lane is currently satisfied.Codex Task