Skip to content

Bug fixes for new Connect UX#2113

Merged
eblairmckee merged 4 commits intomasterfrom
fix/p1-rpcn-bugs
Jan 5, 2026
Merged

Bug fixes for new Connect UX#2113
eblairmckee merged 4 commits intomasterfrom
fix/p1-rpcn-bugs

Conversation

@eblairmckee
Copy link
Contributor

Fixes critical bugs discovered during bug bashing and holiday internal testing.

Start/Stop pipeline button

The start/stop button was stuck in in-between states ("starting" and "stopping", which had been solved in legacy UI with retries, which were lacking the modern react-query implementation). Now:

  • The button correctly shows state based on most recent query poll
  • Pending states can be cancelled via a dropdown
    • Not sure when we'd use this, but users can also "retry" via the dropdown menu

Refresh header

Removed the "refresh" button from the header on all of the new wizard routes (new RPCN wizard as well as API wizard). Given legacy routes just render new UI components, had to add additional uiState prop to disable refresh buttons from showing (only relevant for view/edit pipeline routes).

Pipeline meta

onChange improvements

When modifying a pipeline name, description, etc. wouldn't correctly show inline errors until after submission. Given scroll position, wasn't always apparent why you couldn't add/edit a pipeline. So changed to firing zod validation onChange. And improved error messaging.

Missing fields

Some pipeline fields were missing (like url). Made values copyable.

Deleting a pipeline

event bubbling prevented users from deleting pipelines, fixed.

value?: string;
copyable?: boolean;
}) => (
<div className="grid h-7 min-w-0 grid-cols-[minmax(0,1.5fr)_minmax(0,2fr)_30px] gap-1">
Copy link
Contributor

Choose a reason for hiding this comment

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

How would this render on bigger viewports? I think we can make more use of the screen space

Copy link
Contributor Author

Choose a reason for hiding this comment

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

holding off on that until the redesign. have a completely new UI I'm introducing this month. this is exclusively for P1 bug fixes

import { useMemo } from 'react';

export const PipelineStatusBadge = ({ state }: { state?: Pipeline_State }) => {
const statusConfig = useMemo(() => {
Copy link
Contributor

Choose a reason for hiding this comment

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

Do we need this use memo? Maybe it's overkill for this small component. How often do we expect pipeline state to change?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

pretty often, the bug I'm fixing here is that the button was not responsive to state updates. feels like an easy optimization with no downside to use useMemo here.

const state = query?.state?.data?.response?.pipeline?.state;
// Poll every 2 seconds when pipeline is in transitional state (STARTING or STOPPING)
const shouldPoll = state === Pipeline_State.STARTING || state === Pipeline_State.STOPPING;
return shouldPoll ? 2000 : false;
Copy link
Contributor

Choose a reason for hiding this comment

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

Maybe we can store it as a const

pipelinesApi.refreshPipelines(_force);
}

componentWillUnmount() {
Copy link
Contributor

Choose a reason for hiding this comment

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

Nice catch

Copy link
Contributor Author

Choose a reason for hiding this comment

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

removed and instead we determine this at the header.tsx level like everything else

@eblairmckee eblairmckee merged commit bf08330 into master Jan 5, 2026
9 checks passed
@eblairmckee eblairmckee deleted the fix/p1-rpcn-bugs branch January 5, 2026 18:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants