Skip to content

Run automated workspace setup in a dedicated Setup tab - #29819

Merged
AmethystLiang merged 6 commits into
mainfrom
remove-automated-setup-splits
Oct 16, 2026
Merged

AmethystLiang merged 6 commits into
mainfrom
remove-automated-setup-splits

Conversation

@AmethystLiang

@AmethystLiang AmethystLiang commented Oct 16, 2026 •

Copy link
Copy Markdown
Contributor

ELI5

New workspace setup always gets its own Setup tab, leaving the requested chat or terminal separate.

What Changed

  • Reuse the existing Setup-tab paths in renderer and host creation; remove automatic setup splits, their pending state and geometry waits, and the location setting.
  • Drop the retired setting through the existing load/update/save filter. Older hosts keep authority over layouts they return; existing splits are restored without moving or replaying setup.
  • Preserve command/environment/shell construction, setup-to-agent sequencing, default tabs, background selection, manual splits and issue-command automation. Retarget generic split/restore fixtures and retain PR 1's composed Claude/Codex creation coverage.

Why

A split setup needed an extra primary shell and mount coordination, including beside native chat. The existing tab path makes setup independent of that anchor; changing only the default would leave saved split preferences active. This does not include the separate publication/reattachment fixes or claim to establish the original frozen-terminal cause.

Linked Issue

Follow-up to #29810; rebased onto its merged commit 7f9b51cf5cc1.

Visual Proof

Automated Setup before and after

setup-before.png setup-after.png
setup-before.png setup-after.png

Real macOS hidden Electron host + paired client, with the old vertical-split preference: before one tab/two panes, after separate Terminal 1 and Setup tabs. Both verified setup output, background selection and manual splitting. A separate post-rebase hidden probe rendered actual native-chat creation (no prompt submitted) and a terminal-agent fixture beside Setup; all native windows stayed hidden/unfocused. Images live in an attachment ref, outside this diff.

Testing

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

Agent-driven validation: Final post-rebase 34 Node suites, 1,816 passing tests (two retained conditional expected failures, two skips); post-rebase runtime/composed-route checks, 1,443 passing tests (one skip); node/web typechecks; changed-code-quality gate; rebuilt e2e-mode hidden Playwright/CDP proofs before/after and again after rebase. Independent Astra review found no unresolved P0/P1, including the PR 1 overlap. After CI identified two test helpers as production routing readers, conventional fixture-only renames passed 23 affected suites (187 tests and two retained expected failures), both routing/layout ratchets, repeated node/web types and the changed-code gate; no guard allowances changed. The runtime English catalog was regenerated with the existing command after removing settings callsites; localization catalog/extraction/coverage and remaining static preflight guards passed. Twenty obsolete English values remain under the catalog generator’s conservative contract, with no restored UI/search entries. A unit-shard failure in the listener-savings model was reproduced and corrected for the removed stable action; all four focused Bun tests pass, preserving the live 15-listener limit and scaling controls.

Executed on macOS. Windows/WSL runner construction is covered by unit tests; live Linux/Windows/WSL/SSH was not run. Extra e2e-project typecheck remains at the same 261 baseline diagnostics by file/error code, with none added; required node/web checks pass. The default Bun wrapper hit a node:sqlite suite-loader issue, so the complete selected suites were validated with pnpm test:node.

Review

Committed design and independent Astra report: docs/automated-setup-tab-design.md and docs/automated-setup-tab-astra-review.md. Independent Astra high design rounds and final diff review; no unresolved P0/P1. Automatic side-by-side setup placement is intentionally removed; older execution hosts may still return split layouts until upgraded.

Agent skill upstream boundary

  • Not applicable: no upstream skill-installer source or related material copied.

Notes

The full required PR workflow passed after one authorized same-commit retry of an unchanged palette timing benchmark, with its 180 ms limit preserved. The separate Headless Node server Windows ARM persistence job hit EBUSY removing temporary test profiles; its blank-serve/direct-daemon requests bypass setup placement, and the cleanup paths are unchanged. At merge, one authorized retry was still running; the final completion snapshot is IN_PROGRESS in run38961057857, separate from the successful full PR gate. No Windows ARM persistence pass is claimed unless that run succeeds; any remaining cleanup investigation belongs separate follow-up.

Execution-host authority and existing saved layouts remain in place. No new wire field, retry machinery, ownership store or layout migration.

Checklist

  • This PR is small and focused in behavior; the removal spans existing threaded setup state and its fixtures
  • Explained ELI5, user-visible before/after, mechanism, and alternatives
  • Before/after screenshots attached
  • Self-reviewed correctness, security, and performance
  • Cross-platform and SSH/remote compatibility considered
  • Full PR workflow and aggregate gate passed on cf1dc36a9290d20104904ce31675676ba5fd3fd2: run 38961058079, attempt 2, verify / PR checks passed job 117194232531

@coderabbitai

coderabbitai Bot commented Oct 16, 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: 123f6cda-7630-46e2-8732-f39ead8e241b
📥 Commits

Reviewing files that changed from the base of the PR and between 35f132b and cf1dc36.

📒 Files selected for processing: 2
  • docs/automated-setup-tab-astra-review.md
  • src/renderer/src/components/terminal-pane/terminal-pane-store-subscription-budget.test.tsx
🚧 Files skipped from review as they are similar to previous changes: 1
  • docs/automated-setup-tab-astra-review.md

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

📝 Walkthrough

Automated setup now opens in a dedicated Setup tab instead of splitting beside a startup terminal. The setup-placement setting and its settings UI are removed, and saved values are stripped during persistence. Renderer setup-split state, queue actions, and geometry readiness handling are removed. Manual splits and issue-command splits remain. Runtime, activation, persistence, and E2E tests now cover the updated paths.

Priority: ➖ Normal

Merge Risk: ⚪ Minimal · up to cf1dc

The PR’s stated move to dedicated Setup tabs has no concrete user-facing regression established in the supplied evidence, so no actionable merge blocker is identified.

Pre-merge checks: Passed 4 · Failed 1

Failed Failed checks: 1 warning

Check name Status Explanation Resolution
Docstring Coverage Warning Docstring coverage is 20.59% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 34 functions across 51 files. (1 skipped:… Write docstrings for the functions missing them to satisfy the coverage threshold.
Passed 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 primary change: automated workspace setup now runs in a dedicated Setup tab.
Description check Passed The description is complete and aligned with the template. It explains the user-visible change, implementation, rationale, linked issue, visual proof, testing, review status, limitations, and checklis…
Full details: Description check

Explanation

The description is complete and aligned with the template. It explains the user-visible change, implementation, rationale, linked issue, visual proof, testing, review status, limitations, and checklist results. It also documents untested platforms and known validation limitations.

Full details: Docstring Coverage

Explanation

Docstring coverage is 20.59% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 34 functions across 51 files. (1 skipped: 1 unsupported.)

Resolution

Write docstrings for the functions missing them to satisfy the coverage threshold.

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

@AmethystLiang
AmethystLiang merged commit 005f06b into main Oct 16, 2026
89 of 92 checks passed
brennanb2025 added a commit that referenced this pull request Oct 16, 2026
Main now always runs Setup in its own tab (#29819) and lets background
agent creates leave the first surface to the caller (#29810). Keep both:
the creation owner still suppresses the starter shell, and background
attribution-only creates follow main's narrower rule. With no split Setup
mode left, owned navigation queues Setup directly and the "Setup could
not run" fallback is gone.
smwbev added a commit to smwbev/orca that referenced this pull request Oct 17, 2026
250 commits landed on main between 5db05e8 and 6fcc183, and the fr catalog and en-runtime-required.json conflicted. All six catalogs are taken from main and the prune is recomputed in one pass: 1,504 keys. 24 keys joined the set and none left: twenty labels and search keywords of the Setup Script Location terminal setting that stablyai#29819 removed, three Space page labels dropped by stablyai#29857, and the tab close-button tooltip removed by stablyai#29851. en.json goes from 16,241 entries to 14,737; en-runtime-required.json keeps 568 of them.
frbarbre added a commit to frbarbre/orca that referenced this pull request Oct 18, 2026
…tup split

Upstream dropped the watcher type re-exports from parcel-watcher-process.ts
(stablyai#30369) and the setupScriptLaunchMode setting (stablyai#29819: setup always gets its
own tab), so the language-server watcher imports the owning modules and the
fork's background-terminal launcher no longer splits setup into a pane.
brennanb2025 added a commit that referenced this pull request Oct 21, 2026
…2-frame wait (#30442)

* fix(terminal): start an agent's terminal at its first real size instead of after a 12-frame wait

The startup grid settle waited for the grid to change and then hold for 2 frames;
a grid that was right from the start always paid the 12-frame maximum (~90 ms at
120 Hz, ~200 ms at 60 Hz, seconds when frames are throttled, since it also cleared
the 250 ms fallback timer). Its only case, the setup split, was retired in #29819.
Command panes now connect like plain panes: on the first frame with a real
measurement, or the 250 ms fallback timer.

* fix(terminal): bound startup by completed fit and deadline

* test(terminal): brace startup contract control flow

* fix(terminal): release pending startup when window hides
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