Skip to content

feat(dashboard): surface managed pool error state on compute tab#5415

Merged
abcxff merged 2 commits into
mainfrom
stack/feat-dashboard-surface-managed-pool-error-state-on-compute-tab-zmknrmtp
Jul 15, 2026
Merged

feat(dashboard): surface managed pool error state on compute tab#5415
abcxff merged 2 commits into
mainfrom
stack/feat-dashboard-surface-managed-pool-error-state-on-compute-tab-zmknrmtp

Conversation

@abcxff

@abcxff abcxff commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

No description provided.

@abcxff

abcxff commented Jul 15, 2026

Copy link
Copy Markdown
Contributor Author

Stack for rivet-dev/rivet

Get stack: forklift get 5415
Push local edits: forklift submit
Merge when ready: forklift merge 5415

change zmknrmtp

@claude

claude Bot commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

Review: surface managed pool error state on compute tab

Small, focused change. The PoolErrorAlert extraction is reused cleanly between the "no config yet" early-return and the normal ComputeForm render, and the status === "error" / .error?.message access pattern matches existing precedent in images-table.tsx's ManagedPoolStatus, so the SDK types are almost certainly correct.

Possible issue: "Redeploy to retry" copy has no reachable action

The fallback message in PoolErrorAlert reads:

"The compute pool is in an error state. Redeploy to retry."

But DeployFooter (namespace-compute.tsx:462-485) only renders when isDirty || busy, and isPoolBusy (namespace-compute.tsx:257-267) does not include "error" in its status list. So when a pool is in the "error" status and the user hasn't touched any field, there is no visible "Deploy changes" / retry button anywhere on the tab. The alert tells the user to redeploy, but the only way to reveal the submit button is to make an incidental edit (which then dirties the form for an unrelated reason).

This may be intentional/out of scope if the expectation is "edit your config to fix the error, which naturally reveals Deploy changes," but for a transient/infra-side failure (no config change needed) there's currently no way to just retry the same config from this tab. Worth double-checking whether DeployFooter should also treat status === "error" as a reason to show a submit button (e.g. show the footer whenever status === "error" too, with a "Retry deploy" label), or otherwise soften the copy so it doesn't promise an action that isn't reachable.

Everything else looks solid

  • No duplicate rendering: the early-return alert (isError || !pool?.config) and the in-form alert are mutually exclusive branches, so a pool with status === "error" and a present config only renders one alert.
  • Alert/AlertTitle/AlertDescription and the destructive variant are correctly exported from @/components and support this usage.
  • No security concerns. The error message is rendered as JSX text (auto-escaped), not injected as HTML.
  • Consistent with CLAUDE.md conventions: comments are full sentences, no em dashes, no unnecessary abstraction.

Test coverage

No test/story added. Per the frontend CLAUDE.md guidance, PoolErrorAlert is arguably a thin wrapper over Alert (two near-identical text states), and NamespaceComputeContentInner/ComputeForm require the full data-provider/route stack, both of which are call-outs for skipping a Ladle story here, so this is likely fine as-is, just flagging for visibility.

@abcxff
abcxff changed the base branch from stack/docs-website-tighten-container-runner-intro-paragraph-nkroqkku to main July 15, 2026 22:38
@abcxff
abcxff merged commit 2007d95 into main Jul 15, 2026
8 of 11 checks passed
@abcxff
abcxff deleted the stack/feat-dashboard-surface-managed-pool-error-state-on-compute-tab-zmknrmtp branch July 15, 2026 22:38
@railway-app
railway-app Bot temporarily deployed to rivet-frontend / production July 15, 2026 22:38 Inactive
@railway-app
railway-app Bot temporarily deployed to rivet-frontend / preview July 15, 2026 22:38 Inactive
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.

1 participant