Skip to content

fix(core): cap workspace Oxlint subprocesses - #1463

Draft
aidenybai wants to merge 1 commit into
mainfrom
codex/internal-architecture-rewrite
Draft

fix(core): cap workspace Oxlint subprocesses#1463
aidenybai wants to merge 1 commit into
mainfrom
codex/internal-architecture-rewrite

Conversation

@aidenybai

@aidenybai aidenybai commented Jul 27, 2026

Copy link
Copy Markdown
Member

What changed

  • share one bounded worker-slot pool across concurrent CLI and API project scans
  • begin subprocess timeout accounting only after a queued scan acquires a slot
  • re-check scan deadlines after queueing so expired work does not start
  • consolidate dead-code scan throttling onto the same tested slot primitive

Why

Concurrent workspace scans could each create their own Oxlint subprocess budget, allowing process counts to multiply with project count. This keeps the existing scan behavior while bounding aggregate subprocess pressure for one invocation.

Regression review

  • added FIFO, concurrency, release-on-error, and abort coverage for worker slots
  • added CLI and API multi-project tests proving the pool is shared
  • caught and fixed stale test mocks during the full suite
  • focused tests, full test suite, lint, typecheck, formatting, build, JSON-report smoke test all pass
  • React Doctor changed-scope scan: 100/100, no issues
  • patch changeset included

This PR is independent and targets main. The larger architecture rewrite was preserved separately and is no longer part of this review.

@pkg-pr-new

pkg-pr-new Bot commented Jul 27, 2026

Copy link
Copy Markdown

Open in StackBlitz

npm i https://pkg.pr.new/eslint-plugin-react-doctor@1463
npm i https://pkg.pr.new/oxlint-plugin-react-doctor@1463
npm i https://pkg.pr.new/react-doctor@1463

commit: 5b70e00

@github-actions

github-actions Bot commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

React Doctor found no new issues. 🎉

Reviewed by React Doctor for commit 5b70e00.

@github-actions

github-actions Bot commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

Interactive terminal E2E

React Doctor interactive terminal recording

Recorded from the built CLI at 5b70e00 in a real terminal. The fixture holds Git busy for three seconds, so Scanning... must appear immediately after project selection, then exercises the compact interactive report.

Download the GIF and MP4 artifact

Comment thread packages/core/src/project-info/build-package-capabilities.ts Outdated
Comment thread scripts/compatibility/snapshots/packed-public-entry-points.json Outdated
Comment thread packages/core/src/project-info/collect-project-facts.ts
Comment thread packages/core/src/project-info/build-package-capabilities.ts Outdated
Comment thread packages/core/src/project-info/capabilities.ts Outdated
Comment thread packages/core/src/project-info/collect-project-facts.ts Outdated
Comment thread packages/core/src/project-info/package-graph.ts Outdated
Comment thread packages/core/src/project-info/collect-project-facts.ts Outdated

@cursor cursor Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.

There are 3 total unresolved issues (including 2 from previous reviews).

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 7a296f8. Configure here.

Comment thread packages/core/src/project-info/collect-project-facts.ts Outdated
@aidenybai
aidenybai force-pushed the codex/internal-architecture-rewrite branch from 49cbd22 to 5b70e00 Compare July 30, 2026 03:03
@aidenybai aidenybai changed the title [1/11] refactor(core): decompose git service internals fix(core): cap workspace Oxlint subprocesses Jul 30, 2026
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