feat: add integrated terminal backend

- add a PTY manager with platform shell resolution and streamed data/exit events
- expose terminal lifecycle and terminal height IPC through preload and app service
- persist terminal panel height in workspace settings and document the backend contract
- add backend tests and validate native packaging with bun run package

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
David Kaya
2026-03-28 23:15:16 +01:00
co-authored by Copilot
parent 651a7d27fc
commit 251316596c
14 changed files with 953 additions and 2 deletions
+7
View File
@@ -21,6 +21,7 @@ const TIMESTAMP = '2026-03-23T00:00:00.000Z';
describe('tooling settings helpers', () => {
test('normalizes persisted MCP and LSP definitions into trimmed stable settings', () => {
const workspaceSettings = normalizeWorkspaceSettings({
terminalHeight: 240.4,
tooling: {
mcpServers: [
{
@@ -64,6 +65,7 @@ describe('tooling settings helpers', () => {
expect(workspaceSettings).toEqual({
theme: 'dark',
terminalHeight: 240,
tooling: {
mcpServers: [
{
@@ -109,6 +111,11 @@ describe('tooling settings helpers', () => {
});
});
test('drops invalid persisted terminal height values', () => {
expect(normalizeWorkspaceSettings({ terminalHeight: 119 }).terminalHeight).toBeUndefined();
expect(normalizeWorkspaceSettings({ terminalHeight: Number.NaN }).terminalHeight).toBeUndefined();
});
test('validates required MCP transport settings', () => {
const localServer: McpServerDefinition = {
id: 'mcp-local',