Skip to content

Keep CLI commands usable during regional outages; bump to 0.7.6 - #91

Merged
rmorehig merged 2 commits into
mainfrom
fix/cli-discovery-timeouts
Oct 28, 2026
Merged

rmorehig merged 2 commits into
mainfrom
fix/cli-discovery-timeouts

Conversation

@rmorehig

@rmorehig rmorehig commented Oct 28, 2026 •

Copy link
Copy Markdown
Contributor

An unavailable regional cluster catalog could make commands such as rtree table list wait for the request timeout and fail even when the selected cluster was healthy. Discover catalogs concurrently with up to eight workers sharing a five-second deadline, retain healthy results, and mark unavailable regions in cluster-list JSON and text output.

Preserve authentication failures and total-outage errors, prevent unresolved clusters in partial catalogs from falling back to the gateway, and allow discovery to recover on retry. Cluster status, update, stop, resume, and delete also report an outage when their target is missing from a partial catalog; healthy targets and complete-catalog not-found errors retain their existing behavior. Keep existing catalog authority, routing headers, and API-key behavior. Bump the CLI patch version from 0.7.5 to 0.7.6.

Validation:

  • cargo fmt --all -- --check and git diff --check pass.
  • cargo test --locked: 240 passed; seven live Platform tests ignored locally.
  • Executable regression fails against the original implementation and passes with the fix. Coverage includes HTTP/transport failures, stalled headers and bodies, partial lists, authentication failures, cache recovery, multiple organizations, and bounded concurrency.
  • Thermonuclear review through P3 passed with no actionable findings; secret scan clean.

Note

Medium Risk
Changes core discovery, routing cache, and cluster resolution paths used by most CLI commands; behavior during partial outages differs from the prior all-or-nothing model.

Overview
Regional cluster discovery no longer walks deployments serially. Catalog fetches run concurrently (capped at eight workers) under a shared five-second deadline, so a stalled region does not block healthy ones and commands like table list can still route to an up cluster.

When a regional catalog fails, discovery merges successful results and adds unavailable_regions to the cluster list payload. Text cluster list prints a warning; JSON consumers get the field explicitly. Routing keeps caching partial catalogs for known clusters but refuses gateway fallback when the target is missing and outages are recorded—it clears the cache and returns a retry-oriented error instead of cluster_not_found. Auth failures (401/403) and total regional failure still fail the whole discovery pass.

Patch version 0.7.5 → 0.7.6, with unit and end-to-end CLI tests for concurrency bounds, timeouts, partial lists, and management commands during outages.

Reviewed by Cursor Bugbot for commit 33bd776. Bugbot is set up for automated code reviews on this repo. Configure here.

@cursor cursor Bot 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.

Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit ece875e. Configure here.

Comment thread src/commands/cluster.rs Resolved
@rmorehig
rmorehig merged commit 8d2f01e into main Oct 28, 2026
8 checks passed
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