Repository navigation
Triage: duplicate and consolidatable open issues/PRs #414
Copy link
Copy link
Closed
Labels
kind/cleanupCategorizes issue or PR as related to cleaning up code, process, or technical debt.Categorizes issue or PR as related to cleaning up code, process, or technical debt.
Description
Review of open issues/PRs (24 issues, 18 PRs; nearly all bot-generated by hivecommons-hive).
Issue ↔ PR pairs (each PR should close its issue; verify Fixes #N in PR bodies)
412→#413, 409→#410, 407→#408, 405→#406, 402→#403, 400→#401, 396→#397, 394→#395, 384→#385, 382→#383, 380→#381, 377→#378, 346→#347, 344→#345, 332→#333, 313→#314, 297→#298
Consolidation candidates (likely touching the same bundle-test files; merge order causes conflicts)
- Owners/auth e2e coverage: test(bundle): drive parseOwners's content-shape arms (owners.ts:39/41/83) through dist/index.js #406, test(bundle): drive blunderbuss's assignee exclusion (pullRequestOwners.ts:96) through dist/index.js #403, test(bundle): drive the pull-request OWNERS fail-closed arm (auth.ts:426, no OWNERS file covers README.md) through dist/index.js #401, test(bundle): drive loadOwnersTree's failure arms (owners.ts L164/L197/L229) through dist/index.js #383, test(bundle): drive the authorization section's schema rejections and the cross-tier users union through dist/index.js #381, test(bundle): drive the authorization policy arms of auth.ts (members/collaborators/root-OWNERS admits, trusted refusal, config-load failures, empty login) through dist/index.js #378 (issues 405, 402, 400, 382, 380, 377) → one PR.
- Sweep/tide/approve/lgtm plugins: test(bundle): drive the sweep cron's enqueued outcome (sweep.ts:75) through dist/index.js #385, test(bundle): drive the sweep cron's empty-window, failed-listing and blunderbuss-freshness arms through dist/index.js #345, test(bundle): drive tide's verdict arms (unknown-retry exhaustion, moved head, 405/409 refusals, merged/closed/locked, check_suite guards, once-per-run) through dist/index.js #347, test(bundle): drive the approve plugin's evaluation arms through dist/index.js #333, test(bundle): drive the lgtm removal no-op arms (onPrLgtm.ts:33, labels/lgtm.ts:106) through dist/index.js #410, test(bundle): drive withdrawalReason's 'and N more' tail and no-withdrawer arm (approveReview.ts:105/120) through dist/index.js #408.
- Small single-arm tests: test(bundle): drive react()'s missing comment.id arm (trigger.ts:293) through dist/index.js #413, test(bundle): drive meow.ts:28 (strict /meow re-check after the dispatcher's generic match) through dist/index.js #397, test(bundle): drive parseProwConfig's empty-document arm (config.ts:373) through dist/index.js #395, test(bundle): drive the config input's explicit source and the loader's tier read failures through dist/index.js #314, test(bundle): drive owners-label's early-return and failure arms through dist/index.js #298.
Duplicates / overlaps
- [quality] comment-only prow.yaml throws YAMLException instead of loading as an empty configuration (parseProwConfig trim guard misses zero-document input) #393 (bug: comment-only prow.yaml throws) vs [quality] parseProwConfig's empty-document arm (config.ts:373, return {}) has no end-to-end coverage through dist/index.js #394 (coverage of the same arm, PR test(bundle): drive parseProwConfig's empty-document arm (config.ts:373) through dist/index.js #395): handle together; fixing [quality] comment-only prow.yaml throws YAMLException instead of loading as an empty configuration (parseProwConfig trim guard misses zero-document input) #393 changes what test(bundle): drive parseProwConfig's empty-document arm (config.ts:373) through dist/index.js #395 tests.
- [quality] a 0-byte OWNERS file fails every OWNERS-reading run with "invalid OWNERS file returned from GitHub API" (decode treats content "" as missing) #404 (bug: 0-byte OWNERS file fails runs) overlaps [quality] parseOwners's content-shape arms (owners.ts:39/41/83: whitespace-only, non-mapping and non-string-role OWNERS files) have no bundle test through dist/index.js #405/test(bundle): drive parseOwners's content-shape arms (owners.ts:39/41/83) through dist/index.js #406 content-shape tests; tests should pin the fixed behavior.
- [quality] 14 commenter-auth catch arms (10 commands + auth.ts:181/210/217/224) are unreachable — only module mocks in unit tests keep them covered #386 (unreachable commenter-auth catch arms) overlaps [quality] the authorization policy arms of auth.ts (members/collaborators/root-OWNERS admits, trusted refusal, config-load failures, empty login) run only under unit tests, never through dist/index.js #377/[quality] auth.ts assertPullRequestOwner fail-closed arm (
no OWNERS file covers README.md, auth.ts:426) has 0 end-to-end hits through dist/index.js #400 → fold into test(bundle): drive the authorization policy arms of auth.ts (members/collaborators/root-OWNERS admits, trusted refusal, config-load failures, empty login) through dist/index.js #378. - [quality] dependabot PRs bumping ncc-bundled deps always fail the dist/ gate — add a repack-dist job to test.yml #171 (dependabot dist repack) is implemented by ci: repack dist/ on dependabot branches without exposing a write token #390; link/close.
Other
- 🐝 Hive Advisory Report #170 is a tracking issue.
- [CI / CD] System to perform tasks on a test repo, end to end #40 (e2e test repo, 2021) is stale and a broader version of this coverage effort.
- [quality] getArgumentLabels and anyLabelMatches have no production caller — only their unit tests keep them covered #366 (dead code
getArgumentLabels) should be a removal, not a test.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
kind/cleanupCategorizes issue or PR as related to cleaning up code, process, or technical debt.Categorizes issue or PR as related to cleaning up code, process, or technical debt.
Activity
mrbobbytables commentedon Oct 9, 2026
Priority list
P1: real bugs, fix first (tests depend on the fixed behavior)
prow.yamlYAMLException, then land test(bundle): drive parseProwConfig's empty-document arm (config.ts:373) through dist/index.js #395 pinning the empty-config behavior.P2: close out already-covered work (low effort)
3. #171 + #390: confirm #390 has
Fixes #171, review, and merge. Unblocks the dependabot dist-gate failures for later PRs.4. Issue↔PR link check: add
Fixes #Nto any of the 17 PRs missing it so merging auto-closes the issues.P3: consolidate (reduces merge conflicts)
5. Owners/auth bundle: combine #406, #403, #401, #383, #381, #378; fold #386 in. Land after P1.
6. Plugin and cron bundle: combine #385, #345, #347, #333, #410, #408.
7. Small single-arm tests: batch #413, #397, #314, #298 (#395 goes with P1).
P4: cleanup
8. #366: replace with a dead-code removal PR for
getArgumentLabelsandanyLabelMatches.9. #40: close as stale/superseded by the bundle-test effort.
10. #170: keep as tracking issue; update after merges.
mrbobbytables commentedon Oct 11, 2026
/kind cleanup
mrbobbytables commentedon Oct 11, 2026
Priority list — update (2026-10-11)
Everything in the Oct 9 list has landed: all 18 PRs merged and all 21 paired issues closed (#171, #366, #393, #404 included). Current state: 16 open issues, 16 open PRs (12 hive, 4 dependabot).
P0: unblock CI automation
REPACK_APP_ID/REPACK_APP_PRIVATE_KEYrepo secrets. Thepush-repacked-distjob added by ci: repack dist/ on dependabot branches without exposing a write token #390 fails with'client-id' … must be set to a non-empty string, so it never repacks. chore(deps): bump js-yaml from 5.4.2 to 5.4.3 in the production-dependencies group #440 (js-yaml, a prod dep) fails the dist gate because of this. Until the secrets exist, chore(deps): bump js-yaml from 5.4.2 to 5.4.3 in the production-dependencies group #440 needs a manualnpm run packcommit.P1: coverage-measurement fixes (land before the arm tests so their e2e hits are real)
2. #427 (→ #426): stop the acceptance harness loading
src/into the vitest worker. Toucheshelpers.ts+ 25 existing test files (1-line import swaps) — none of the new PRs importownersFixturesdirectly, so no conflicts.3. #425 (→ #424): column-aware source map for
test:coverage:e2e. No file overlap with #427; rebase after it and confirm the false zeros onpullRequestOwners.ts:74/config.ts:428/owners.ts:284are gone.P2: "drive X through dist/index.js" arm tests — merge individually, no consolidation needed
Each adds exactly one new file under
__tests__/bundle/and imports only from./helpers; zero overlap between them, so merge order doesn't matter.4. #423 (→ #422), #429 (→ #428), #431 (→ #430), #433 (→ #432), #435 (→ #434), #437 (→ #436), #439 (→ #438), #445 (→ #444), #447 (→ #446), #448 (no issue — fine to merge as-is).
P2: dependabot
5. #441, #442, #443 — dev deps / action bumps, dist unaffected, CI green → merge.
6. #440 — after item 1 (or manual repack).
P3: new PR needed
7. #386 (14 unreachable commenter-auth
catcharms): the probes inauth.tsnever reject, so the wrappers are dead code only reachable viavi.mock. Open a removal PR (drop the wrappers + their mock-only unit tests) rather than a coverage PR. Was slated to fold into #378, but #378 merged without it.P4: cleanup
8. #40: close as stale/superseded — the bundle test suite is this.
9. #170: keep as tracking issue; refresh after P1/P2 merge.
10. Close this issue once P0–P2 are done.
mrbobbytables commentedon Oct 11, 2026
P1 done. #427 merged (1790da4, closes #426) then #425 merged (850dbb0, closes #424). Verified post-#427 that
npm run test:coverage:e2ecomposes columns for all 52src/modules, the three false-zero lines now report hits (146/131/5) and the unreachable arms stay at 0, with no deflation of the statement/function/branch totals (98.56 / 94.44 / 98.59). P2 arm-test PRs (#423, #429, #431, #433, #435, #437, #439, #445, #447, #448) are unblocked.mrbobbytables commentedon Oct 11, 2026
P2 done. All 10 arm-test PRs merged — #423, #429, #431, #433, #435, #437, #439, #445, #447, #448 — closing #422, #428, #430, #432, #434, #436, #438, #444, #446. Verified as a single stack on main @ 850dbb0:
npm run test:coverage:e2e72 files / 452 tests pass (98.75 / 95.34 / 98.59 / 98.73), and with #425's column-accurate map every targeted arm now registers bundle hits (incl. the||right arm atsweep.ts:179and the?? ''arm atlabelSync.ts:133, which are branch-only). Dependabot #441, #442, #443 merged (SHA-pinned action bumps + dev deps).Remaining: P0 #440 (needs
REPACK_APP_ID/REPACK_APP_PRIVATE_KEYor a manualnpm run pack), P3 #386 (dead-code removal PR), P4 #40 (close), #170 (tracking).mrbobbytables commentedon Oct 11, 2026
P3: opened #449 for #386 — removes the 14 unreachable commenter-auth
catchwrappers (10 command handlers + 4 inauth.ts), deletes the 15 mock-only unit cases that pinned their messages, repacksdist/. Net −328 lines.npm run allpasses (151 files / 2075 tests), unit coverage stays at 100 % lines without the mock-rejection cases, e2esrc/lines 98.73 % → 99.28 %. CI green; awaiting review.Remaining after #449: P0 #440 (
REPACK_APP_*secrets or manualnpm run pack), P4 #40 (close), #170 (tracking).mrbobbytables commentedon Oct 11, 2026
P4 done. #40 closed as superseded by the bundle acceptance harness (72 files / 452 tests, 99.3 % e2e lines against
dist/index.js); the real-sandbox nightly half is noted there as a separate infra-bound follow-up to #210 if ever funded. #170 given/kind cleanup(it is a self-refreshing bot digest; stays open by design).Final state
Everything on the list is merged, closed or in a PR except:
REPACK_APP_ID/REPACK_APP_PRIVATE_KEYsecrets (or a manualnpm run packon the dependabot branch).This issue can close once those two land.
mrbobbytables commentedon Oct 12, 2026
Everything on the triage list is now covered: #449 (closes #386) and #440 are merged, #40 is closed, and #170 stays open as a tracking issue. Nothing remains to ship here, so a maintainer can close this issue.
— hive: backend=copilot model=claude-sonnet-5.5
🐝 Hive Agent:
contributor| SHA:unknownhivecommons-hive commentedon Oct 13, 2026
Fixed by #449 (merged d4b05e5). Closing. Reply /reopen if the problem persists.