Skip to content

SED-4157 display execution status over time in execution list#1329

Open
lucianbaciu wants to merge 31 commits intomasterfrom
SED-4157-display-execution-status-over-time-in-execution-list
Open

SED-4157 display execution status over time in execution list#1329
lucianbaciu wants to merge 31 commits intomasterfrom
SED-4157-display-execution-status-over-time-in-execution-list

Conversation

@lucianbaciu
Copy link
Copy Markdown
Contributor

No description provided.

…ecution-status-over-time-in-execution-list

# Conflicts:
#	projects/step-frontend/src/lib/modules/execution/components/aggregated-tree-node-history/execution-piechart/aggregated-tree-node-statuses-piechart.component.ts
…ecution-status-over-time-in-execution-list

# Conflicts:
#	projects/step-frontend/src/lib/modules/execution/execution.module.ts
Revert "Reapply "disabled linting""

This reverts commit 54a77cb.
@lucianbaciu lucianbaciu requested a review from neogucky February 11, 2026 14:39
@gemini-code-assist
Copy link
Copy Markdown

Summary of Changes

Hello @lucianbaciu, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request significantly enhances the user experience by providing a visual timeline of execution statuses directly within the execution list. It introduces a new data structure to track historical execution results and leverages new, modular UI components to render this information effectively. The changes aim to give users a clearer and more immediate understanding of how executions have progressed over time, alongside general code quality improvements.

Highlights

  • Execution History Display: Introduced a new feature to display the historical execution status over time directly within the execution list, providing a quick visual overview of past runs.
  • New Data Model for Execution Snapshots: Added a new ExecutionResultSnapshot model and integrated it into the Execution model to store a chronological record of execution results and statuses.
  • Refactored UI Components: Created new reusable Angular components (HistoryNodesComponent, HistoryCellComponent) to render the execution history, replacing older, more monolithic display logic and improving modularity.
  • Code Quality Enhancements: Implemented pre-commit hooks to automatically run code formatting and linting, ensuring consistent code style and quality across the project.
Changelog
  • .husky/pre-commit
    • Added pre-commit hooks to enforce code formatting and linting using npm run format:fix and npm run lint.
  • projects/step-core/src/lib/client/generated/models/Execution.ts
    • Imported ExecutionResultSnapshot type.
    • Added a new property historyResults of type ExecutionResultSnapshot[] to the Execution interface.
  • projects/step-core/src/lib/client/generated/models/ExecutionResultSnapshot.ts
    • Added a new interface ExecutionResultSnapshot defining id, status, and result properties for tracking execution state over time.
  • projects/step-core/src/lib/modules/artefacts-common/components/report-details-error/report-details-error.component.ts
    • Removed the import and usage of ClampFadeDirective.
  • projects/step-core/src/lib/modules/automation-package-common/components/automation-package-filter/automation-package-filter.component.html
    • Updated matBadge binding to remove optional chaining for selectedIds.length.
  • projects/step-frontend/src/lib/modules/automation-packages/components/automation-package-upload-dialog/automation-package-upload-dialog.component.html
    • Removed optional chaining for automationPackage.automationPackageResource.
    • Updated @for loop tracking from $index to group for improved performance.
  • projects/step-frontend/src/lib/modules/execution/components/aggregated-tree-node-history/aggregated-tree-node-history.component.html
    • Replaced the custom history display with the new step-history-nodes component for a more standardized visualization.
  • projects/step-frontend/src/lib/modules/execution/components/aggregated-tree-node-history/aggregated-tree-node-history.component.ts
    • Imported signal and HistoryNodeItem.
    • Removed the padArrayWithNull call when assigning previousExecutions.
    • Added a newData observable to transform historyArtefactsData$ into a format suitable for HistoryNodesComponent.
  • projects/step-frontend/src/lib/modules/execution/components/aggregated-tree-node-history/execution-piechart/aggregated-tree-node-statuses-piechart.component.html
    • Adjusted container styling to use size() input for width and height.
    • Added link class and (click) event binding to the canvas element for navigation.
  • projects/step-frontend/src/lib/modules/execution/components/aggregated-tree-node-history/execution-piechart/aggregated-tree-node-statuses-piechart.component.scss
    • Added .link style to change cursor to pointer.
    • Removed fixed width and height from .container.
  • projects/step-frontend/src/lib/modules/execution/components/aggregated-tree-node-history/execution-piechart/aggregated-tree-node-statuses-piechart.component.ts
    • Imported Router and inject.
    • Marked the component as standalone: true.
    • Increased the default size input value from 24 to 40.
    • Added a link input property and navigateToLink method to enable navigation on click.
    • Updated Chart.js options to ensure responsiveness, maintain aspect ratio, disable animation, and hide legend/tooltip.
  • projects/step-frontend/src/lib/modules/execution/components/aggregated-tree-node-history/history-nodes/history-nodes.component.html
    • Added a new HTML template for the HistoryNodesComponent to display a series of execution history nodes with optional tooltips and timestamps.
  • projects/step-frontend/src/lib/modules/execution/components/aggregated-tree-node-history/history-nodes/history-nodes.component.scss
    • Added new SCSS styles for the HistoryNodesComponent, including layout, node styling, empty states, and connection lines.
  • projects/step-frontend/src/lib/modules/execution/components/aggregated-tree-node-history/history-nodes/history-nodes.component.ts
    • Added a new HistoryNodesComponent to manage and display a sequence of execution history nodes.
    • Defined HistoryNodeItem interface for node data.
    • Implemented paddedPastExecutions computed property to handle padding of past execution nodes.
  • projects/step-frontend/src/lib/modules/execution/components/execution-history-cell/execution-history-cell.component.html
    • Added a new HTML template for HistoryCellComponent which utilizes step-history-nodes to display execution history.
  • projects/step-frontend/src/lib/modules/execution/components/execution-history-cell/execution-history-cell.component.scss
    • Added new SCSS styles for the HistoryCellComponent, defining container and item styling, including connection lines.
  • projects/step-frontend/src/lib/modules/execution/components/execution-history-cell/execution-history-cell.component.ts
    • Added a new HistoryCellComponent to process execution data and prepare it for display in the step-history-nodes component.
    • Defined currentNode and historyNodes computed properties to map execution data to HistoryNodeItem format.
  • projects/step-frontend/src/lib/modules/execution/components/execution-history-section/execution-history-section.component.html
    • Updated the main section class from execution-report-node-details to container.
  • projects/step-frontend/src/lib/modules/execution/components/execution-history-section/execution-history-section.component.scss
    • Added new SCSS styles for the .container and .container-title classes within the execution history section.
  • projects/step-frontend/src/lib/modules/execution/components/execution-list/execution-list.component.html
    • Added a new matColumnDef for 'history' to display the step-history-cell component in the execution list table.
  • projects/step-frontend/src/lib/modules/execution/components/execution-list/execution-list.component.ts
    • Commented out this.dataSource.reload and this.reloadRunningExecutionsCount$.next() calls in the refreshTable method.
  • projects/step-frontend/src/lib/modules/execution/components/schedule-overview/cross-execution-dashboard/heatmap/heatmap.component.html
    • Removed optional chaining (?.) for row.cells access.
    • Updated statuses binding for step-status-distribution-tooltip to an empty array.
    • Changed @for loop tracking from $index to row for filler rows.
  • projects/step-frontend/src/lib/modules/execution/components/status-distribution-tooltip/badge/status-distribution-badge.component.ts
    • Marked the component as standalone: true.
    • Added StepBasicsModule to component imports.
  • projects/step-frontend/src/lib/modules/execution/components/status-distribution-tooltip/status-distribution-tooltip.component.html
    • Updated @for loop tracking from statusItem.status to statusItem.label.
    • Updated status binding for step-status-distribution-badge to use statusItem.label.
  • projects/step-frontend/src/lib/modules/execution/components/status-distribution-tooltip/status-distribution-tooltip.component.ts
    • Marked the component as standalone: true.
    • Added DatePipe and StatusDistributionBadgeComponent to component imports.
    • Refactored statuses input to accept StatusDistributionItem[] instead of Record<string, number>.
    • Updated distribution computed property logic to correctly calculate percentages based on the new StatusDistributionItem structure.
  • projects/step-frontend/src/lib/modules/execution/execution.module.ts
    • Refactored declarations and imports to properly integrate new standalone components (HistoryCellComponent, AggregatedTreeNodeStatusesPiechartComponent, HistoryNodesComponent, StatusDistributionBadgeComponent, StatusDistributionTooltipComponent).
  • projects/step-frontend/src/lib/modules/timeseries/modules/_common/components/time-range-picker/time-range-picker.component.html
    • Added null checks for activeSelection() before accessing its properties.
    • Updated @for loop for time unit options to use the new @for syntax.
Activity
  • The pull request was created by lucianbaciu.
  • New pre-commit hooks were added to automate code formatting and linting.
  • Several new Angular components were introduced to display execution history visually.
  • Existing components were refactored to integrate with the new history display functionality and improve modularity.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request introduces a new feature to display execution history in the execution list, which is a great addition for traceability. The implementation involves significant refactoring, including the creation of several new, well-encapsulated standalone components. The code is generally of high quality, but I've identified a few areas for improvement, mainly concerning potential runtime errors due to unsafe type assumptions, side effects from array mutations, and some leftover code from development that should be cleaned up. Addressing these points will enhance the robustness and maintainability of the new feature.

@neogucky neogucky changed the title Sed 4157 display execution status over time in execution list SED-4157 display execution status over time in execution list Feb 12, 2026
@exense exense deleted a comment from chatgpt-codex-connector bot Feb 12, 2026
@neogucky
Copy link
Copy Markdown
Collaborator

/gemini review

Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request introduces a feature to display execution status history in the execution list. This is a great addition that improves visibility into execution trends over time. The implementation is well-structured, introducing new reusable components like HistoryNodesComponent and HistoryCellComponent, and refactoring existing ones to be more robust and modern (e.g., converting to standalone components).

My review includes a few suggestions to address a potential regression in the heatmap tooltip, improve type safety by removing unsafe non-null assertions, and some minor code cleanup to remove duplicate imports and redundant code.

@lucianbaciu
Copy link
Copy Markdown
Contributor Author

/gemini review

@lucianbaciu lucianbaciu requested a review from neogucky February 13, 2026 20:11
Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request introduces a great new feature to display execution status history directly in the execution list. The implementation is well-structured, leveraging new reusable components for displaying history nodes and pie charts, and includes a significant refactoring to support this functionality. I've identified a few areas for improvement, mainly concerning null-safety to prevent potential runtime errors, an incorrect track-by function in a loop, and a minor code duplication in the module definition. Once these points are addressed, this will be a solid addition.

ErrorRootCausesComponent,
AltExecutionTimePopoverTitleDirective,
AggregatedTreeNodeStatusesPiechartComponent,
AggregatedTreeNodeStatusesPiechartComponent,
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

medium

There is a duplicate entry for AggregatedTreeNodeStatusesPiechartComponent in the exports array. Please remove it to keep the module definition clean.

neogucky
neogucky previously approved these changes Feb 17, 2026
…ecution-status-over-time-in-execution-list

# Conflicts:
#	projects/step-frontend/src/lib/modules/execution/execution.module.ts
@lucianbaciu lucianbaciu requested a review from neogucky March 18, 2026 17:25
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.

3 participants