Skip to content

fix: isolate tooling telemetry and test pregenerated Wolverine handlers - #52

Closed
PANiXiDA wants to merge 7 commits into
developmentfrom
fix/disable-observability-for-tests-codegen
Closed

PANiXiDA wants to merge 7 commits into
developmentfrom
fix/disable-observability-for-tests-codegen

Conversation

@PANiXiDA

@PANiXiDA PANiXiDA commented Oct 7, 2026 •

Copy link
Copy Markdown
Contributor

The Host initialized OpenTelemetry during functional tests and Wolverine code generation, while tests could silently compile handlers dynamically instead of checking the generated code used by deployment. Skip observability in the Test environment and for the codegen command, and add a strict pregenerated-handler test path.

Identity and Compendium web factories explicitly select the Host assembly. WOLVERINE_PREGENERATED=1 selects Static loading; ordinary tests retain Auto. A dedicated CI workflow generates handlers, recompiles them and runs the complete solution with Static. Production loading settings are unchanged.

The manually dispatched benchmark workflow compares clean-output build/test cycles on 20 separate GitHub runners. Each runner warms both variants and measures one pair; order is balanced 10/10. Total time includes the bootstrap Host build, codegen write, recompilation and all test projects with their containers. Restore, image downloads and warmups are excluded equally.

Mean elapsed time Auto without generated types Codegen + Static Change Paired 95% CI
Complete build/codegen/test cycle 181.227 s 183.145 s +1.06% -0.33% to +2.56%
Test execution 155.632 s 144.718 s -7.01% -8.17% to -5.78%

Test execution saved 10.914 seconds, while additional preparation cost 12.832 seconds. The complete cycle shows no statistically significant improvement. Retain the static path to validate pregenerated handlers, rather than claiming an end-to-end speed optimization.

Validation:

  • Benchmark run 37641341275 passed: 40 measured and 40 warmup runs, each with all 1210 tests passing, with no measured samples excluded.
  • Local full Release Static preflight passed 1210/1210 tests.
  • Negative control without generated files failed with MissingPreBuiltTypesException for 45 handlers, confirming no dynamic fallback.
  • Functional tests verify that Test hosts omit OpenTelemetry providers and Development hosts still register them.
  • Targeted dotnet format validation, actionlint and git diff checks passed.
  • Final commit 5b143b5 passed the complete CI and Sonar Quality Gate and the dedicated pregenerated-handler test workflow. Subsequent script style/comment corrections preserved the recorded statistics exactly.

Method, full results and raw measurements are committed with the benchmark scripts. This experiment holds the observability flag constant; it measures pregeneration plus Static, including its generated handler registry. It does not measure deployed containers or the latency of the existing parallel CI matrix.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 7, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-07T14:20:16.352052Z a7daa45 PR opened
ℹ️ 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" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@PANiXiDA PANiXiDA changed the title fix: skip observability during tests and code generation fix: isolate tooling telemetry and test pregenerated Wolverine handlers Oct 7, 2026
@PANiXiDA PANiXiDA closed this Oct 7, 2026
@PANiXiDA
PANiXiDA deleted the fix/disable-observability-for-tests-codegen branch October 7, 2026 16:08
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.

2 participants