Skip to content

[CI Failure Doctor] Investigate CI failure run 21783265537 #14386

@github-actions

Description

@github-actions

🏥 CI Failure Investigation - Run #21783265537

Summary

  • Commit 01b1e42 died in CI because the JS cross-language frontmatter hash regression and the canary coverage guard now both fail before the rest of the pipeline can finish.

Failure Details

Root Cause Analysis

  1. js-integration-live-api: frontmatter_hash_github_api.test.cjs asserts that the JS hash equals Go’s hash for .github/workflows/audit-workflows.md but Go now returns ff56a35b191afe28f76a09217de1597695a225e8f41502cc815a0a9e0eb2f96e while the JS implementation still produces bb5cbd9552401591e9476ae803f1736a88dca3f654f725dadffa5a7dbc31d639, so the test immediately fails.
  2. canary_go: compare-test-coverage.sh complains that 1655 tests are missing because list-all-tests.sh reports 4066 defined tests while the executed-artifact list only contains 2411 entries (coverage drops to 59.3%). The missing names (e.g., TestASCIILogoAlignment, TestAWFInstallationStepDefaultVersion, TestActionFriendlyGitHubToolsets, TestActivationJobWithIfConditionHasPlaceholderStep, etc.) are never run by the current unit/integration patterns.

Failed Jobs and Errors

  • js-integration-live-api: frontmatter_hash_github_api.test.cjs → AssertionError expecting the Go hash ff56a35b... but receiving bb5cbd95....
  • canary_go: compare-test-coverage.sh all-tests.txt executed-tests.txt → ❌ FAILURE: Found 1655 tests that are NOT being executed in CI (Test coverage: 59.3% with 2411/4066 tests).

Investigation Findings

  • The cross-language test is hard-coded against Go’s canonical hash, so the JS parser must be updated to reproduce Go’s newer output for audit-workflows.md before the test can pass.
  • The coverage guard is currently comparing the full list of defined tests with whatever the matrix ran; since the matrix does not exercise the ~1655 workflow/CLI tests listed above, the guard fails even when those tests are intentionally skipped.

Recommended Actions

  • Update the JavaScript computeFrontmatterHash path (and/or the test fixture) so that computeFrontmatterHash('.github/workflows/audit-workflows.md') returns the Go hash ff56a35b191afe28f76a09217de1597695a225e8f41502cc815a0a9e0eb2f96e, then rerun npm test -- frontmatter_hash_github_api.test.cjs to confirm parity.
  • Adjust scripts/list-all-tests.sh/compare-test-coverage.sh or expand the integration/job matrix so that the missing tests listed in the failure output are actually executed, keeping the coverage guard aligned with the set of tests CI is supposed to run.

Prevention Strategies

  • Run the cross-language frontmatter hash regression locally (or via a lint job) whenever workflows or the hash algorithm change so both Go and JS implementations stay in sync before pushing.
  • Keep the coverage guard’s gold list in lockstep with the tests our jobs actually execute (e.g., maintain a curated allowlist or extend the matrix) so that the guard raises a red flag only when truly uncovered tests appear.

AI Team Self-Improvement

  • When introducing workflow changes, re-run the frontmatter hash cross-language test and update JS hash expectations before finalizing the change.
  • Whenever new Go tests are added, review scripts/list-all-tests.sh and the canary_go matrix to ensure those tests are either executed or intentionally excluded so the coverage guard stays meaningful.

Historical Context

  • No prior investigations for this run; similar hash or coverage guard failures have not been reported in the repository’s issue tracker yet, so this appears to be a new regression tied to the current code/test set.

AI generated by CI Failure Doctor

To add this workflow in your repository, run gh aw add githubnext/agentics/workflows/ci-doctor.md@ea350161ad5dcc9624cf510f134c6a9e39a6f94d. See usage guide.

  • expires on Feb 8, 2026, 4:46 PM UTC

Metadata

Metadata

Assignees

No one assigned

    Labels

    cookieIssue Monster Loves Cookies!

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions