zerogterm 0.9.4-alpha.1 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- <script type="module" crossorigin src="./assets/index-CbW026Ci.js"></script>
1
+ <script type="module" crossorigin src="./assets/index-BeAly2uZ.js"></script>
2
2
  <link rel="stylesheet" crossorigin href="./assets/index-B-yoOhye.css">
3
3
  <!-- connect-src covers any http(s) host because the speech server endpoint is
4
4
  operator-configurable and may be on the LAN or hosted elsewhere; see
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zerogterm",
3
- "version": "0.9.4-alpha.1",
3
+ "version": "1.0.0",
4
4
  "description": "A Linux-first persistent Electron terminal workspace",
5
5
  "license": "MIT",
6
6
  "author": "Stephen Phillips",
@@ -23,9 +23,11 @@
23
23
  "screen"
24
24
  ],
25
25
  "files": [
26
- "dist",
26
+ "dist/main",
27
+ "dist/renderer",
27
28
  "LICENSE",
28
- "README.md"
29
+ "README.md",
30
+ "scripts/patch-node-pty.mjs"
29
31
  ],
30
32
  "publishConfig": {
31
33
  "access": "public"
@@ -34,20 +36,22 @@
34
36
  "main": "dist/main/main/main.js",
35
37
  "scripts": {
36
38
  "dev": "concurrently -k \"tsc -p tsconfig.main.json --watch\" \"vite --host 127.0.0.1\"",
37
- "build": "node scripts/build-main.mjs clean && tsc -p tsconfig.main.json && node scripts/build-main.mjs preload && vite build",
39
+ "build": "node scripts/patch-node-pty.mjs && node scripts/build-main.mjs clean && tsc -p tsconfig.main.json && node scripts/build-main.mjs preload && vite build",
38
40
  "test": "vitest run --pool=threads",
39
41
  "typecheck": "tsc -p tsconfig.main.json --noEmit && tsc -p tsconfig.renderer.json --noEmit",
40
42
  "start": "electron .",
41
43
  "package:win": "npm run build && electron-builder --win nsis portable --x64 --publish never",
42
- "package:linux": "npm run build && electron-builder --linux AppImage deb --x64 --publish never",
43
- "prepublishOnly": "npm run build"
44
+ "package:linux": "npm run build && electron-builder --linux AppImage deb --x64 --publish never --config.productName=ZeroGTerminal",
45
+ "prepublishOnly": "npm run build",
46
+ "postinstall": "node scripts/patch-node-pty.mjs"
44
47
  },
45
48
  "build": {
46
49
  "appId": "com.happymonkeyai.zerogterm",
47
50
  "productName": "ZeroG Terminal",
48
51
  "asar": true,
49
52
  "files": [
50
- "dist/**/*",
53
+ "dist/main/**/*",
54
+ "dist/renderer/**/*",
51
55
  "package.json"
52
56
  ],
53
57
  "win": {
@@ -83,7 +87,12 @@
83
87
  ],
84
88
  "category": "Development",
85
89
  "maintainer": "ZeroG Terminal <SPhillips1337@users.noreply.github.com>",
86
- "artifactName": "ZeroGTerminal-${version}-${arch}.${ext}"
90
+ "artifactName": "ZeroGTerminal-${version}-${arch}.${ext}",
91
+ "desktop": {
92
+ "entry": {
93
+ "Name": "ZeroG Terminal"
94
+ }
95
+ }
87
96
  },
88
97
  "nsis": {
89
98
  "artifactName": "ZeroGTerminal-${version}-Setup.${ext}",
@@ -93,6 +102,21 @@
93
102
  },
94
103
  "portable": {
95
104
  "artifactName": "ZeroGTerminal-${version}-Portable.${ext}"
105
+ },
106
+ "deb": {
107
+ "depends": [
108
+ "libgtk-3-0",
109
+ "libnotify4",
110
+ "libnss3",
111
+ "libxss1",
112
+ "libxtst6",
113
+ "xdg-utils",
114
+ "libatspi2.0-0",
115
+ "libuuid1",
116
+ "libsecret-1-0",
117
+ "libasound2",
118
+ "libgbm1"
119
+ ]
96
120
  }
97
121
  },
98
122
  "dependencies": {
@@ -101,7 +125,7 @@
101
125
  "@xterm/addon-fit": "^0.10.0",
102
126
  "@xterm/addon-webgl": "0.18.0",
103
127
  "@xterm/xterm": "^5.3.0",
104
- "node-pty": "^1.1.0",
128
+ "node-pty": "1.1.0",
105
129
  "react": "^19.1.1",
106
130
  "react-dom": "^19.1.1",
107
131
  "zod": "^4.6.2"
@@ -121,6 +145,9 @@
121
145
  },
122
146
  "overrides": {
123
147
  "adm-zip": "^0.6.0",
124
- "sharp": "^0.35.3"
148
+ "sharp": "^0.35.3",
149
+ "@electron/get@3.1.0": {
150
+ "global-agent": "4.1.3"
151
+ }
125
152
  }
126
153
  }
@@ -0,0 +1,55 @@
1
+ import { readFile, writeFile } from 'node:fs/promises';
2
+ import { pathToFileURL } from 'node:url';
3
+ import { createRequire } from 'node:module';
4
+ import { resolve, join, dirname } from 'node:path';
5
+
6
+ // node-pty 1.1.0 closes ConPTY before its process-list helper can attach.
7
+ // Keep teardown behind enumeration; do not switch to the experimental DLL backend.
8
+ const marker = '// ZeroG: enumerate before closing the console (v3).';
9
+ export function patchWindowsPtyAgent(source) {
10
+ if (source.includes(marker)) return source;
11
+ const start = ' this._getConsoleProcessList().then(function (consoleProcessList) {';
12
+ const end = ' this._conoutSocketWorker.dispose();';
13
+ const previous = source.indexOf(' // ZeroG: enumerate before closing the console');
14
+ const from = previous >= 0 ? previous : source.indexOf(start);
15
+ const to = previous >= 0 ? source.indexOf('\n }\n else {', from) : source.indexOf(end, from) + end.length;
16
+ if (from < 0 || to < end.length || !source.slice(from, to).includes('._ptyNative.kill(')) {
17
+ throw new Error('node-pty teardown patch no longer matches; review before upgrading.');
18
+ }
19
+ return source.slice(0, from) + ` ${marker}
20
+ if (this._zerogKillPending) { return; }
21
+ this._zerogKillPending = true;
22
+ // A graceful client exit may precede the delayed public onExit.
23
+ // Its console is already gone; do not fork an AttachConsole helper.
24
+ if (this._exitCode !== undefined) {
25
+ this._ptyNative.kill(this._pty, this._useConptyDll);
26
+ this._conoutSocketWorker.dispose();
27
+ return;
28
+ }
29
+ this._getConsoleProcessList().then(function (consoleProcessList) {
30
+ try {
31
+ _this._ptyNative.kill(_this._pty, _this._useConptyDll);
32
+ } finally {
33
+ _this._conoutSocketWorker.dispose();
34
+ consoleProcessList.forEach(function (pid) {
35
+ try { process.kill(pid); } catch (e) { /* already exited */ }
36
+ });
37
+ }
38
+ });` + source.slice(to);
39
+ }
40
+
41
+ export async function patchNodePty(root) {
42
+ // npm may hoist dependencies beside the installed app rather than under it.
43
+ const manifest = root ? join(root, 'node_modules', 'node-pty', 'package.json') : createRequire(import.meta.url).resolve('node-pty/package.json');
44
+ const directory = dirname(manifest);
45
+ const pkg = JSON.parse(await readFile(join(directory, 'package.json'), 'utf8'));
46
+ if (pkg.version !== '1.1.0') throw new Error(`Review the ConPTY teardown patch for node-pty ${pkg.version}.`);
47
+ const file = join(directory, 'lib', 'windowsPtyAgent.js');
48
+ const source = await readFile(file, 'utf8');
49
+ const patched = patchWindowsPtyAgent(source);
50
+ if (patched !== source) await writeFile(file, patched);
51
+ }
52
+
53
+ if (process.argv[1] && pathToFileURL(resolve(process.argv[1])).href === import.meta.url) {
54
+ await patchNodePty();
55
+ }
@@ -1 +0,0 @@
1
- {"schemaVersion":"0.1.0","project_name":"zerogterm","slug":"zerogterm","tagline":"A Linux-first persistent Electron terminal workspace","description":"A Linux-first persistent Electron terminal workspace","repo_url":"https://github.com/HappyMonkeyAI/ZeroGTerm","website_url":"https://github.com/HappyMonkeyAI/ZeroGTerm#readme","author_name":"Stephen Phillips","author_email":"stephen.z.phillips@wifispark.com","license":"MIT","categories":["ai-tools"],"tags":["agent","ai","api","electron","llm","python","rag","screen","ssh","terminal","workflow","xterm"],"screenshots":[],"generated_summary":"A Linux-first persistent Electron terminal workspace","submission_cta_copy":"List your project with one command.","validation_status":"valid","generated_at":"2026-09-02T14:31:05.787Z","tool_version":"0.7.0-alpha3","source":{"workspace_path":"C:\\Users\\steph\\Documents\\development\\zerogterm","readme_path":"C:\\Users\\steph\\Documents\\development\\zerogterm\\README.md","package_json_path":"C:\\Users\\steph\\Documents\\development\\zerogterm\\package.json","git_remote":"https://github.com/HappyMonkeyAI/ZeroGTerm"},"submission_auth_required":true,"auth_mode":"api_key"}