Skip to content

chore: Finish PublicCandidate triage and gate residual count - #2011

Merged
hatayama merged 8 commits into
v3-betafrom
chore/public-candidate-triage
Jul 25, 2026
Merged

hatayama merged 8 commits into
v3-betafrom
chore/public-candidate-triage

Conversation

@hatayama

@hatayama hatayama commented Jul 25, 2026 •

Copy link
Copy Markdown
Owner

Summary

Closes the PublicCandidate triage for issue #1997: scanner accuracy fixes, bucketed deletion/keep decisions, intentional-keep documentation, Newtonsoft ShouldSerialize* structural keep, and a CI ceiling on PublicCandidate count.

Closes #1997

PublicCandidate progression

Milestone PublicCandidate Notes
Pre-scanner-fix baseline 185 Issue starting point
After PR-0 + PR-0b (scanner accuracy + Runtime in production scan) 113 Assets asmdef accuracy; Runtime included
After PR-1 (internal) 95 internal PC → 0
After PR-3 (ExecuteDynamicCode) 86 deleted unused members; kept Error + ShouldSerialize*
After PR-4 (Domain/Application/Infrastructure/Presentation) 47 kept ErrorData.type family
After PR-5 (FirstPartyTools + Runtime) 33 Skill/CLI/reflection keepers retained
After PR-6 (ToolContracts) 28 documented extension API keeps
After PR-7 (ShouldSerialize* keep + PC gate) 22 CI --max-public-candidates 22

High-confidence findings stayed at 0 throughout.

What each PR did

PR What changed
PR-0 (#2000) Accurate Assets asmdef classification; keep await-pattern / IsExternalInit
PR-0b (#2002) Include Packages/src Runtime asmdefs in production scan
PR-1 (#2004) Remove unreferenced internal PublicCandidates (+ boy-scout private leftovers)
PR-2 Folded into PR-1 during triage; the number is intentionally unused.
PR-3 (#2005) Triage ExecuteDynamicCode public members
PR-4 (#2006) Triage Domain / Application / Infrastructure / Presentation
PR-5 (#2007) Triage remaining FirstPartyTools + Runtime
PR-6 (#2009) Triage ToolContracts; document intentional keeps (registrar, migration capture façade, Error)
PR-7 (#2010) Keep Newtonsoft ShouldSerialize{Property} structurally; add --max-public-candidates CI gate at 22

Intentionally retained PublicCandidates are listed in docs/dead-code-scanner.md.

Out of scope

Test plan

  • Dead Code workflow runs on this PR (not skipped) and is green with --max-public-candidates 22
  • Other required CI checks green
  • Confirm docs table + gate docs land on v3-beta

hatayama and others added 8 commits July 26, 2026 02:18
Co-authored-by: Cursor <cursoragent@cursor.com>
…tion PublicCandidates (#2006)

Co-authored-by: Cursor <cursoragent@cursor.com>
…es (#2007)

Co-authored-by: Cursor <cursoragent@cursor.com>
…keeps (#2009)

Co-authored-by: Cursor <cursoragent@cursor.com>
@coderabbitai

coderabbitai Bot commented Jul 25, 2026

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

@hatayama, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 22 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 4ca7e089-cded-4b08-8b08-d0c78db6fdb1

📥 Commits

Reviewing files that changed from the base of the PR and between f3a3e75 and 326e7ce.

📒 Files selected for processing (67)
  • .github/workflows/dead-code.yml
  • Assets/Tests/Editor/DynamicCodeToolTests/DynamicCodeExecutionFacadeTests.cs
  • Assets/Tests/Editor/DynamicCodeToolTests/DynamicCodeExecutorPoolTests.cs
  • Assets/Tests/Editor/MouseUiMainThreadCleanupSchedulerTests.cs
  • Packages/src/Editor/Application/CliSetupApplicationService.cs
  • Packages/src/Editor/Application/UnityCliLoopServerApplicationService.cs
  • Packages/src/Editor/Application/UnityCliLoopToolRegistrar.cs
  • Packages/src/Editor/Application/UnityCliLoopUIConstants.cs
  • Packages/src/Editor/Application/UseCases/ThirdPartyToolMigrationUseCase.cs
  • Packages/src/Editor/Domain/CliConstants.cs
  • Packages/src/Editor/Domain/IUnityCliLoopEditorSettingsPort.cs
  • Packages/src/Editor/Domain/ThirdPartyToolMigrationApiDetectionRules.cs
  • Packages/src/Editor/Domain/ThirdPartyToolMigrationDomainDetectionRules.cs
  • Packages/src/Editor/Domain/ThirdPartyToolMigrationRuleCatalog.cs
  • Packages/src/Editor/FirstPartyTools/ClearConsole/ClearConsoleResponse.cs
  • Packages/src/Editor/FirstPartyTools/Common/InputRecording/InputRecorder.cs
  • Packages/src/Editor/FirstPartyTools/Common/InputRecording/InputReplayUiController.cs
  • Packages/src/Editor/FirstPartyTools/Common/MouseUi/UiRaycastHelper.cs
  • Packages/src/Editor/FirstPartyTools/Compile/AssemblyDefinitionDuplicationValidationService.cs
  • Packages/src/Editor/FirstPartyTools/ExecuteDynamicCode/Compilation/CompilationRequest.cs
  • Packages/src/Editor/FirstPartyTools/ExecuteDynamicCode/Compilation/CompilationResult.cs
  • Packages/src/Editor/FirstPartyTools/ExecuteDynamicCode/Compilation/DynamicCompilationHealthMonitor.cs
  • Packages/src/Editor/FirstPartyTools/ExecuteDynamicCode/DynamicCodeServices.cs
  • Packages/src/Editor/FirstPartyTools/ExecuteDynamicCode/DynamicCompilation/DynamicCompilationTimingFormatter.cs
  • Packages/src/Editor/FirstPartyTools/ExecuteDynamicCode/DynamicCompilation/SharedRoslynCompilerWorkerHost.cs
  • Packages/src/Editor/FirstPartyTools/ExecuteDynamicCode/DynamicCompilation/SharedRoslynCompilerWorkerSession.cs
  • Packages/src/Editor/FirstPartyTools/ExecuteDynamicCode/ExecuteDynamicCodeResponse.cs
  • Packages/src/Editor/FirstPartyTools/ExecuteDynamicCode/Execution/CommandRunner.cs
  • Packages/src/Editor/FirstPartyTools/ExecuteDynamicCode/Execution/CommandRunnerExecutionSlot.cs
  • Packages/src/Editor/FirstPartyTools/ExecuteDynamicCode/Execution/DynamicCodeExecutor.cs
  • Packages/src/Editor/FirstPartyTools/ExecuteDynamicCode/Execution/DynamicCodeExecutorStub.cs
  • Packages/src/Editor/FirstPartyTools/ExecuteDynamicCode/IDynamicCodeExecutor.cs
  • Packages/src/Editor/FirstPartyTools/ExecuteDynamicCode/Models/ExecutionResult.cs
  • Packages/src/Editor/FirstPartyTools/FindGameObjects/GameObjectFinder/GameObjectDetails.cs
  • Packages/src/Editor/FirstPartyTools/GetLogs/GetLogsResponse.cs
  • Packages/src/Editor/FirstPartyTools/RunTests/RunTestsResponse.cs
  • Packages/src/Editor/FirstPartyTools/RunTests/TestFramework/TestRunnerApiCancelBridge.cs
  • Packages/src/Editor/FirstPartyTools/SimulateKeyboard/Application/KeyboardKeyState.cs
  • Packages/src/Editor/FirstPartyTools/SimulateMouseInput/Application/MouseInputState.cs
  • Packages/src/Editor/FirstPartyTools/SimulateMouseUi/MouseUiIncrementalDragExecutor.cs
  • Packages/src/Editor/FirstPartyTools/SimulateMouseUi/MouseUiOneShotDragExecutor.cs
  • Packages/src/Editor/FirstPartyTools/SimulateMouseUi/MouseUiPressActionExecutor.cs
  • Packages/src/Editor/FirstPartyTools/Watch/WatchExpressionStepMonitor.cs
  • Packages/src/Editor/Infrastructure/CLI/CliInstallationDetector.cs
  • Packages/src/Editor/Infrastructure/Server/UnityCliLoopServerController.cs
  • Packages/src/Editor/Infrastructure/Settings/UnityCliLoopEditorSettingsRepository.cs
  • Packages/src/Editor/Infrastructure/SkillSetup/SkillInstallationDetector.cs
  • Packages/src/Editor/Infrastructure/SkillSetup/ToolSkillSynchronizer.cs
  • Packages/src/Editor/Infrastructure/ThirdPartyToolMigration/ThirdPartyToolMigrationRules.cs
  • Packages/src/Editor/Infrastructure/Utils/NodeEnvironmentResolver.cs
  • Packages/src/Editor/Presentation/Setup/ThirdPartyToolMigrationWizardWindow.cs
  • Packages/src/Editor/Presentation/Shared/SkillsSetupPanelView.cs
  • Packages/src/Editor/Presentation/SkillsTargetSelectionResolver.cs
  • Packages/src/Editor/Presentation/UIToolkit/Bindings/ViewDataBinder.cs
  • Packages/src/Editor/Presentation/UnityCliLoopSettingsModel.cs
  • Packages/src/Editor/ToolContracts/EditorFrameWaiter.cs
  • Packages/src/Editor/ToolContracts/UnityCliLoopConstants.cs
  • Packages/src/Runtime/SimulateMouseInput/SimulateMouseInputOverlayState.cs
  • Packages/src/Runtime/SimulateMouseUi/SimulateMouseUiOverlayState.cs
  • docs/dead-code-scanner.md
  • tests/UnityCliLoop.DeadCodeScanner.Tests/CommandLineOptionsTests.cs
  • tests/UnityCliLoop.DeadCodeScanner.Tests/DeadCodeScannerTests.cs
  • tools/UnityCliLoop.DeadCodeScanner/AsmdefWorkspaceBuilder.cs
  • tools/UnityCliLoop.DeadCodeScanner/CommandLineOptions.cs
  • tools/UnityCliLoop.DeadCodeScanner/DeadCodeModels.cs
  • tools/UnityCliLoop.DeadCodeScanner/Program.cs
  • tools/UnityCliLoop.DeadCodeScanner/UnityKeeperClassifier.cs
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/public-candidate-triage

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@hatayama
hatayama merged commit cbbf9df into v3-beta Jul 25, 2026
15 checks passed
@hatayama
hatayama deleted the chore/public-candidate-triage branch July 25, 2026 19:04
RyanXie123 pushed a commit to RyanXie123/unity-cli-loop that referenced this pull request Sep 22, 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