Skip to content

fix(host-service): treat a check run that failed to start as a failure - #8963

Merged
Kitenite merged 1 commit into
ParadevAI:mainfrom
akshatcoder-hash:fix/startup-failure-check-status
Oct 30, 2026
Merged

Kitenite merged 1 commit into
ParadevAI:mainfrom
akshatcoder-hash:fix/startup-failure-check-status

Conversation

@akshatcoder-hash

@akshatcoder-hash akshatcoder-hash commented Oct 27, 2026 •

Copy link
Copy Markdown
Contributor

Fixes #8962

Problem

mapCheckRunStatus in pull-request-mappers.ts has no STARTUP_FAILURE case. A check run that GitHub reports as COMPLETED with that conclusion falls to the default branch and comes out as pending, so computeChecksStatus keeps the pull request pending. The workflow never started, so GitHub shows that check run as a failure, and the mobile client already maps this conclusion to failed.

Changes

  • Map STARTUP_FAILURE to failure in mapCheckRunStatus, next to TIMED_OUT and ACTION_REQUIRED.
  • Add two tests: the check status from parseCheckContexts, and the aggregate from parseCheckContexts plus computeChecksStatus.
  • Leave mapStatusContextState and STALE untouched.

Tests

  • pull-request-mappers.test.ts before the fix: 12 pass, 2 fail, both new tests. After the fix: 14 pass, 0 fail.
  • cd packages/host-service && bun test --pass-with-no-tests --parallel with bun 1.4.3: 2683 pass, 8 todo, 3 fail. The three failures are the terminal router integration tests that need a real pty daemon, and the same three fail on main.
  • A parallel run also times out at the 5 s limit on one or two unrelated tests now and then. Those tests pass in other runs and on main, so the extra timeout is run ordering, not this change. A run just now had only the three pty daemon failures.
  • biome check and biome format on the changed files report no issues. bun run typecheck is red on main because of unrelated @superset/trpc errors, and this change adds no new errors.

Checklist

  • PR title follows conventional commits (type(scope): subject)
  • bun run lint and bun run typecheck pass (CI fails on lint warnings too). Lint passes on the changed files. Typecheck fails on main in @superset/trpc and is unrelated to this change.
  • "Allow edits from maintainers" is checked on fork PRs
  • I have signed the CLA (the bot asks on your first PR)

mapCheckRunStatus had no STARTUP_FAILURE case, so a COMPLETED check run
whose workflow never started fell through to default and reported pending.
computeChecksStatus then kept the pull request pending forever.

Map it to failure next to TIMED_OUT and ACTION_REQUIRED, and cover both
the per-check status and the aggregate in tests.
@github-actions

github-actions Bot commented Oct 27, 2026 •

Copy link
Copy Markdown
Contributor

All contributors have signed the CLA ✍️ ✅
Posted by the CLA Assistant Lite bot.

@coderabbitai

coderabbitai Bot commented Oct 27, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

No actionable comments were generated in the recent review.

Recent review info
Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 5aed3deb-7bbc-42fc-9e7b-d2a92a841f01
Commits

Reviewing files that changed from the base of the PR and between 3c59928 and 91bc4d1.

Files selected for processing: 2
  • packages/host-service/src/runtime/pull-requests/utils/pull-request-mappers/pull-request-mappers.test.ts
  • packages/host-service/src/runtime/pull-requests/utils/pull-request-mappers/pull-request-mappers.ts

Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 9 remain after this review.

Walkthrough

The check-run mapper now treats GitHub’s STARTUP_FAILURE conclusion as failure. Tests cover the parsed check status and aggregate pull request checks status.

Changes: Check-run failure mapping

Layer / File(s) Summary
Map startup failures and verify aggregate status
packages/host-service/src/runtime/pull-requests/utils/pull-request-mappers/pull-request-mappers.ts, packages/host-service/src/runtime/pull-requests/utils/pull-request-mappers/pull-request-mappers.test.ts
STARTUP_FAILURE maps to failure. Tests verify the parsed check status and aggregate status.

Priority: Normal

Estimated code review effort: 2 (Simple) | ~8 minutes

Change: Bug fix · Severity of issue fixed: Medium

Suggested reviewers: kitenite

Merge Risk: Minimal · up to 91bc4

No actionable merge-blocking risk is evident in this change.

Pre-merge checks: Passed 4 · Failed 1

Failed Failed checks: 1 warning

Check name Status Explanation Resolution
Docstring Coverage Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Documentation-only edits and deletions within survi… Write docstrings for the functions missing them to satisfy the coverage threshold.
Passed Passed checks: 4 passed
Check name Status Explanation
Title check Passed The title "fix(host-service): treat a check run that failed to start as a failure" follows conventional commit format and states the primary change: a check run with STARTUP_FAILURE is now reported as…
Linked Issues check Passed Issue #8962 has one coding requirement: a completed check run with conclusion STARTUP_FAILURE must map to status failure, and the aggregate checks status must be failure. The reviewed head adds `case …
Out of Scope Changes check Passed The whole-PR diff against the merge base contains two files. In pull-request-mappers.ts, the change is one added case "STARTUP_FAILURE": line that returns "failure", which directly implements #8962.…
Description check Passed The description explains the problem, the code changes, test coverage, known unrelated failures, and checklist status. It uses Problem and Changes headings instead of the template's What & why heading…
Full details: Title check

Explanation

The title "fix(host-service): treat a check run that failed to start as a failure" follows conventional commit format and states the primary change: a check run with STARTUP_FAILURE is now reported as failure. The diff maps STARTUP_FAILURE to failure in mapCheckRunStatus and adds tests for it, which matches the title.

Full details: Linked Issues check

Explanation

Issue #8962 has one coding requirement: a completed check run with conclusion STARTUP_FAILURE must map to status failure, and the aggregate checks status must be failure. The reviewed head adds case "STARTUP_FAILURE": next to TIMED_OUT and ACTION_REQUIRED in mapCheckRunStatus (pull-request-mappers.ts), which returns "failure". Before this change, the value fell through to default and returned "pending". parseCheckContexts passes the check run's status and conclusion to mapCheckRunStatus, so the per-check status is now failure. computeChecksStatus returns "failure" when any check has status failure, so the aggregate is also failure. The PR adds two tests in pull-request-mappers.test.ts. One asserts parseCheckContexts returns { name: "build", status: "failure", url: null } for a STARTUP_FAILURE run. The other asserts that computeChecksStatus over that result returns "failure". These tests match the issue's expected results. The issue's reproduction steps (opening the PR in the review tab) are manual and not coding requirements. I read the code and test diff only. I did not execute the tests, so test results rely on the author's report.

Full details: Out of Scope Changes check

Explanation

The whole-PR diff against the merge base contains two files. In pull-request-mappers.ts, the change is one added case "STARTUP_FAILURE": line that returns "failure", which directly implements #8962. In pull-request-mappers.test.ts, the change adds a type import for GitHubCheckContextNode, adds a parseCheckContexts import, adds a checkRun fixture helper, and adds a describe("parseCheckContexts") block with two tests. All of these support the new tests for #8962. No other code changed. mapStatusContextState and the STALE handling are unchanged, as the PR description states and the diff confirms. No unrelated changes were found.

Full details: Description check

Explanation

The description explains the problem, the code changes, test coverage, known unrelated failures, and checklist status. It uses Problem and Changes headings instead of the template's What & why heading, but it provides the required information. The How I tested it content is complete.

Full details: Docstring Coverage

Explanation

Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Documentation-only edits and deletions within surviving functions are included; unchanged diff context and fully deleted functions are excluded. Analyzed 2 functions across 2 files.

Resolution

Write docstrings for the functions missing them to satisfy the coverage threshold.

Finishing Touches: 💡 1
🛠️ Fix failing CI checks: 💡
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@greptile-apps

greptile-apps Bot commented Oct 27, 2026 •

Copy link
Copy Markdown
Contributor

RetriggerView in GreptileConfidence Score: 5/5

[Medium impact] This change appears safe to merge.

Summary

The host now treats a completed GitHub check with STARTUP_FAILURE as failed instead of pending.

  • Pull-request checks count failed workflow starts as failures.

Reviews (1) · Last reviewed commit: "fix(host-service): treat a check run tha..." · Reviewed by Greptile

@akshatcoder-hash

Copy link
Copy Markdown
Contributor Author

I have read the CLA Document and I hereby sign the CLA

@Kitenite Kitenite left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks! Verified the new tests fail without the fix and pass with it.

@Kitenite
Kitenite merged commit 9a87d57 into ParadevAI:main Oct 30, 2026
19 of 23 checks passed
Kitenite added a commit that referenced this pull request Oct 30, 2026
…#9161)

Host-service and the desktop pull request view each had their own copy of
the GitHub check run to status mapping and of the overall checks rollup.
The copies drifted: the desktop handled STARTUP_FAILURE, host-service did
not (#8962, fixed in #8963). Move both functions to
@superset/shared/pull-request-checks so a new GitHub conclusion is added
in one place.

The v2 workspace computeChecksRollup and the mobile effectiveCheckStatus
stay as they are: they count checks and treat skipped and neutral runs
differently, so sharing them would change what the UI shows.
Kitenite added a commit that referenced this pull request Nov 8, 2026
* chore: seed CLA signature file

* @tanxarx has signed the CLA in #8881

* @ozeitis has signed the CLA in #8888

* @shubhankiit has signed the CLA in #8894

* @chrisfentiman has signed the CLA in #8910

* @RohithReddy20 has signed the CLA in #8907

* @larcane97 has signed the CLA in #8922

* @moizghumann has signed the CLA in #8935

* @andyst-dev has signed the CLA in #7930

* @svenpeeters has signed the CLA in #8943

* @kenil-kanani has signed the CLA in #8940

* @akshatcoder-hash has signed the CLA in #8963

* @NilotpalK has signed the CLA in #8995

* @serhii-kucherenko has signed the CLA in #9000

* @tonydzi has signed the CLA in #9002

* @adaam2 has signed the CLA in #9038

* @tsavo-at-pieces has signed the CLA in #9059

* @ganeshmshetty has signed the CLA in #9130

* @aaronrosenthal has signed the CLA in #9135

* @alexnault has signed the CLA in #9138

* @kunalgoesbyken has signed the CLA in #9235

* @Joaco-gavernet has signed the CLA in #9236

* @theblondealex has signed the CLA in #8240

* @talarczykco has signed the CLA in #7274

* @throw99 has signed the CLA in #7906

* @lacherogwu has signed the CLA in #9310

* @KGKallasmaa has signed the CLA in #9316

* @Niltonsf has signed the CLA in #9331

* @Anmol1578 has signed the CLA in #9351

* @RyoKusnadi has signed the CLA in #9317

* @thedotmack has signed the CLA in #9414

* @abudker has signed the CLA in #9439

* @sanchitmonga22 has signed the CLA in #9443

* @Bruno-rose has signed the CLA in #9446

* @Ashad001 has signed the CLA in #9487

* @vivek-pothina has signed the CLA in #8359

* @colingreig has signed the CLA in #9489

* @anmol0b has signed the CLA in #9492

* @resteqs has signed the CLA in #9506

* @pgilmore has signed the CLA in #7878

* fix(desktop): name the DMG from the display name

The DMG file and its volume title now use DESKTOP_DISPLAY_NAME, so a
Paradev build ships Paradev-<version>-<arch>.dmg. Unset, names stay
Superset. The release keeps the Superset-<arch>.dmg alias beside the new
one, since the README, docs and download button link to it. The .app
bundle and the -mac.zip update files keep the Superset name.

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Claude <noreply@anthropic.com>

This branch had an error being deployed

1 failed deployment
preview — 91bc4d13 Deployed Oct 30, 2026 by akshatcoder-hash via Create Database (Neon) #12957
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Desktop: a check run that failed to start shows the checks summary as pending

2 participants