Skip to content

ci(e2e): start the managed-SSH lane for remote product changes no route names - #30210

Merged
nwparker merged 1 commit into
mainfrom
nwparker/r2-s1-remote-fallback-route
Oct 18, 2026
Merged

nwparker merged 1 commit into
mainfrom
nwparker/r2-s1-remote-fallback-route

Conversation

@nwparker

@nwparker nwparker commented Oct 18, 2026 •

Copy link
Copy Markdown
Contributor
Files Added Deleted Net
Test 1 $\color{#1a7f37}{\Huge{\mathbf{+}}}$​57 0 $\color{#1a7f37}{\Huge{\mathbf{+}}}$​57
Prod 1 $\color{#1a7f37}{\Huge{\mathbf{+}}}$​19 0 $\color{#1a7f37}{\Huge{\mathbf{+}}}$​19

ELI5

Our end-to-end test for SSH hosts running a managed Orca server (the "managed-SSH Docker lane") only starts when a PR touches a file on a hand-written list. Two recent remote bugs (#30130, #30120) changed files that weren't on the list, so the lane never ran and the bugs merged. This adds a catch-all: any product change in the remote-host code now starts the lane.

What Changed

  • Before: a change to, for example, src/main/ipc/ssh.ts, src/cli/runtime/serve-orcad-launch.ts, src/main/orcad/orcad-entry.ts, src/shared/protocol-version.ts, the sidebar sleep flow or store/repos/repo-removal.ts selected no managed-SSH spec, so the lane was skipped. Six ssh-orcad-* specs had no route at all and ran only when the spec file itself changed.

  • After: a new route, ssh.orcad-remote-fallback, matches product (non-test) files under:

    • src/main/{ssh,orcad,managed-server}/;
    • src/main/ipc/{ssh*,runtime-environment*,orcad-*};
    • src/cli/runtime/{serve*,launch-serve*};
    • src/shared/{remote-runtime*,orcad-*,protocol-version.ts,runtime-capability*};
    • project removal in store/repos, plus the sidebar sleep and host-removal files.

    It lists the six unrouted specs. The lane already runs every ssh-orcad-* spec once any of them is selected, so this route only decides whether the lane runs.

  • The lane stays advisory. It is not added to verify's needs (decision D1).

Breadth chosen, and its cost. Replayed over the last 600 commits on main, the lane would have started for:

  • 10.3% of commits today;
  • 21.0% with this route;
  • 36.7% with the broader list in the round-2 proposal, which also adds runtime/rpc/, daemon/, renderer/src/runtime and store/terminals.

The lane costs 2 runners × about 17 minutes. Those broad folders mostly hold local-only code, so I left them out to roughly halve the added runner minutes. Measure the real minutes for a week before widening (decision D2).

Why

Hand-kept routes always miss the next new file. A fallback by folder is the only mechanism that covers files nobody has listed yet. A follow-up PR adds an import-graph contract for exact routes.

Linked Issue

Round 2 SSH hardening, slice S1 (internal). Motivated by #30130 and #30120.

Visual Proof

N/A: CI routing only.

Testing

Review

Codex review (gpt-6.1-sol, high): clean.

Agent skill upstream boundary

  • Not applicable

Notes

No product, wire or platform impact. CI cost: about 10% more PRs run the advisory Docker lane.

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • N/A visual proof with reason
  • Self-reviewed
  • Cross-platform, SSH/remote impact considered
  • Static analysis and the affected tests pass locally

@coderabbitai

coderabbitai Bot commented Oct 18, 2026

Copy link
Copy Markdown
Contributor

Review in Change Stack →

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: 34d80128-5f4e-4417-af82-e128576ff9de
📥 Commits

Reviewing files that changed from the base of the PR and between 95d6018 and 8e7ad41.

📒 Files selected for processing: 2
  • config/scripts/pr-e2e-remote-fallback-route.test.mjs
  • config/scripts/pr-e2e-source-routing.mjs

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

📝 Walkthrough

The change adds the ssh.orcad-remote-fallback route to select six managed-SSH E2E specs for matching product-source paths. It adds tests for route coverage, selected remote product-source paths, and unit-test and local-only paths that must not select the managed-SSH lane.

Priority: ⬇️ Low

Merge Risk: ⚪ Minimal · up to 8e7ad

The new routing is ready to merge after normal checks; no actionable issue remains identified.

Pre-merge checks: Passed 4 · Failed 1

Failed 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 Passed checks: 4 passed
Check name Status Explanation
Title check Passed The title clearly identifies the main change: starting the managed-SSH E2E lane for remote product changes without existing routes. The wording is slightly awkward but remains specific and relevant.
Description check Passed The description is complete and aligned with the template. It explains the problem, scope, rationale, linked issues, testing, CI impact, and checklist status. It also documents the known baseline test…
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.
Full details: Description check

Explanation

The description is complete and aligned with the template. It explains the problem, scope, rationale, linked issues, testing, CI impact, and checklist status. It also documents the known baseline test failures and the affected validation results.

  • Fix all pre-merge checks with AI
✨ Finishing Touches: 💡 1
📝 Generate docstrings: 💡
  • Commit to this branch
  • Create a new PR
  • Autofix · 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.

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