feat(terminal): add embedded PTY-backed terminal dock with per-tab sessions
Adds a built-in terminal dock that runs a real pseudo-terminal per repository tab. - Backend: new src-tauri/src/terminal.rs implements TerminalState and Tauri commands terminal_open, terminal_write, terminal_resize and terminal_close using the portable-pty crate. Terminal output is emitted via "terminal:data" and exits via "terminal:exit". Includes unit tests for UTF-8 chunk handling. Cargo.toml updated to depend on portable-pty and main.rs registers the state/commands. - Frontend: App.svelte/UI and app.css updated to show a resizable terminal dock, toggleable with Ctrl+` and persisted open/height state. TerminalPanel.svelte is lazy-loaded per repo tab (frontend provides session ids like repo:<path>). package.json adds @xterm/xterm and @xterm/addon-fit for the frontend terminal surface. - Docs: CHANGELOG.md notes the new embedded terminal feature. Behavior: each repository tab has its own PTY-backed shell started in the repo cwd; the user's shell (SHELL/COMSPEC) is used so prompts, aliases and interactive behavior work as in a normal terminal.
This commit is contained in:
@@ -14,6 +14,10 @@ The project uses calendar-style versions in the form `YYYY.M.PATCH`.
|
||||
selection again.
|
||||
- Issues can be assigned to people, and labels are managed directly from the
|
||||
Issue Center.
|
||||
- An embedded terminal in the repository view, docked above the status bar and
|
||||
adjustable in height. It runs a real pseudo terminal with the user's own
|
||||
shell, so colors, interactive prompts, tab completion, and Ctrl+C work as
|
||||
usual. Every repository tab keeps its own session; Ctrl + ` toggles the dock.
|
||||
|
||||
### Changed
|
||||
|
||||
|
||||
Reference in New Issue
Block a user