Skip to content

feat(nodes): add anomaly detection node for pipeline output monitoring#555

Closed
charliegillet wants to merge 1 commit into
rocketride-org:developfrom
charliegillet:feature/anomaly-detection-node
Closed

feat(nodes): add anomaly detection node for pipeline output monitoring#555
charliegillet wants to merge 1 commit into
rocketride-org:developfrom
charliegillet:feature/anomaly-detection-node

Conversation

@charliegillet
Copy link
Copy Markdown
Contributor

@charliegillet charliegillet commented Mar 31, 2026

Summary

  • Add TASK_STATE.STOPPING handling to the pipeline status control button in the VS Code extension
  • Display a disabled "Stopping..." button styled in orange when a pipeline is shutting down
  • Prevent user interaction during the stopping transition

Type

Bug Fix (UX)

Why this bug happens in this codebase

The getControlButton() function in PageStatus.tsx handles TASK_STATE.RUNNING and TASK_STATE.INITIALIZING but did not handle TASK_STATE.STOPPING. When a pipeline entered the stopping state, the button fell through to the default case and showed a disabled "Run" button — confusing because it gave no indication that a stop was in progress.

The codebase already defines TASK_STATE.STOPPING in its state enum and the StatusHeader component already renders an orange "Stopping" indicator dot for this state, but the control button was not aligned.

What changed

File Change
apps/vscode/src/providers/views/PageStatus/PageStatus.tsx Added TASK_STATE.STOPPING case in getControlButton() returning { label: 'Stopping...', disabled: true, className: 'action-btn stopping-btn disabled' }
apps/vscode/src/providers/views/PageStatus/styles.css Added .action-btn.stopping-btn style: orange background (--vscode-charts-orange), white text, cursor: not-allowed

Validation

  • Change is purely additive — existing RUNNING/INITIALIZING/default cases are untouched
  • Uses the same --vscode-charts-orange CSS variable already used for stopping indicators elsewhere in the codebase
  • Button is disabled so no click handler fires during the transition

How this could be extended

  • Add a timeout: if the pipeline stays in STOPPING for more than N seconds, show an error toast or re-enable a "Force Stop" button
  • Add a progress indicator showing which pipeline step is still draining

Closes: N/A — this is a duplicate of the change in PR #549; only one should be merged

#Hack-with-bay-2

…screen

Handle TASK_STATE.STOPPING in the control button to show "Stopping..."
with a disabled state and distinct orange styling, preventing duplicate
clicks and giving immediate visual feedback during pipeline shutdown.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Mar 31, 2026

📝 Walkthrough

Walkthrough

These changes add explicit handling for a "stopping" state transition in the PageStatus component. The TypeScript logic now includes a dedicated branch for TASK_STATE.STOPPING that renders a disabled "Stopping..." button with type-safe action handling, while corresponding CSS styling provides visual feedback through orange coloring and a disabled cursor.

Changes

Cohort / File(s) Summary
Stopping State UI Handling
apps/vscode/src/providers/views/PageStatus/PageStatus.tsx, apps/vscode/src/providers/views/PageStatus/styles.css
Added explicit TASK_STATE.STOPPING branch to getControlButton() returning disabled "Stopping..." label with type-safe stop action, paired with new .action-btn.stopping-btn CSS class styling featuring orange foreground, white text, and not-allowed cursor for disabled semantics.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~8 minutes

Poem

🐰 A stopping state now has its say,
No longer lumped with running's way,
With orange hue and cursor denied,
The UI signals with proper pride!
✨🛑

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Title check ⚠️ Warning The PR title describes adding an anomaly detection node for pipeline monitoring, but the actual changeset only modifies VSCode UI components (PageStatus.tsx and styles.css) related to stop button behavior—completely unrelated to anomaly detection or pipeline nodes. Correct the PR title to accurately reflect the actual changes, such as 'feat(ui): add stopping state styling for control buttons in VSCode PageStatus' or similar.
✅ Passed checks (2 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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 and usage tips.

@charliegillet
Copy link
Copy Markdown
Contributor Author

Closing — PR shipped incorrect code (PageStatus change instead of the claimed feature). The actual feature code landed in a different PR.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

module:vscode VS Code extension

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant