Draft
Conversation
drawTopRightRect was using arrowHeight (8px) for the x-axis calculation instead of arrowWidth (12px), causing a 4px horizontal offset on the tooltip arrow. All other draw*Rect methods correctly use arrowWidth for x-axis positioning. Co-Authored-By: Claude Opus 4.6 <[email protected]>
The ?? operator has lower precedence than -, so the expression `height ?? 0 - borderWidth` was parsed as `height ?? (0 - borderWidth)` instead of `(height ?? 0) - borderWidth`. This caused the navigation bar border to be positioned at -borderWidth when navigationController was nil. Co-Authored-By: Claude Opus 4.6 <[email protected]>
The date formatter in PluginDirectoryServiceRemote used "YYYY" (ISO week-year) instead of "yyyy" (calendar year). Near year boundaries (Dec 31 / Jan 1), this caused dates to be parsed with the wrong year. Also fixed the matching format in the test helper. Added a test that verifies Dec 31 2024 parses as year 2024. Co-Authored-By: Claude Opus 4.6 <[email protected]>
When totalCount > 0 but all segments have value 0, normalizedSegments() filters them all out, leaving an empty array. The loop `0..<segments.count - 1` then evaluates to `0..<-1`, causing a fatal range error. Fixed by using max(count, 1) - 1. Added tests for empty segments, valid segments, and zero total count. Co-Authored-By: Claude Opus 4.6 <[email protected]>
PluginViewModel was passing plugin.id (e.g. "jetpack/jetpack.php") to getPluginDirectoryEntry(slug:) in 4 places, but directory entries are keyed by plugin.state.slug (e.g. "jetpack"). This caused lookups to always return nil, so directory metadata (descriptions, FAQs, changelogs, ratings) was never populated. Changed all 4 call sites to use plugin.state.slug. Added tests that verify the id/slug distinction and correct lookup behavior. Co-Authored-By: Claude Opus 4.6 <[email protected]>
Collaborator
Generated by 🚫 Danger |
The test was creating its own DateFormatter with the same format string as production code, so a bug in both would go undetected. Now uses PluginDirectoryGetInformationEndpoint.parseResponse() which exercises the real decoder. Co-Authored-By: Claude Opus 4.6 <[email protected]>
|
Contributor
|
| App Name | Jetpack | |
| Configuration | Release-Alpha | |
| Build Number | 31307 | |
| Version | PR #25343 | |
| Bundle ID | com.jetpack.alpha | |
| Commit | b35cf70 | |
| Installation URL | 4f85c9der6sc8 |
Contributor
|
| App Name | WordPress | |
| Configuration | Release-Alpha | |
| Build Number | 31307 | |
| Version | PR #25343 | |
| Bundle ID | org.wordpress.alpha | |
| Commit | b35cf70 | |
| Installation URL | 760iq6k0k1k90 |
Contributor
🤖 Build Failure AnalysisThis build has failures. Claude has analyzed them - check the build annotations for details. |
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.





Summary
Fixes five independently-identified bugs, three with accompanying unit tests:
PluginViewModelpassedplugin.id(e.g."jetpack/jetpack.php") togetPluginDirectoryEntry(slug:)in 4 places, but entries are keyed byplugin.state.slug(e.g."jetpack"). Directory metadata was never populated.totalCount > 0but all segment values are 0,normalizedSegments()returns[], and0..<segments.count - 1evaluates to0..<-1, crashing at runtime.YYYY(ISO week-year) instead ofyyyy, causing dates near year boundaries to parse with the wrong year.height ?? 0 - borderWidthparsed asheight ?? (0 - borderWidth)instead of(height ?? 0) - borderWidth.drawTopRightRectusedarrowHeight(8px) for an x-axis calculation instead ofarrowWidth(12px).Test plan
testDateParsingNearYearBoundarypasses (PluginDirectoryTests)DonutChartViewTestspass (3 cases: empty segments, valid segments, zero total)PluginDirectoryEntryLookupTestspass (4 cases: id/slug distinction, lookup by slug, lookup by id, store lookup)🤖 Generated with Claude Code