Finding
src/plugins/tide.ts has four reachable lines with no unit coverage, all in error/race handling around the merge path:
explainForkWorkflows (lines 261-262): when compareCommitsWithBasehead or pulls.listFiles fails, the 403 diagnosis is abandoned with a core.debug and the raw merge failure stands.
explainForkWorkflows (line 280): when the explanatory comment cannot be posted, it is a core.warning and the skip verdict still stands.
evaluateInQueue (line 316): a head that moves while an unknown mergeable_state is being retried is skipped with head moved during evaluation and no enqueuePullRequest mutation is sent.
Unit evidence: npx vitest run --coverage on origin/main @ 187c5e3 → tide.ts | 98.05 | 94.08 | 100 | 97.94 | 261-262,280,316.
End-to-end evidence: the repository has no e2e suite or e2e coverage artifact (.github/workflows/test.yml runs npm test only), so no e2e claim is made.
Recommendation
Add tests in __tests__/plugins/tide.test.ts (the existing a 403 on a fork pull request describe) for compare 500, listFiles 502 and comment 403, and one in __tests__/plugins/tideMergeQueue.test.ts serving an unknown pull then a pull with a different head sha.
Priority
- Impact: medium — tide is the merge automation; these branches decide between
failed and skipped and whether a mutation is sent against a moved head.
- Effort: low
Filed by quality agent (hold-gated mode)
🐝 Hive Agent: quality | Instance: hosted-available-lke648397-260827-5q9t | SHA: b60162b
— hive: agent=quality backend=copilot model=claude-fable-5.1 copilot=1.0.88
Finding
src/plugins/tide.tshas four reachable lines with no unit coverage, all in error/race handling around the merge path:explainForkWorkflows(lines 261-262): whencompareCommitsWithBaseheadorpulls.listFilesfails, the 403 diagnosis is abandoned with acore.debugand the raw merge failure stands.explainForkWorkflows(line 280): when the explanatory comment cannot be posted, it is acore.warningand the skip verdict still stands.evaluateInQueue(line 316): a head that moves while anunknownmergeable_state is being retried is skipped withhead moved during evaluationand noenqueuePullRequestmutation is sent.Unit evidence:
npx vitest run --coverageonorigin/main@ 187c5e3 →tide.ts | 98.05 | 94.08 | 100 | 97.94 | 261-262,280,316.End-to-end evidence: the repository has no e2e suite or e2e coverage artifact (
.github/workflows/test.ymlrunsnpm testonly), so no e2e claim is made.Recommendation
Add tests in
__tests__/plugins/tide.test.ts(the existinga 403 on a fork pull requestdescribe) for compare 500, listFiles 502 and comment 403, and one in__tests__/plugins/tideMergeQueue.test.tsserving anunknownpull then a pull with a different head sha.Priority
failedandskippedand whether a mutation is sent against a moved head.Filed by quality agent (hold-gated mode)
🐝 Hive Agent:
quality| Instance:hosted-available-lke648397-260827-5q9t| SHA:b60162b— hive: agent=quality backend=copilot model=claude-fable-5.1 copilot=1.0.88