Skip to content

fix(console): keep the source switch panel truthful while pending - #209

Merged
dmf-cms-automerge[bot] merged 1 commit into
mainfrom
fix/861-switch-pending-target
Nov 7, 2026
Merged

dmf-cms-automerge[bot] merged 1 commit into
mainfrom
fix/861-switch-pending-target

Conversation

@znerol2

@znerol2 znerol2 commented Nov 7, 2026

Copy link
Copy Markdown
Contributor

Summary

During a live check on 0.41.0, a source switch worked, but while it was in flight the panel said "Selected source is no longer available — choose again" and showed the wrong source in the picker. A topology poll had already seen the new source as active.

  • ConfigureStage: at submit, the panel records the target and the options it showed. Until the request settles, it renders from that record. The picker is locked, the stale-target hint and the "Live source is unknown or stale" line stay hidden, and the panel stays mounted through a failed or malformed poll. When nothing is pending, the panel behaves as before.
  • ReasonConfirm: a pending confirm button shows a spinner. It reuses the throbber-spin class, so the reduced-motion rule stops it. A status region announces "In progress". A new optional extraField.disabled locks the extra field.

Tests

  • New switchSourcePending.test.tsx, 8 tests. A poll arrives while the request is pending and shows the target as active, fails, returns malformed data, or leaves no other source. Then: an error settle, a success settle, unmount and remount while pending, and the pre-submit hint.
  • On an export of main with only this test file added: 4 failed | 4 passed (8). On this branch: all pass.
  • Full unit suite: 1133 passed. Lint and build pass. Playwright e2e: 298 passed, 88 skipped by the suite's own conditions.

Review

Three rounds of adversarial review. The last one passed. Two gaps the review found already exist on main and are filed as dmfdeploy/dmfdeploy#863.

Closes dmfdeploy/dmfdeploy#861

While a switch request was in flight, a topology poll that already saw
the new source made the panel say the selected source was no longer
available and show a different source in the picker.

The panel now renders from what the operator submitted until the request
settles: the picker is locked on the submitted target, the stale-target
hint and the unknown-source line stay hidden, and the panel stays mounted
through a failed or malformed poll. Before submit and after it settles,
the checks are unchanged. Confirm buttons in ReasonConfirm also show a
progress indicator and announce the pending state.

Closes dmfdeploy/dmfdeploy#861

Signed-off-by: znerol2 <6800371+znerol2@users.noreply.github.com>
@znerol2
znerol2 requested a review from a team as a code owner November 7, 2026 12:14
@dmf-cms-automerge
dmf-cms-automerge Bot enabled auto-merge (rebase) November 7, 2026 12:20

@lkirc lkirc left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Static review of c01e546: no blocking findings. The pending-only source snapshot preserves the submitted target through topology churn and restores the existing live validation once the request settles. Required gate and all 18 checks are green.

@dmf-cms-automerge
dmf-cms-automerge Bot merged commit 346fccd into main Nov 7, 2026
18 checks passed
@dmf-cms-automerge
dmf-cms-automerge Bot deleted the fix/861-switch-pending-target branch November 7, 2026 12:33
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.

Console: a source switch in progress says the selected source is no longer available

2 participants