Skip to content

Keep open Remote Settings in sync with saved servers - #26581

Merged
OrcaWin merged 1 commit into
mainfrom
nwparker/remote-settings-live-catalog
Oct 9, 2026
Merged

OrcaWin merged 1 commit into
mainfrom
nwparker/remote-settings-live-catalog

Conversation

@nwparker

@nwparker nwparker commented Oct 8, 2026 •

Copy link
Copy Markdown
Contributor
Files Added Deleted Net
Test 1 $\color{#1a7f37}{\Huge{\mathbf{+}}}$​79 0 $\color{#1a7f37}{\Huge{\mathbf{+}}}$​79
Prod 1 $\color{#1a7f37}{\Huge{\mathbf{+}}}$​6 $\color{#cf222e}{\Huge{\mathbf{−}}}$​2 $\color{#1a7f37}{\Huge{\mathbf{+}}}$​4

ELI5

An open Settings page kept saying there were no saved servers after Orca successfully connected a new SSH host. It now shows the connected server immediately, including its management controls.

What Changed

Remote Settings reads the existing shared saved-server catalog instead of keeping a separate copy from its first request. Additions, renames, and removals now appear while the page stays open. Initial and manual refreshes still publish through the existing store, and recipe-created VM servers remain filtered out.

Rebased onto main (Phase 3/3.5). The Docker SSH end-to-end spec and its CI-lane routing were dropped to keep this a product-only change; the unit tests cover the mechanism.

Why

SSH conversion already publishes the new server to the shared catalog, but Settings never subscribed to it. Reading that catalog removes the stale copy without adding polling or repeated host probes. The existing rows continue using the host-status store for reachability.

Linked Issue

Found while validating #26483. Independent fix against OrcaWin/phase35; no dependency on the other consolidation fixes.

Visual Proof

Before: after successful managed connection, the shared catalog contains the server but Settings still says “No saved servers.”

settings-live-catalog-before.png

After: the same flow displays the connected server and its Stop control without reopening Settings.

settings-live-catalog-after.png

Baseline failure: settings-live-catalog-runtime-red.log

Corrected run: settings-live-catalog-runtime-green.log

Testing

  • I manually tested these changes locally
  • Automated tests added/updated

Hidden macOS Electron client and a real Linux Docker SSH host using the exact installed 1.4.223-adhoc.20261008080519 server template. Baseline fails; corrected flow passes in 8.0 seconds. No Windows runtime claim.

124 tests across 10 files pass, including saved-server additions/renames/removals during an unavailable-host probe, VM filtering, existing host-status behavior, and CI routing. Full pnpm tc, pnpm lint, changed-code quality, fresh Electron E2E build, and commit hooks pass.

Review

The product change replaces one local state value with a subscription and filtered derived list. No new timers, transport calls, wire fields, or style changes.

Agent skill upstream boundary

  • Not applicable; no upstream skill-installer content copied.

Notes

The change applies to the shared catalog for local and SSH-managed servers and makes no assumptions about repository versus folder workspaces. Contact loss continues to use the existing host-status verdicts.

Checklist

  • This PR is small and focused
  • Explained before/after, mechanism, and why
  • Before/after screenshots and runtime logs attached
  • Self-reviewed for correctness, security, and performance
  • Cross-platform, SSH, folder workspace, and compatibility impact considered
  • Local tests, typecheck, lint, quality, and build pass

@OrcaWin
OrcaWin force-pushed the nwparker/remote-settings-live-catalog branch from 236fb1a to 86b0969 Compare October 9, 2026 02:16
@OrcaWin
OrcaWin changed the base branch from OrcaWin/phase35 to main October 9, 2026 02:17
@coderabbitai

coderabbitai Bot commented Oct 9, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

Important

Review skipped

Review was skipped as selected files did not have any reviewable changes.

⚙️ Run configuration
  • Configuration used: Repository UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: bee5eba9-3548-434b-a01c-07412727b644
📥 Commits

Reviewing files that changed from the base of the PR and between 86b0969 and 3c43129.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Repository UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: d29ae8e7-932d-41d9-9d97-6e0b9ccd70c7
📥 Commits

Reviewing files that changed from the base of the PR and between 37833ce and 86b0969.

📒 Files selected for processing (2)
  • src/renderer/src/components/settings/use-runtime-environment-catalog.test.tsx
  • src/renderer/src/components/settings/use-runtime-environment-catalog.ts

Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 2 remain after this review.


📝 Walkthrough

Walkthrough

useRuntimeEnvironmentCatalog now derives and memoizes user-managed environments from the app store. Tests cover hosts added after the initial list request, saved-host updates and removal when status requests fail, and exclusion of ephemeral VM environments.

Priority: ⬇️ Low

Merge Risk: ⚪ Minimal · up to 86b09

Saved-server additions and removals refresh the store-backed catalog, which reflects store updates. No actionable merge-blocking risk is evident in the reviewed changes.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 1 functions across 2 files. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Title check Passed The title clearly and concisely describes the main change: keeping open Remote Settings synchronized with saved servers.
Description check Passed The description is complete and relevant. It includes the user impact, implementation, rationale, issue context, visual proof, testing details, review notes, compatibility considerations, and checklis…
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Commit to this branch
  • Create a new PR
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

@OrcaWin
OrcaWin force-pushed the nwparker/remote-settings-live-catalog branch from 86b0969 to 3c43129 Compare October 9, 2026 04:27
@OrcaWin
OrcaWin merged commit 118de20 into main Oct 9, 2026
30 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.

2 participants