Conversation
…ert facade Raise line coverage on branchy domain logic (project 72.2% -> 79.1%): - Formatter, Helper, ValuePrinter, FailureMapper output renderers - ConfigInflector attribute-driven hydration (every source + coercion) - TypeMatcher JSON schema arms and parser guards - Assert facade failure branches (same/notSame/true/false/null/contains/fail) - Explanator bench diagnostics thresholds Assisted-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Extend renderer/logger suites to hit status arms, escaping, and formatting branches: - TerminalLogger 62.8% -> 98.6% (channel streaming, status symbols, diffs) - TeamcityLogger 69.7% -> 98.5% (event arms, TeamCity value escaping) - bench Renderer 70.8% -> 99.0% (rounds table, filtered/summary columns) - BenchHandler toCaseSets + verdict boundary/INF cases Assisted-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…value objects Round out coverage on assertion, output and data-plugin logic plus core value objects (project 79.1% -> 83.4%): - AssertJson matcher failure/path-parser branches -> 100% - Teamcity Formatter message builders -> 97.8% - HTML DocumentBuilder status/section branches -> 98.5% - DataProviderInterceptor zip/cross/union + error guards -> 100% - Status enum predicates and Style color helpers Assisted-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
At frstdev == 10.0 exactly with low iter time, explain() emitted both HighVarianceLowIterTime (>= 10.0, the 10-20 band) and the LowIterTime all-clear notice (<= 10.0), a contradictory pair. Tighten LowIterTime's guard to frstdev < 10.0 so the acceptable/high/very-high variance bands partition at 10, and sync the DTO docblock to match. Assisted-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Rector 2.6.4 swapped its DI container and dropped RectorConfig::tagged(), which RectorRunner used to feed the freshly-registered rules to the traverser, so every rector-fixture test errored at container build. Use findByContract() (the replacement, returning a plain list) and require rector/rector ^2.6.4 accordingly. Assisted-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Codecov Report❌ Patch coverage is
📢 Thoughts on this report? Let us know! |
When fixture resolution or the Rector container build threw, the batch stored the error on its own result. Reporters only open and close the batch node (never re-report it), so the failure vanished into a bare "error" count with no message, name, or trace. Emit it as one errored data set instead, so every reporter renders it through the same path as a failing fixture. Assisted-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…ta set Regression test for the swallowed-error fix: a rule whose fixtures path escapes the project trips the containment guard before any fixture runs, and the interceptor must report it as one errored data set (Failed batch with a MultipleResult), not as a bare swallowed error. Assisted-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Assisted-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
roxblnfk
added a commit
that referenced
this pull request
Aug 27, 2026
fix(bench): partition the variance bands cleanly at frstdev == 10.0 fix(rector): resolve rule instances via findByContract, require rector/rector ^2.6.4 (Rector 2.6.4 dropped RectorConfig::tagged(); rectorphp/rector#9870) fix(rector): surface a rule setup failure as an errored data set refactor(codecov): null-coalescing assignment in CoberturaReport Assisted-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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.
What was changed
Started as a coverage sweep and grew a few fixes the sweep uncovered.
Coverage: raised line coverage on branchy domain logic from 72.2% to 83.4%, worst-first, asserting real behaviour rather than colouring lines. Covered the value/failure formatters (
Formatter,Helper,ValuePrinter,FailureMapper),ConfigInflector, the JSONTypeMatcher/AssertJsonmatchers, theAssertfacade failure branches, the terminal/TeamCity loggers and formatters, the HTMLDocumentBuilder, the benchExplanator/Renderer, the data-provider combinators, and theStatus/Stylevalue objects.Fixes found along the way:
fix(bench): the variance bands inExplanatoroverlapped atfrstdev == 10.0exactly, emitting the contradictoryHighVarianceLowIterTimeandLowIterTimeat once. Tightened theLowIterTimeguard so the bands partition at 10.fix(rector): Rector 2.6.4 swapped its DI container and droppedRectorConfig::tagged(), breaking every rule-fixture test at container build. Moved tofindByContract()and bumpedrector/rectorto^2.6.4. Reported upstream: tagged() removed from RectorConfig in patch 2.6.4 rectorphp/rector#9870fix(rector): a rule that failed before any fixture ran (fixture resolution or container build) stored the error on the batch, which reporters only open and close, so it vanished into a bare "error" count. It is now surfaced as one errored data set, with a regression test.refactor(codecov): smallisset-guard to??=cleanup inCoberturaReport.See commit history for details.
Why?
A regression safety net for the parts of the framework that had the least of one. The sweep doubles as a bug hunt: assertions written against intended behaviour turn a wrong branch into a red test instead of a locked-in one, which is how the bench boundary and the two Rector issues surfaced.
Checklist