Titles are stored display text (layout templates, session snapshot, broadcast registry), so a pane used to keep the wording of the language it was opened in, and nextTerminalTitle could not even parse the number back out of another language's pattern (numbering restarted, duplicates). New pure module src/shared/terminalTitle.ts: resolution tries all four languages' patterns, rendering uses the active one; i18n gains tFor(lang) for off-language rendering. Workspace retitles auto-numbered local tabs in place on language switch, snapshot restore and template apply; SSH panels (user-typed connection names) are never touched. dockview's title-change event propagates the new title to the broadcast registry and the snapshot save with no extra wiring. New test terminal-title.mjs (16 writer/reader language pairs, non-auto title boundaries, gap filling); offline suite grows 17 -> 18.
51 lines
2.2 KiB
JSON
51 lines
2.2 KiB
JSON
{
|
|
"name": "open-terminal",
|
|
"productName": "OpenTerminal",
|
|
"version": "1.0.20",
|
|
"description": "Open-source terminal with SSH, split panes, themes and fonts",
|
|
"main": "out/main/index.js",
|
|
"author": "CodingPlan.Site",
|
|
"license": "MIT",
|
|
"private": true,
|
|
"scripts": {
|
|
"dev": "electron-vite dev",
|
|
"build": "electron-vite build",
|
|
"preview": "electron-vite preview",
|
|
"typecheck": "tsc --noEmit -p tsconfig.node.json && tsc --noEmit -p tsconfig.web.json",
|
|
"pretest": "npm run typecheck",
|
|
"test": "node tests/build-bundles.cjs && node tests/ssh-loopback.mjs && node tests/commands-store.mjs && node tests/connections-store.mjs && node tests/settings-store.mjs && node tests/local-path-grants.mjs && node tests/lock-store.mjs && node tests/lock-controller.mjs && node tests/lock-shortcuts.mjs && node tests/reserved-accelerators.mjs && node tests/.terminal-title.cjs && node tests/ipc-guard.mjs && node tests/updater-fallback.mjs && node tests/log-sanitizer.mjs && node tests/sftp-timeout.mjs && node tests/.hl-split-smoke.cjs && node tests/.hl-rules.cjs && node tests/zmodem-e2e.mjs && node tests/ssh-session-e2e.mjs && node tests/sysinfo-e2e.mjs",
|
|
"predist": "npm test && npm install --package-lock-only",
|
|
"dist": "electron-vite build && electron-builder --win msi nsis",
|
|
"dist:dir": "electron-vite build && electron-builder --win --dir"
|
|
},
|
|
"dependencies": {
|
|
"@lydell/node-pty": "^1.2.0-beta.15",
|
|
"electron-updater": "^6.8.9",
|
|
"font-list": "^2.1.0",
|
|
"ssh2": "^1.17.0",
|
|
"zmodem.js": "^0.1.10"
|
|
},
|
|
"devDependencies": {
|
|
"@types/node": "^24.0.0",
|
|
"@types/react": "^19.2.0",
|
|
"@types/react-dom": "^19.2.0",
|
|
"@vitejs/plugin-react": "^5.0.0",
|
|
"@xterm/addon-fit": "^0.11.0",
|
|
"@xterm/addon-search": "^0.16.0",
|
|
"@xterm/addon-webgl": "^0.19.0",
|
|
"@xterm/xterm": "6.1.0-beta.304",
|
|
"antd": "^6.6.2",
|
|
"dockview-react": "^8.2.0",
|
|
"electron": "^44.2.0",
|
|
"electron-builder": "^26.15.3",
|
|
"electron-vite": "^5.0.0",
|
|
"esbuild": "^0.25.12",
|
|
"react": "^19.2.8",
|
|
"react-dom": "^19.2.8",
|
|
"typescript": "~5.9.0",
|
|
"undici": "^7.29.1",
|
|
"vite": "^7.0.0",
|
|
"zustand": "^5.0.15"
|
|
}
|
|
}
|