Repository navigation
Fix duplicate dynamic builder invocation in reflection mode - #7424
Conversation
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 7 minutes. View limit details
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. CodeRabbit Verify
|
|
@codex review |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 1d10597bbc
ℹ️ 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".
[Medium impact] The PR appears safe to merge; no new blocking issue was found. SummaryReflection discovery skips TUnit-generated wrappers, preserves custom sources, and reads builder source locations from
No new actionable issues were found. Reviews (3) · Last reviewed commit: "Fix internal dynamic builder constructio..." · Reviewed by Greptile |
|
Addressed both findings in 110401b: custom registered dynamic sources are preserved, and the invocation counter resets before discovery. Release net10.0 build passed; five builder cases and one explicit-source case passed separately in each discovery mode (12 successful executions). Engine tests and full AOT validation remain for CI as documented above. |
|
@codex review |
|
Codex Review: Didn't find any major issues. Keep it up! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
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". |
ReviewThe fix is sound. Generated wrappers emit Non-blocking suggestions:
Looks good to merge once CI is green. |
|
Current-head review is clean from Claude and Codex, and both previous blocking threads are resolved. Disposition of Claude's non-blocking suggestions:
Promoting this reviewed head to ready; CI and the ready-event Claude review will now run. |
|
Marked ready with head unchanged at 110401b. Waiting for ready-event Claude review run 41552230993 and CI (including .NET run 41552230597). Auto-merge is not armed: repository guidance requires the ready-event Claude review to pass and its comment to be dispositioned first. Both required reviewers approved the draft head; prior threads are resolved. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 110401bc4c
ℹ️ 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".
|
@codex review |
|
Validation for 411189a: Release net10.0 build passed; the internal-constructor regression passed 1/1 separately in generated and reflection modes; Native AOT publishing with -p:Aot=true --use-current-runtime passed on macOS arm64 (with trimming warnings); git diff --check passed. The constructor finding is fixed and its thread resolved. Returned to draft for fresh current-head Claude and Codex reviews. No CI wait or deferral is needed to report this pushed fix. |
|
Codex Review: Didn't find any major issues. What shall we delve into next? Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
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". |
ReviewThe fix is sound. The generator's Suggestions, none blocking:
Overall this looks good to merge once CI is green. 🤖 Reviewed with Claude Code |
|
Run 41552230993 was cancelled on the previous head and is superseded by the successful current-head Claude review (41552797570). Claude and Codex both approve 411189a; all three review threads are resolved. Current Claude suggestions are non-blocking: retain the existing generated-code marker contract for this fix, as previously dispositioned; partial assembly type loading remains tracked in #7429; retain the constructor reflection path given the documented dynamic-test reflection limitations and successful Native AOT publish. No additional change is required for promotion. Marking this reviewed head ready to run CI and the ready-event Claude review. |
Reflection discovery invoked generated dynamic-test sources and then invoked the same builder methods again. It now skips TUnit-generated wrappers while preserving explicitly registered custom sources, invokes builders through reflection, and reads creator locations from
DynamicTestBuilderAttributefor both successful and failed discovery. The type scan includes internal classes, consistent with ordinary reflection discovery.The existing five-case dynamic-index regression checks that the builder runs exactly once per discovery and that each test retains its builder source location. Its counter resets before each discovery so host reuse does not cause false failures. A registered custom-source regression verifies discovery without a builder attribute in both modes. Also corrects the local AOT publishing command: the project uses
Aot=trueto avoid applyingPublishAotto netstandard analyzer references.Closes #7349
Validation:
DynamicTestIndexTests: 5/5 passed in generated mode and 5/5 in reflection mode.DynamicTestInheritedAttributesTests(static builder): 3/3 passed in each mode.git diff --checkpassed.-p:Aot=true --use-current-runtimereached native linking but failed withld: library 'ssl' not foundon this macOS arm64 machine. Full AOT validation remains for CI. Dynamic-test APIs already declare their reflection/AOT limitations.Review fixes (110401b): Release net10.0 build passed; DynamicTestIndexTests 5/5 and RegisteredDynamicTestSourceTests 1/1 passed separately in generated and reflection modes. git diff --check passed. Engine tests remain for CI; AOT publishing was not repeated in this review cycle.
Review fix (411189a): preserve internal builder constructors in reflection mode. New internal-constructor regression passed 1/1 in generated mode and 1/1 in reflection mode. Release net10.0 build and Native AOT publish (
-p:Aot=true --use-current-runtime, macOS arm64) passed; publishing reports existing trimming warnings. No generator output or public API changes. Engine tests remain for CI.