Skip to content

Conversation

@MatthewBemis
Copy link
Member

@MatthewBemis MatthewBemis commented Jan 7, 2026

Jira Ticket: https://broadworkbench.atlassian.net/browse/TSPS-728

Summary of changes:

Adds a new timeline component to the Job Details page.

NOTE: This is a PR into the Job Details page feature branch.

What

Failed pipeline:
Screenshot 2026-01-12 at 8 30 49 AM

Successful run:
Screenshot 2026-01-12 at 8 30 57 AM

In progress run:
Screenshot 2026-01-12 at 8 35 20 AM

Full page view:
screencapture-localhost-3000-2026-01-12-08_29_22

Why

Testing strategy

@MatthewBemis MatthewBemis force-pushed the mb-tsps-728-status-timeline-v2 branch from 832342a to 69481a7 Compare January 8, 2026 13:31
@MatthewBemis MatthewBemis marked this pull request as ready for review January 8, 2026 18:41
@MatthewBemis MatthewBemis requested a review from a team as a code owner January 8, 2026 18:41
@MatthewBemis MatthewBemis requested review from jsotobroad and salonishah11 and removed request for a team January 8, 2026 18:41
Copy link

@jsotobroad jsotobroad left a comment

Choose a reason for hiding this comment

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

im not sure we have the data available to make the nice timeline you have here :(

// If an error message indicates 'QC failure', we know QC checks failed.
// If quota has been charged, we know the pipeline has progressed past QC checks
export const getQcEvent = (pipelineRunResult: PipelineRunResponse): PipelineTimelineEvent | undefined => {
const qcFailed = pipelineRunResult.errorReport?.message?.includes('failed QC');

Choose a reason for hiding this comment

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

is this case insensitive? I see this from our qc validation step

    if (!passesQc) {
      // extract error messages
      String qcMessages = (String) Objects.requireNonNull(inputQcOutputs.get("qcMessages"));
      return new StepResult(
          StepStatus.STEP_RESULT_FAILURE_FATAL,
          new PipelineCheckFailedException(
              "User input failed QC: "
                  + qcMessages
                  + " To troubleshoot, please see documentation at https://broadscientificservices.zendesk.com."));
    }

if its not, i wonder which string you are keying off of

Copy link
Member Author

Choose a reason for hiding this comment

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

as written it is case sensitive and is using that string you shared

Choose a reason for hiding this comment

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

oh im omega blind lol

if (pipelineRunning && !quotaCharged) {
return { label, status: 'PENDING', moreInfo: 'Quality checks pending' };
}
if (quotaCharged || pipelineRunResult.jobReport.completed) {

Choose a reason for hiding this comment

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

so we actually charge quota before we run the QC checks so unfortunately I dont think we can make as clean of a separation between "qc is running" and "the pipeline is running"

Copy link
Member Author

Choose a reason for hiding this comment

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

oh shoot.

Copy link
Member Author

Choose a reason for hiding this comment

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

I guess we can just swap the order of these 2 events in the timeline and then just leave the QC checks as pending until completion. It's not quite as useful but still gives a quick visual for a user to see "cool, my workflow went through some sort of QC checks", and if it fails, then that'll just be an additional indicator that it failed due to bad data.

The downside is it could make users think their workflow is stuck on the QC check step, but I think we can solve that with the right language choice

Copy link
Member Author

Choose a reason for hiding this comment

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

After discussing in post, i've removed the qc event entirely. users can see the qc error on the same page anyway. once we have more granular run statuses we can add it back.

@sonarqubecloud
Copy link

Copy link

@jsotobroad jsotobroad left a comment

Choose a reason for hiding this comment

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

sorry our service couldnt get the original timeline working =/

@MatthewBemis MatthewBemis merged commit a91485c into mb-tsps-635-details-page-latest Jan 12, 2026
9 checks passed
@MatthewBemis MatthewBemis deleted the mb-tsps-728-status-timeline-v2 branch January 12, 2026 20:44
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.

5 participants