Skip to content

Minor fixes for issues noted from last deploy#1991

Merged
jmgasper merged 12 commits into
masterfrom
dev
Jun 26, 2026
Merged

Minor fixes for issues noted from last deploy#1991
jmgasper merged 12 commits into
masterfrom
dev

Conversation

jmgasper added 12 commits June 24, 2026 16:26
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
@jmgasper jmgasper requested a review from kkartunov as a code owner June 26, 2026 00:44
@jmgasper jmgasper merged commit fa18e62 into master Jun 26, 2026
9 checks passed
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.

1 participant