Feature: Unity Method Inspector Checks#199
Merged
Merged
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
Adds new Unity/Roslyn analyzer + editor tooling around MessageAwareComponent base-call diagnostics, while hardening Node/pre-commit/CI workflows for deterministic Jest/Prettier execution and improved validation.
Changes:
- Introduces managed Jest/Prettier runners plus pre-commit tooling validators and supporting script libraries/tests.
- Adds analyzer project + ignore-list infrastructure and Unity editor inspector overlay/fallback editor for surfacing base-call warnings.
- Updates pre-commit config, CI workflows, docs, samples, and generated metadata to match new tooling and policies.
Reviewed changes
Copilot reviewed 95 out of 98 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| scripts/verify-managed-jest-fallback.js.meta | Unity meta for new script asset. |
| scripts/verify-managed-jest-fallback.js | Script to force/remove managed Jest runner for fallback-path verification. |
| scripts/validate-pre-commit-tooling.js.meta | Unity meta for new script asset. |
| scripts/validate-pre-commit-tooling.js | Enforces hook policy (npx non-interactive flags, managed Jest/Prettier wrappers, yamllint policy). |
| scripts/validate-npm-meta.js | Switches npm package file discovery to npm pack --json --dry-run via platform-safe spawn helper. |
| scripts/run-managed-prettier.js | Adds robust managed Prettier runner with pinned fallback behavior. |
| scripts/run-managed-jest.js.meta | Unity meta for new script asset. |
| scripts/run-managed-jest.js | Adds robust managed Jest runner with local-health checks and npm exec/npx fallback. |
| scripts/lib/shell-command.js.meta | Unity meta for new script library. |
| scripts/lib/shell-command.js | Centralizes cross-platform spawn handling for npm/npx (Windows shim + shell requirements). |
| scripts/lib/prettier-version.js | Resolves pinned Prettier spec from lockfile/package.json with fallback. |
| scripts/generate-skills-index.js | Uses platform-safe npx execution and pinned Prettier spec for formatting. |
| scripts/fix-md029-md051.js.meta | Unity meta for new script asset. |
| scripts/fix-md029-md051.js | Adds markdown auto-fix script for MD029/MD051 normalization. |
| scripts/tests/verify-managed-jest-fallback.test.js.meta | Unity meta for new test asset. |
| scripts/tests/verify-managed-jest-fallback.test.js | Tests for managed Jest fallback deletion script. |
| scripts/tests/validate-pre-commit-tooling.test.js.meta | Unity meta for new test asset. |
| scripts/tests/validate-pre-commit-tooling.test.js | Tests for pre-commit tooling policy validator. |
| scripts/tests/validate-npm-meta.test.js | Expands tests for new npm-pack JSON parsing + platform spawn behavior. |
| scripts/tests/shell-command.test.js | Tests platform spawn helper behavior. |
| scripts/tests/run-managed-prettier.test.js | Tests managed Prettier wrapper and platform invocation. |
| scripts/tests/run-managed-jest.test.js.meta | Unity meta for new test asset. |
| scripts/tests/run-managed-jest.test.js | Tests managed Jest wrapper including fallback paths. |
| scripts/tests/prettier-version.test.js | Tests Prettier version resolution logic. |
| scripts/tests/pre-commit-hook-stage-policy.test.js.meta | Unity meta for new test asset. |
| scripts/tests/pre-commit-hook-stage-policy.test.js | Validates hook stage coverage policies in .pre-commit-config.yaml. |
| scripts/tests/generate-skills-index.test.js | Adds/updates tests for Prettier formatting via platform helper. |
| scripts/tests/fix-md029-md051.test.js.meta | Unity meta for new test asset. |
| scripts/tests/fix-md029-md051.test.js | Tests markdown auto-fix behavior for ordered lists and fragment links. |
| scripts/tests/detect-shell-redirection-antipattern.test.js.meta | Unity meta for new test asset. |
| scripts/tests/detect-shell-redirection-antipattern.test.js | Guards against non-portable shell redirection / direct npm/npx invocations in production scripts. |
| package.json | Routes Jest/Prettier scripts through managed wrappers; adds preflight/validation scripts. |
| llms.txt | Updates generated “Last Updated” date. |
| docs/reference/analyzers.md.meta | Unity meta for new docs asset. |
| com.wallstop-studios.dxmessaging.sln | Adds analyzer project + extra configurations; (currently has a leading blank line). |
| SourceGenerators/WallstopStudios.DxMessaging.SourceGenerators.Tests/WallstopStudios.DxMessaging.SourceGenerators.Tests.csproj | References analyzer project and links Unity-editor analyzer sources into test compilation. |
| SourceGenerators/WallstopStudios.DxMessaging.SourceGenerators.Tests/MessageAwareComponentBaseCallAnalyzerTests.cs.meta | Unity meta for new test asset. |
| SourceGenerators/WallstopStudios.DxMessaging.SourceGenerators.Tests/GeneratorTestUtilities.cs | Adds analyzer execution helpers and in-memory AdditionalText support for tests. |
| SourceGenerators/WallstopStudios.DxMessaging.SourceGenerators.Tests/CompilationMessageHarvestTests.cs.meta | Unity meta for new test asset. |
| SourceGenerators/WallstopStudios.DxMessaging.SourceGenerators.Tests/BaseCallTypeScannerTests.cs.meta | Unity meta for new test asset. |
| SourceGenerators/WallstopStudios.DxMessaging.SourceGenerators.Tests/BaseCallLogMessageParserTests.cs.meta | Unity meta for new test asset. |
| SourceGenerators/WallstopStudios.DxMessaging.SourceGenerators.Tests/BaseCallIlInspectorTests.cs.meta | Unity meta for new test asset. |
| SourceGenerators/WallstopStudios.DxMessaging.Analyzer/obj.meta | Unity meta for new analyzer folder asset. |
| SourceGenerators/WallstopStudios.DxMessaging.Analyzer/bin.meta | Unity meta for new analyzer folder asset. |
| SourceGenerators/WallstopStudios.DxMessaging.Analyzer/WallstopStudios.DxMessaging.Analyzer.csproj.meta | Unity meta for new analyzer project file. |
| SourceGenerators/WallstopStudios.DxMessaging.Analyzer/WallstopStudios.DxMessaging.Analyzer.csproj | Adds Roslyn 3.8-targeted analyzer project with post-build copy into Unity package. |
| SourceGenerators/WallstopStudios.DxMessaging.Analyzer/Analyzers/MessageAwareComponentBaseCallAnalyzer.cs.meta | Unity meta for new analyzer source asset. |
| SourceGenerators/WallstopStudios.DxMessaging.Analyzer/Analyzers/IgnoreListReader.cs.meta | Unity meta for new analyzer source asset. |
| SourceGenerators/WallstopStudios.DxMessaging.Analyzer/Analyzers/IgnoreListReader.cs | Adds cached AdditionalFiles ignore-list loader for analyzer behavior. |
| SourceGenerators/WallstopStudios.DxMessaging.Analyzer/Analyzers.meta | Unity meta for new analyzer folder asset. |
| SourceGenerators/WallstopStudios.DxMessaging.Analyzer.meta | Unity meta for new analyzer folder asset. |
| Samples~/UI Buttons + Inspector/README.md | Normalizes ordered list numbering to MD029 “one” style. |
| Samples~/Mini Combat/Walkthrough.md | Normalizes ordered list numbering to MD029 “one” style. |
| Samples~/Mini Combat/README.md | Normalizes ordered list numbering to MD029 “one” style. |
| Samples~/DI/README.md | Normalizes ordered list numbering to MD029 “one” style. |
| Runtime/Core/Attributes/DxIgnoreMissingBaseCallAttribute.cs.meta | Unity meta for new runtime attribute. |
| Runtime/Core/Attributes/DxIgnoreMissingBaseCallAttribute.cs | Adds opt-out attribute for missing base-call diagnostics. |
| Editor/SetupCscRsp.cs | Ensures analyzer DLL labeling/copy and adds -additionalfile: wiring for ignore-list sidecar. |
| Editor/Settings/DxMessagingSettings.cs | Adds base-call settings/ignore list + toggles and sidecar regeneration hooks. |
| Editor/Settings/DxMessagingBaseCallIgnoreSync.cs.meta | Unity meta for new settings sync asset. |
| Editor/Settings/DxMessagingBaseCallIgnoreSync.cs | Generates/reads ignore-list sidecar text file for analyzer AdditionalFiles. |
| Editor/CustomEditors/MessageAwareComponentInspectorOverlay.cs.meta | Unity meta for new editor overlay asset. |
| Editor/CustomEditors/MessageAwareComponentInspectorOverlay.cs | Adds inspector header overlay for base-call warnings and ignore actions. |
| Editor/CustomEditors/MessageAwareComponentFallbackEditor.cs.meta | Unity meta for new fallback editor asset. |
| Editor/CustomEditors/MessageAwareComponentFallbackEditor.cs | Adds fallback CustomEditor path to ensure overlay shows in Unity 2021 scenarios. |
| Editor/Analyzers/WallstopStudios.DxMessaging.Analyzer.dll.meta | Unity plugin meta for analyzer DLL asset. |
| Editor/Analyzers/DxMessagingConsoleHarvester.cs.meta | Unity meta updated/added for harvester asset. |
| Editor/Analyzers/BaseCallTypeScannerCore.cs.meta | Unity meta for new scanner-core asset. |
| Editor/Analyzers/BaseCallTypeScannerCore.cs | Adds Unity-API-free scanner core for IL reflection classification (testable via dotnet test). |
| Editor/Analyzers/BaseCallTypeScanner.cs.meta | Unity meta for new scanner asset. |
| Editor/Analyzers/BaseCallTypeScanner.cs | Unity wrapper that feeds TypeCache candidates/settings into scanner core. |
| Editor/Analyzers/BaseCallReportAggregator.cs.meta | Unity meta for new aggregator asset. |
| Editor/Analyzers/BaseCallReportAggregator.cs | Adds pure-BCL aggregator for report merge/retirement logic. |
| Editor/Analyzers/BaseCallLogMessageParser.cs.meta | Unity meta for new parser asset. |
| Editor/Analyzers/BaseCallLogMessageParser.cs | Adds pure parser for DXMSG006–DXMSG010 console log lines. |
| Editor/Analyzers/BaseCallIlInspector.cs.meta | Unity meta for new IL inspector asset. |
| Editor/Analyzers/BaseCallIlInspector.cs | Adds robust opcode-table IL walker to detect base-call patterns safely. |
| CONTRIBUTING.md | Updates contributor workflow guidance for managed Jest/Prettier and preflight checks. |
| CHANGELOG.md | Documents new inspector overlay cached-report behavior. |
| .pre-commit-config.yaml | Updates hooks to use managed wrappers, adds yamllint pinning and new validation hooks/tests. |
| .llm/skills/index.md | Updates generated skills index content. |
| .llm/skills/documentation/documentation-update-workflow.md | Adds guidance for new markdown auto-fix + lint flow. |
| .llm/context.md | Updates agent/developer workflow guidance around preflight tooling, portability, and markdown fixes. |
| .gitignore | Ignores generated pre-commit/pr-description scratch files. |
| .github/workflows/validate-npm-meta.yml | Expands CI to include Windows and watches updated test paths. |
| .github/workflows/pre-commit-tooling-check.yml | Adds new CI workflow to validate pre-commit tooling and managed Jest fallback behavior. |
| .github/workflows/format-on-demand.yml | Routes Prettier fixes through managed wrapper. |
| .cspell.json | Expands language setting and adds domain terms for new analyzer/tooling vocabulary. |
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.
Description
This PR adds a new analyzer workflow to catch missing base-method calls in
MessageAwareComponentoverrides and improves how those warnings are surfaced and managed in Unity.It also hardens repository tooling around pre-commit/script checks, updates related CI validation workflows, and refreshes analyzer/documentation guidance.
User-facing outcomes:
MessageAwareComponent-based classes.Related Issue
Fixes #
Type of Change
Checklist
Summary
This PR delivers two user-facing improvements:
MessageAwareComponentlifecycle base-call issues, plus an inspector overlay that surfaces actionable results immediately (including cached results on editor startup).What this means for users
MessageAwareComponentmistakes that can break message registration.DxIgnoreMissingBaseCall.What this means for contributors