Summary
Automated CI maintenance audit (2026-04-13) found that the most recently failed workflow runs (24307096245 Test Stats Plugin and 24307096246 Test Plugins, both on branch fix/ci-all-fixes-final, triggered 2026-04-12T12:47Z) stem from three persistent root causes that have been present on the source branch (fix/ci-type-errors-and-stale-test-date) since early April. There are currently 7 open PRs all attempting to fix some or all of these same issues with no merge having occurred. This issue consolidates the analysis and proposes a clear merge path.
Root causes confirmed on fix/ci-type-errors-and-stale-test-date (base branch)
1. Stale hardcoded test dates — Test Stats Plugin failures
plugins/stats/tests/integration.test.ts makeSession() defaults date = "2026-03-26" (18+ days ago). Three tests insert data at that date then run rolling-window queries:
| Test |
Window |
Result |
getSessionSummary returns correct averages and totals |
7 days |
0 rows → assertion fails |
getTopTools returns tools ranked by call count |
7 days |
0 rows → assertion fails |
getDurationTrend returns daily data in ASC date order |
14 days |
0 rows → assertion fails |
Fix: Replace "2026-03-26" with dynamic TODAY/YESTERDAY/TWO_DAYS_AGO constants (same pattern already used in db.test.ts).
2. browser-use version mismatch — Test Plugins failures
.claude-plugin/marketplace.json still shows "version": "1.1.1" for browser-use while plugins/browser-use/plugin.json is at 1.1.2. The marketplace-sync.test.ts integration test catches this drift:
AssertionError: Plugin browser-use: version mismatch - plugin.json has 1.1.2, marketplace.json has 1.1.1
Fix: Set "version": "1.1.2" in marketplace.json.
3. Unused TypeScript imports — Test Plugins type-check failures
tsc --noEmit under noUnusedLocals fails on three imports left behind after refactors:
| File |
Unused import |
tools/claudeup-core/src/__tests__/integration/conventions-integration.test.ts |
removeGitignoreEntries |
tools/claudeup-core/src/__tests__/unit/doctor.test.ts |
vi |
tools/claudeup-core/src/services/conventions-manager.ts |
existsSync |
(existsSync import confirmed still present on source branch as of 2026-04-13.)
4. Workflow triggers too restrictive (structural issue)
Both test-plugins.yml and test-stats.yml on the source branch only trigger on:
branches: [main, fix/ci-type-errors-and-stale-test-date]
New fix branches (every fix/ci-* or feat/* not in this list) only get GitGuardian — no test CI on pushes. PRs targeting fix/ci-type-errors-and-stale-test-date do still get PR CI, but this is easily forgotten.
Status of the 7 open PRs
| PR |
Branch |
Fixes |
Status |
| #22 |
fix/ci-typescript-and-stats-dates |
TS imports + dates |
Superseded by #23/#24 |
| #23 |
fix/ci-typescript-and-stats-dates-resolved |
TS imports + dates (conflict-free) |
Superseded by #24 |
| #24 |
fix/ci-24065489776-ts-and-dates |
All 4 root causes (TS + dates + browser-use + partial trigger fix) |
CI reportedly passing; recommended primary merge |
| #28 |
fix/ci-24276607217-browser-use-version |
browser-use version only |
Stacked on #24; superseded |
| #31 |
fix/ci-main-browser-use-version |
browser-use version on main |
Targets orphan dist branch, no test CI; low-priority |
| #32 |
fix/ci-workflow-trigger-broadening |
Workflow trigger broadening only |
Depends on #24's code fixes; should follow #24 |
| #33 |
fix/ci-consolidated |
Everything from #24 + full trigger broadening |
Stacked on #24 HEAD; most comprehensive |
| #34 |
fix/ci-all-fixes-final |
Dates in integration.test.ts + browser-use |
Current HEAD already has the fixes for runs 24307096245/46 |
About the most recent failed runs
Runs 24307096245 and 24307096246 were triggered by commit 84411b6d on fix/ci-all-fixes-final at 12:47Z on 2026-04-12 — an intermediate commit that had fixed only db.test.ts dates but had not yet fixed integration.test.ts or marketplace.json.
PR #34 was subsequently opened at 16:32Z with HEAD commit 3c64990 which does contain both remaining fixes. The PR CI triggered by the PR opening should confirm this.
Recommended merge path
1. Merge PR #24 → fixes TS imports + dates + browser-use + widens triggers to this branch
2. Merge PR #32 → removes branch allowlist entirely from both workflow files
(or merge PR #33 directly, which combines both steps)
3. Close PRs #22, #23, #28 as superseded
4. Re-evaluate PRs #31 and #34 — #34 likely becomes a no-op diff after step 1
Merging in this order is safe: each step is additive and non-destructive. No force-push required.
Next step
Verify PR #24 CI status and merge it. All downstream fix PRs either become no-ops or shrink to a 2-file diff.
/cc @erudenko
Summary
Automated CI maintenance audit (2026-04-13) found that the most recently failed workflow runs (24307096245
Test Stats Pluginand 24307096246Test Plugins, both on branchfix/ci-all-fixes-final, triggered 2026-04-12T12:47Z) stem from three persistent root causes that have been present on the source branch (fix/ci-type-errors-and-stale-test-date) since early April. There are currently 7 open PRs all attempting to fix some or all of these same issues with no merge having occurred. This issue consolidates the analysis and proposes a clear merge path.Root causes confirmed on
fix/ci-type-errors-and-stale-test-date(base branch)1. Stale hardcoded test dates —
Test Stats Pluginfailuresplugins/stats/tests/integration.test.tsmakeSession()defaultsdate = "2026-03-26"(18+ days ago). Three tests insert data at that date then run rolling-window queries:getSessionSummary returns correct averages and totalsgetTopTools returns tools ranked by call countgetDurationTrend returns daily data in ASC date orderFix: Replace
"2026-03-26"with dynamicTODAY/YESTERDAY/TWO_DAYS_AGOconstants (same pattern already used indb.test.ts).2. browser-use version mismatch —
Test Pluginsfailures.claude-plugin/marketplace.jsonstill shows"version": "1.1.1"for browser-use whileplugins/browser-use/plugin.jsonis at1.1.2. Themarketplace-sync.test.tsintegration test catches this drift:Fix: Set
"version": "1.1.2"inmarketplace.json.3. Unused TypeScript imports —
Test Pluginstype-check failurestsc --noEmitundernoUnusedLocalsfails on three imports left behind after refactors:tools/claudeup-core/src/__tests__/integration/conventions-integration.test.tsremoveGitignoreEntriestools/claudeup-core/src/__tests__/unit/doctor.test.tsvitools/claudeup-core/src/services/conventions-manager.tsexistsSync(
existsSyncimport confirmed still present on source branch as of 2026-04-13.)4. Workflow triggers too restrictive (structural issue)
Both
test-plugins.ymlandtest-stats.ymlon the source branch only trigger on:New fix branches (every
fix/ci-*orfeat/*not in this list) only get GitGuardian — no test CI on pushes. PRs targetingfix/ci-type-errors-and-stale-test-datedo still get PR CI, but this is easily forgotten.Status of the 7 open PRs
fix/ci-typescript-and-stats-datesfix/ci-typescript-and-stats-dates-resolvedfix/ci-24065489776-ts-and-datesfix/ci-24276607217-browser-use-versionfix/ci-main-browser-use-versionmainfix/ci-workflow-trigger-broadeningfix/ci-consolidatedfix/ci-all-fixes-finalintegration.test.ts+ browser-useAbout the most recent failed runs
Runs 24307096245 and 24307096246 were triggered by commit
84411b6donfix/ci-all-fixes-finalat 12:47Z on 2026-04-12 — an intermediate commit that had fixed onlydb.test.tsdates but had not yet fixedintegration.test.tsormarketplace.json.PR #34 was subsequently opened at 16:32Z with HEAD commit
3c64990which does contain both remaining fixes. The PR CI triggered by the PR opening should confirm this.Recommended merge path
Merging in this order is safe: each step is additive and non-destructive. No force-push required.
Next step
Verify PR #24 CI status and merge it. All downstream fix PRs either become no-ops or shrink to a 2-file diff.
/cc @erudenko