Skip to content

feat: add workspace terminal tabs to the file panel - #695

Merged
agegr merged 3 commits into
agegr:mainfrom
Radiummm:feat/integrated-terminal
Sep 5, 2026
Merged

feat: add workspace terminal tabs to the file panel#695
agegr merged 3 commits into
agegr:mainfrom
Radiummm:feat/integrated-terminal

Conversation

@Radiummm

@Radiummm Radiummm commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Summary

Add workspace terminals as tabs alongside files in the existing right panel, opened from the Explorer toolbar. Each tab keeps its original cwd and shell while switching files, chat sessions, or projects. Terminal tabs show their workspace name and support keyboard navigation.

Saved tab IDs reconnect to the same PTY after a page refresh. Unclaimed creations and terminals with no connected clients expire after a 120-second grace period. Explicit close and restart wait for the creation request and in-flight input before deleting the old terminal; shell exits retain output and show the exit code. Expired tabs do not silently launch replacement shells.

  • Serialize and batch input, preserve Unicode paste boundaries, and stop ambiguous failed input without replaying commands.
  • Resume SSE output from a cursor instead of duplicating history; bound server history and slow-consumer queues.
  • Repair node-pty's macOS spawn-helper executable permissions during installation and provide a portable POSIX shell fallback.
  • Keep terminal sizing within the panel on desktop and mobile, including hidden-tab transitions.

Validation

  • Clean npm ci on macOS ARM64, including native PTY startup
  • Full Node test suite, including native PTYs, lease expiry, SSE cursors, input ordering, and saved tab validation
  • node_modules/.bin/tsc --noEmit --incremental false
  • npm run lint
  • npm run test:terminal: Chromium at 1440x900 and 390x844; real shell input, file/session/workspace switching, refresh, offline reconnect, restart, exit codes, and closing during creation

Closes #507

@agegr agegr changed the title feat: add integrated terminal feat: add workspace terminal tabs to the file panel Sep 5, 2026
@agegr
agegr merged commit 9290c27 into agegr:main Sep 5, 2026
2 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.

New feature:Please add terminal

2 participants