<freeStyleBuild _class='hudson.model.FreeStyleBuild'><action _class='hudson.model.CauseAction'><cause _class='com.cloudbees.jenkins.GitHubPushCause'><shortDescription>Started by GitHub push by ti-chi-bot[bot]</shortDescription></cause><cause _class='com.cloudbees.jenkins.GitHubPushCause'><shortDescription>Started by GitHub push by ti-chi-bot[bot]</shortDescription></cause></action><action></action><action _class='jenkins.metrics.impl.TimeInQueueAction'><blockedDurationMillis>0</blockedDurationMillis><blockedTimeMillis>0</blockedTimeMillis><buildableDurationMillis>27070</buildableDurationMillis><buildableTimeMillis>27070</buildableTimeMillis><buildingDurationMillis>127012</buildingDurationMillis><executingTimeMillis>127012</executingTimeMillis><executorUtilization>1.0</executorUtilization><subTaskCount>0</subTaskCount><waitingDurationMillis>6528</waitingDurationMillis><waitingTimeMillis>6528</waitingTimeMillis></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><originmain _class='hudson.plugins.git.util.Build'><buildNumber>1252</buildNumber><marked><SHA1>2196747ee59d0a69adab1fd3e6a2331afaf6ddaa</SHA1><branch><SHA1>2196747ee59d0a69adab1fd3e6a2331afaf6ddaa</SHA1><name>origin/main</name></branch></marked><revision><SHA1>2196747ee59d0a69adab1fd3e6a2331afaf6ddaa</SHA1><branch><SHA1>2196747ee59d0a69adab1fd3e6a2331afaf6ddaa</SHA1><name>origin/main</name></branch></revision></originmain></buildsByBranchName><lastBuiltRevision><SHA1>2196747ee59d0a69adab1fd3e6a2331afaf6ddaa</SHA1><branch><SHA1>2196747ee59d0a69adab1fd3e6a2331afaf6ddaa</SHA1><name>origin/main</name></branch></lastBuiltRevision><remoteUrl>https://github.com/PingCAP-QE/ci.git</remoteUrl><scmName></scmName></action><action></action><action></action><action></action><action></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><building>false</building><displayName>#1252</displayName><duration>127012</duration><estimatedDuration>83303</estimatedDuration><fullDisplayName>seed #1252</fullDisplayName><id>1252</id><inProgress>false</inProgress><keepLog>false</keepLog><number>1252</number><queueId>2742576</queueId><result>SUCCESS</result><timestamp>1766044107884</timestamp><url>https://do.pingcap.net/jenkins/view/all/job/seed/1252/</url><builtOn>default-pn8dr</builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>tools/reporters/ci/flaky-tests/core/OwnerResolver.test.ts</affectedPath><affectedPath>tools/reporters/ci/flaky-tests/core/OwnerResolver.ts</affectedPath><affectedPath>tools/reporters/ci/flaky-tests/core/types.ts</affectedPath><commitId>2196747ee59d0a69adab1fd3e6a2331afaf6ddaa</commitId><timestamp>1766044069000</timestamp><author><absoluteUrl>https://do.pingcap.net/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>fix: prioritize exact suite matches over parent suite matches (#4008)

### Summary

I successfully fixed the issue where the flaky owner for the
`pkg/executor/importer` package was incorrectly reported as
`sunruoxi@pingcap.com` instead of `bear.c@pingcap.com`.

### Root Cause
The problem was in the `OwnerResolver.resolveViaMap` method in
`/tools/reporters/ci/flaky-tests/core/OwnerResolver.ts`. The logic
didn't properly distinguish between exact suite matches and parent suite
prefix matches when assigning the resolution level. Both types of
matches were assigned the same level ("suite"), causing the first
encountered match to win when priorities were equal.

### Changes Made

1. **Updated `types.ts`**: Added a new `OwnerResolutionLevel` value
`"parent-suite"` to distinguish between exact suite matches and parent
suite prefix matches.

2. **Updated `OwnerResolver.ts`**:
- Modified the level assignment logic to use `"suite"` for exact matches
and `"parent-suite"` for prefix matches
- Updated the level ranking to give exact suite matches (level 3) higher
precedence than parent suite matches (level 2)

3. **Updated `OwnerResolver.test.ts`**:
   - Fixed the import statement for `assertEquals`
- Updated the test case type to include the new `"parent-suite"` level
- Updated the existing parent suite test case to expect `"parent-suite"`
level instead of `"suite"`
- Added a new test case specifically for the exact vs parent suite
precedence issue
</comment><date>2025-12-18 07:47:49 +0000</date><id>2196747ee59d0a69adab1fd3e6a2331afaf6ddaa</id><msg>fix: prioritize exact suite matches over parent suite matches (#4008)</msg><path><editType>edit</editType><file>tools/reporters/ci/flaky-tests/core/types.ts</file></path><path><editType>edit</editType><file>tools/reporters/ci/flaky-tests/core/OwnerResolver.test.ts</file></path><path><editType>edit</editType><file>tools/reporters/ci/flaky-tests/core/OwnerResolver.ts</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://do.pingcap.net/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></culprit></freeStyleBuild>