Repository navigation
[Feature] Support host session tabs independent of workspaces [4014] - #4024
Chris-playground wants to merge 6 commits into
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 4fe5da7fb1
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
|
@binaricat Could you take a look at this PR when convenient? WDYT. |
Summary
Implement #4014 with flat session groups inside each host tab. Add, select, rename (double-click or F2), and close child sessions while keeping the top-level tab identity and position stable, including after the original session is closed.
Host session tabs need a flat membership/selection model; workspaces own split trees and pane focus. Sharing the workspace lifecycle caused the first
+action to replace the top-level tab ID and mixed session-group closing with split-pane collapse. This implementation separates those responsibilities while reusing connection creation, SSH transport reuse, and terminal rendering.Type of Change
Related Issue
Closes #4014
Changes Made
focusLayout: 'tabs'restore records into flat groups without losing member names, selection, or saved tab order..artifactsand generated output directories from local static-analysis inputs.Screenshots / Demo
Browser interaction checks cover opening two hosts, adding child sessions without moving the host tab, closing the original member, continuing to add/switch sessions, and inline renaming. Rename checks use a real focusable terminal textarea and wait beyond the delayed focus retry, verifying that typed names never reach the terminal input.
Windows x64 test build:
0.0.0-issue4014.7.Testing
npm run lintpasses (7 existing warnings).npm run buildpasses.node-pty,ssh2, serial bindings,sqlite3) load; ConPTY spawn/output/exit smoke passes.mainbaseline (2796d1113): 774 baseline versus 773 current, with no introduced diagnostics. The repository-wide type check still has historical errors.npm testsuite was not run.Physical serial-device loopback and remote SSH ZMODEM transfer were not performed. Serial configuration propagation, native Windows named-pipe I/O, and local ZMODEM protocol/backpressure tests were exercised.
Compatibility / Rollback
Restore changes are additive and keep the existing storage adapter/schema version. Experimental workspace-backed session tabs are migrated on read. Reverting the PR restores pre-feature behavior; older builds can ignore the additive group fields and reopen members as individual tabs.
Checklist