Skip to content

CI maintenance: 3 root-cause failures, 7 overlapping fix PRs — merge roadmap #41

@erudenko

Description

@erudenko

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingci

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions