zen-gitsync 2.15.10 → 2.15.12

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.
Files changed (77) hide show
  1. package/package.json +4 -3
  2. package/src/gitCommit.js +475 -475
  3. package/src/ui/public/assets/AppVersionBadge-BaXEI9Aq.js +2 -0
  4. package/src/ui/public/assets/BranchSelector-DJhEF0y9.js +1 -0
  5. package/src/ui/public/assets/CommitForm-BfpcK-bz.js +6 -0
  6. package/src/ui/public/assets/ConsoleView-D838O0O6.js +17 -0
  7. package/src/ui/public/assets/CustomCommandManager-BcCK46df.js +1 -0
  8. package/src/ui/public/assets/EditorView-DnnqYNGF.js +0 -0
  9. package/src/ui/public/assets/{FlowExecutionViewer-Dvv2-pUp.js → FlowExecutionViewer-CSlMmcDS.js} +1 -1
  10. package/src/ui/public/assets/FlowOrchestrationWorkspace-UgHpZ3FR.js +21 -0
  11. package/src/ui/public/assets/LogList-uUgskwwp.js +7 -0
  12. package/src/ui/public/assets/MindmapView-CCmFMiHR.js +1 -0
  13. package/src/ui/public/assets/{MindmapView-Bt2VdyoX.css → MindmapView-KFcJx-i-.css} +1 -1
  14. package/src/ui/public/assets/MonitorView-BxoqeX70.js +1 -0
  15. package/src/ui/public/assets/ProjectStartupButton-C3AwivIB.js +1 -0
  16. package/src/ui/public/assets/{RemoteRepoCard-BbKpAzPj.js → RemoteRepoCard-BbxeVpje.js} +1 -1
  17. package/src/ui/public/assets/SourceMapView-DKv-Y6t_.js +3 -0
  18. package/src/ui/public/assets/{SvgIcon-BoP8CWdO.js → SvgIcon-sMM8XFgm.js} +1 -1
  19. package/src/ui/public/assets/TemplateManager-Dzj8rXVw.js +1 -0
  20. package/src/ui/public/assets/UserInputNode-BU7Trzq-.js +1 -0
  21. package/src/ui/public/assets/WorkbenchView-DMoulJCG.css +1 -0
  22. package/src/ui/public/assets/WorkbenchView-DTgRoOkv.js +12 -0
  23. package/src/ui/public/assets/{_plugin-vue_export-helper-D9aIxbUC.js → _plugin-vue_export-helper-8ryIYVvs.js} +1 -1
  24. package/src/ui/public/assets/{configStore-CiAM1jWr.js → configStore-D77uNk8X.js} +1 -1
  25. package/src/ui/public/assets/element-plus-D8SQiesr.js +17 -0
  26. package/src/ui/public/assets/element-plus-DB_sOyH_.css +1 -0
  27. package/src/ui/public/assets/flow-mindmap-BLa-kSA7.js +90 -0
  28. package/src/ui/public/assets/flow-mindmap-C_aN-n3H.css +1 -0
  29. package/src/ui/public/assets/index-CpFreGqX.js +23 -0
  30. package/src/ui/public/assets/index-CytKCnOp.css +1 -0
  31. package/src/ui/public/assets/{socket-io-z4n873W1.js → socket-io-B1foIbJS.js} +1 -1
  32. package/src/ui/public/assets/{vendor-SOsdHF7M.js → vendor-B9orL8iU.js} +37 -37
  33. package/src/ui/public/assets/vendor-Dm_yd-By.css +1 -0
  34. package/src/ui/public/assets/{vue-flow-D5lw7RxP.js → vue-flow-BY7LODit.js} +1 -1
  35. package/src/ui/public/favicon.svg +75 -75
  36. package/src/ui/public/index.html +28 -28
  37. package/src/ui/public/logo.svg +74 -74
  38. package/src/ui/server/middleware/requestLogger.js +53 -53
  39. package/src/ui/server/routes/branchStatus.js +105 -105
  40. package/src/ui/server/routes/fileOpen.js +309 -309
  41. package/src/ui/server/routes/fs.js +791 -791
  42. package/src/ui/server/routes/git/diff.js +426 -426
  43. package/src/ui/server/routes/git/diffUtils.js +149 -149
  44. package/src/ui/server/routes/git/stash.js +550 -550
  45. package/src/ui/server/routes/git/tags.js +176 -176
  46. package/src/ui/server/routes/git.js +181 -181
  47. package/src/ui/server/routes/gitOps.js +1211 -1211
  48. package/src/ui/server/routes/process.js +86 -86
  49. package/src/ui/server/routes/status.js +67 -67
  50. package/src/ui/server/utils/createSavePortToFile.js +48 -48
  51. package/src/ui/server/utils/instanceRegistry.js +282 -282
  52. package/src/ui/server/utils/startServerOnAvailablePort.js +116 -116
  53. package/src/utils/index.js +1168 -1168
  54. package/src/ui/public/assets/AppVersionBadge-ZginY_T5.js +0 -2
  55. package/src/ui/public/assets/BranchSelector-BD8y_UMH.js +0 -1
  56. package/src/ui/public/assets/CommitForm-B1DJxyib.js +0 -6
  57. package/src/ui/public/assets/ConsoleView-EJa9vjMa.js +0 -17
  58. package/src/ui/public/assets/CustomCommandManager-BRxKf9jl.js +0 -1
  59. package/src/ui/public/assets/EditorView-DR2O8qKP.js +0 -0
  60. package/src/ui/public/assets/FlowOrchestrationWorkspace-DzSgBTmq.js +0 -21
  61. package/src/ui/public/assets/LogList-BEnd3kcT.js +0 -7
  62. package/src/ui/public/assets/MindmapView-Ds2Qd2ZL.js +0 -1
  63. package/src/ui/public/assets/MonitorView-B9t-8uJB.js +0 -1
  64. package/src/ui/public/assets/ProjectStartupButton-CHh6z5Pn.js +0 -1
  65. package/src/ui/public/assets/SourceMapView-Deai1zNG.js +0 -3
  66. package/src/ui/public/assets/TemplateManager-Eu4YhYCk.js +0 -1
  67. package/src/ui/public/assets/UserInputNode-C0GJHtef.js +0 -1
  68. package/src/ui/public/assets/WorkbenchView-C2xSxJfg.css +0 -1
  69. package/src/ui/public/assets/WorkbenchView-DUS0hiHf.js +0 -12
  70. package/src/ui/public/assets/element-plus-DB-NeCl9.js +0 -24
  71. package/src/ui/public/assets/element-plus-R1nMzM9j.css +0 -1
  72. package/src/ui/public/assets/flow-mindmap-CI2OSS19.css +0 -1
  73. package/src/ui/public/assets/flow-mindmap-DrcjupFb.js +0 -90
  74. package/src/ui/public/assets/index-Dleiy2zi.js +0 -23
  75. package/src/ui/public/assets/index-DltbTqIJ.css +0 -1
  76. package/src/ui/public/assets/vendor-CT8e9rs3.css +0 -1
  77. package/src/ui/server/.claude/codediff.txt +0 -8
@@ -1,116 +1,116 @@
1
- // Copyright 2026 xz333221
2
- //
3
- // Licensed under the Apache License, Version 2.0 (the "License");
4
- // you may not use this file except in compliance with the License.
5
- // You may obtain a copy of the License at
6
- //
7
- // http://www.apache.org/licenses/LICENSE-2.0
8
- //
9
- // Unless required by applicable law or agreed to in writing, software
10
- // distributed under the License is distributed on an "AS IS" BASIS,
11
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- // See the License for the specific language governing permissions and
13
- // limitations under the License.
14
- //
15
- import logger from './logger.js'
16
-
17
- export async function startServerOnAvailablePort({
18
- httpServer,
19
- startPort,
20
- chalk,
21
- open,
22
- noOpen,
23
- isGitRepo,
24
- savePortToFile,
25
- fsSync,
26
- maxTries = 100,
27
- callbackExecutedRef
28
- }) {
29
- let currentPort = startPort;
30
- const maxPort = startPort + maxTries;
31
- const getCallbackExecuted = () => {
32
- if (callbackExecutedRef && typeof callbackExecutedRef === 'object' && 'value' in callbackExecutedRef) {
33
- return Boolean(callbackExecutedRef.value);
34
- }
35
- return false;
36
- };
37
-
38
- const setCallbackExecuted = (value) => {
39
- if (callbackExecutedRef && typeof callbackExecutedRef === 'object' && 'value' in callbackExecutedRef) {
40
- callbackExecutedRef.value = Boolean(value);
41
- }
42
- };
43
-
44
- while (currentPort < maxPort) {
45
- try {
46
- if (currentPort > startPort) {
47
- await new Promise(resolve => setTimeout(resolve, 800));
48
- logger.info(`尝试端口 ${currentPort}...`);
49
- }
50
-
51
- await new Promise((resolve, reject) => {
52
- const errorHandler = (err) => {
53
- httpServer.removeListener('error', errorHandler);
54
- reject(err);
55
- };
56
-
57
- httpServer.once('error', errorHandler);
58
-
59
- httpServer.listen(currentPort, () => {
60
- if (getCallbackExecuted()) return;
61
- setCallbackExecuted(true);
62
-
63
- httpServer.removeListener('error', errorHandler);
64
-
65
- console.log(chalk.green('======================================'));
66
- console.log(chalk.green(` Zen GitSync 服务器已启动`));
67
- console.log(chalk.green(` 访问地址: http://localhost:${currentPort}`));
68
- console.log(chalk.green(` 启动时间: ${new Date().toLocaleString()}`));
69
-
70
- if (isGitRepo) {
71
- console.log(chalk.green(` 当前目录是Git仓库`));
72
- } else {
73
- console.log(chalk.yellow(` 当前目录不是Git仓库,文件监控未启动`));
74
- }
75
-
76
- console.log(chalk.green('======================================'));
77
-
78
- savePortToFile(currentPort);
79
-
80
- // 自拉起重启通知:父进程 spawn 时设置了 ZEN_RESTART_NOTIFY_PATH
81
- // 子进程成功 bind 端口后,把端口写到该文件作为"已就绪"信号
82
- // (instanceRegistry 在 EPERM 环境下不可用,这是回退通道)
83
- const notifyPath = process.env.ZEN_RESTART_NOTIFY_PATH;
84
- if (notifyPath && fsSync) {
85
- try {
86
- fsSync.writeFileSync(notifyPath, String(currentPort), 'utf8');
87
- } catch (_) {
88
- // 通知写失败不影响主流程
89
- }
90
- }
91
-
92
- if (!noOpen) {
93
- setTimeout(() => {
94
- open(`http://localhost:${currentPort}`);
95
- }, 0);
96
- }
97
-
98
- resolve();
99
- });
100
- });
101
-
102
- return currentPort;
103
- } catch (err) {
104
- if (err.code === 'EADDRINUSE') {
105
- logger.info(`端口 ${currentPort} 被占用,尝试下一个端口...`);
106
- currentPort++;
107
- } else {
108
- logger.error('启动服务器失败:', err);
109
- process.exit(1);
110
- }
111
- }
112
- }
113
-
114
- logger.error(`无法找到可用端口 (尝试范围: ${startPort}-${maxPort - 1})`);
115
- process.exit(1);
116
- }
1
+ // Copyright 2026 xz333221
2
+ //
3
+ // Licensed under the Apache License, Version 2.0 (the "License");
4
+ // you may not use this file except in compliance with the License.
5
+ // You may obtain a copy of the License at
6
+ //
7
+ // http://www.apache.org/licenses/LICENSE-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+ //
15
+ import logger from './logger.js'
16
+
17
+ export async function startServerOnAvailablePort({
18
+ httpServer,
19
+ startPort,
20
+ chalk,
21
+ open,
22
+ noOpen,
23
+ isGitRepo,
24
+ savePortToFile,
25
+ fsSync,
26
+ maxTries = 100,
27
+ callbackExecutedRef
28
+ }) {
29
+ let currentPort = startPort;
30
+ const maxPort = startPort + maxTries;
31
+ const getCallbackExecuted = () => {
32
+ if (callbackExecutedRef && typeof callbackExecutedRef === 'object' && 'value' in callbackExecutedRef) {
33
+ return Boolean(callbackExecutedRef.value);
34
+ }
35
+ return false;
36
+ };
37
+
38
+ const setCallbackExecuted = (value) => {
39
+ if (callbackExecutedRef && typeof callbackExecutedRef === 'object' && 'value' in callbackExecutedRef) {
40
+ callbackExecutedRef.value = Boolean(value);
41
+ }
42
+ };
43
+
44
+ while (currentPort < maxPort) {
45
+ try {
46
+ if (currentPort > startPort) {
47
+ await new Promise(resolve => setTimeout(resolve, 800));
48
+ logger.info(`尝试端口 ${currentPort}...`);
49
+ }
50
+
51
+ await new Promise((resolve, reject) => {
52
+ const errorHandler = (err) => {
53
+ httpServer.removeListener('error', errorHandler);
54
+ reject(err);
55
+ };
56
+
57
+ httpServer.once('error', errorHandler);
58
+
59
+ httpServer.listen(currentPort, () => {
60
+ if (getCallbackExecuted()) return;
61
+ setCallbackExecuted(true);
62
+
63
+ httpServer.removeListener('error', errorHandler);
64
+
65
+ console.log(chalk.green('======================================'));
66
+ console.log(chalk.green(` Zen GitSync 服务器已启动`));
67
+ console.log(chalk.green(` 访问地址: http://localhost:${currentPort}`));
68
+ console.log(chalk.green(` 启动时间: ${new Date().toLocaleString()}`));
69
+
70
+ if (isGitRepo) {
71
+ console.log(chalk.green(` 当前目录是Git仓库`));
72
+ } else {
73
+ console.log(chalk.yellow(` 当前目录不是Git仓库,文件监控未启动`));
74
+ }
75
+
76
+ console.log(chalk.green('======================================'));
77
+
78
+ savePortToFile(currentPort);
79
+
80
+ // 自拉起重启通知:父进程 spawn 时设置了 ZEN_RESTART_NOTIFY_PATH
81
+ // 子进程成功 bind 端口后,把端口写到该文件作为"已就绪"信号
82
+ // (instanceRegistry 在 EPERM 环境下不可用,这是回退通道)
83
+ const notifyPath = process.env.ZEN_RESTART_NOTIFY_PATH;
84
+ if (notifyPath && fsSync) {
85
+ try {
86
+ fsSync.writeFileSync(notifyPath, String(currentPort), 'utf8');
87
+ } catch (_) {
88
+ // 通知写失败不影响主流程
89
+ }
90
+ }
91
+
92
+ if (!noOpen) {
93
+ setTimeout(() => {
94
+ open(`http://localhost:${currentPort}`);
95
+ }, 0);
96
+ }
97
+
98
+ resolve();
99
+ });
100
+ });
101
+
102
+ return currentPort;
103
+ } catch (err) {
104
+ if (err.code === 'EADDRINUSE') {
105
+ logger.info(`端口 ${currentPort} 被占用,尝试下一个端口...`);
106
+ currentPort++;
107
+ } else {
108
+ logger.error('启动服务器失败:', err);
109
+ process.exit(1);
110
+ }
111
+ }
112
+ }
113
+
114
+ logger.error(`无法找到可用端口 (尝试范围: ${startPort}-${maxPort - 1})`);
115
+ process.exit(1);
116
+ }