Conversation
What was broken The billing account details modal could still show the markup-derived engagement member payment and challenge fee when billing-account rows only exposed a derived memberPaymentAmount. QA still saw the $753.42 / $9.24 split instead of the finance split. Root cause The prior fix only preserved exact split fields when they were already present on billing-account line items. For engagement rows that only carry an assignment id and combined ledger amount, the API-provided memberPaymentAmount can be derived from billing markup and is wrong for payments that used an absolute finance challenge fee. What was changed Added a lightweight raw finance payment split fetch for engagement assignments and made the billing modal prefer matching finance paymentAmount/challengeFee values before falling back to billing-account fields or markup math. Payment helpers now also read report-shaped top-level paymentAmount, challengeFee, and billingAccountId fields. Any added/updated tests Added modal regression coverage for the QA-failed split, service coverage for the raw payment split fetch, and utility coverage for top-level payment split fields.
What was broken The rating distribution marker line in the member profile rating modal was always yellow, even when the member rating color was red, blue, green, or gray. Root cause The marker line is rendered by a CSS pseudo-element with a hardcoded yellow background, while the nearby rating values already use getRatingColor. What was changed The modal now computes the rating color once and applies it to the marker element. The marker line uses currentColor so it stays in sync with the displayed rating color. Any added/updated tests Updated MemberRatingInfoModal.spec.tsx to assert the marker receives the mocked rating color. Focused modal tests pass. The full yarn test:no-watch command was run and fails in unrelated work and wallet-admin suites that are outside this change.
What was broken - Active challenge saves could show a success-only state after an attempted active phase shortening, even when challenge-api kept the original timeline. Root cause - The editor reset and navigated with the patch response, which could echo submitted phase dates instead of the persisted schedule state. What was changed - Active scheduled challenge saves now refetch the persisted challenge before resetting or navigating. - Rejected active-phase shortening is detected from the fresh schedule and shown as a partial-save warning while other saved fields remain saved. - Challenge editor docs were updated for the post-save schedule verification behavior. Any added/updated tests - Added a ChallengeEditorForm regression test for a patch response that echoes shortened phase dates while the persisted timeline remains unchanged. - Validation run: focused PM-5446 test passed; lint passed; build passed with existing warnings. Full yarn test:no-watch --runInBand still fails on unrelated existing wallet-admin alias/icon issues and pre-existing launch approval expectations.
PM-5245: Use finance splits in billing modal
PM-5446: Restore persisted active schedules
PM-5442: Match rating marker line color
What was broken Profiles with a positive rating above the highest returned rating distribution bucket showed the rating value but omitted the Top X% percentile badge. Root cause The percentile calculation returned undefined when no distribution bucket contained or exceeded the member rating. For outlier ratings above the final bucket, that suppressed the badge even though the member should still be shown as a top-ranked member. What was changed Treat ratings above the final distribution bucket as the top known member percentage so the existing formatter renders a visible Top 1% badge instead of hiding the percentile details. Any added/updated tests Added utility coverage for ratings above the highest distribution range and component coverage for rendering Top 1% with a 4051 profile rating.
What was broken Development totals on profiles added the AI Engineering and Challenge subtrack counters together, so the same Dev-track AI challenges could be counted twice. Root cause AI Engineering is displayed under Development from the DATA_SCIENCE rating path, while overlapping Dev Challenge history remains visible as a Development subtrack. Parent totals were simple subtrack sums and ignored shared challenge history. What was changed Added history-aware parent summary calculation for Development, keyed by challenge history identity, and used it in active track aggregation and the Development drilldown. Non-Development drilldowns keep the existing summing behavior. Any added/updated tests Added a profiles hook regression test covering AI Engineering and Challenge histories sharing the same Dev AI challenges.
What was broken The Marathon Match scorer config editor already loaded and saved scoreDirection, but operators had no field in the Work app to choose MAXIMIZE or MINIMIZE. Root cause (if identifiable) The UI draft and API payload included scoreDirection defaults, but the Scorer Settings form did not render a control for it. What was changed Added a Score Direction radio group with Maximize and Minimize options, defaulting to Maximize when the draft has no saved direction. Wired the radio choice into the existing scorer config draft and save payload. Added local styles matching the existing settings grid. Any added/updated tests Added a MarathonMatchScorerSection test covering the default Maximize selection and saving Minimize to the create config payload.
PM-5444: Show top percentile for highest profile ratings
PM-5437: Deduplicate development profile stats
PM-5454: Add score direction radios to MM scorer config
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.
https://topcoder.atlassian.net/browse/PM-5454
https://topcoder.atlassian.net/browse/PM-5442
https://topcoder.atlassian.net/browse/PM-5555
https://topcoder.atlassian.net/browse/PM-5446
https://topcoder.atlassian.net/browse/PM-5245