dsh-monkeyai-sessions 0.1.5 → 0.1.6

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.
package/README.md CHANGED
@@ -61,7 +61,7 @@ From a checkout:
61
61
  npm install
62
62
  npm run build
63
63
  npm pack
64
- dsh plugin --profile web add ./dsh-monkeyai-sessions-0.1.5.tgz
64
+ dsh plugin --profile web add ./dsh-monkeyai-sessions-0.1.6.tgz
65
65
  ```
66
66
 
67
67
  Verified against a real DSH `0.2.2-rc.1` web profile and a live MonkeyAI runtime: authorization, full history loading, prompt delivery, model switching, and turn cancellation all work end to end.
package/README.zh.md CHANGED
@@ -28,7 +28,7 @@ https://artenx.github.io/dsh-monkeyai-sessions/index.json
28
28
  npm install
29
29
  npm run build
30
30
  npm pack
31
- dsh plugin --profile web add ./dsh-monkeyai-sessions-0.1.5.tgz
31
+ dsh plugin --profile web add ./dsh-monkeyai-sessions-0.1.6.tgz
32
32
  ```
33
33
 
34
34
  已在真实的 DSH `0.2.2-rc.1` web profile 与在线 MonkeyAI runtime 上端到端验证:授权、完整历史加载、指令下发、模型切换、回合取消均正常工作。
package/client.js CHANGED
@@ -1068,8 +1068,9 @@ window.__ModuleLoader__.load({
1068
1068
  setVisibleCount(RECENT_LIMIT);
1069
1069
  setHistoryLoading(true);
1070
1070
  setStatus("\u6B63\u5728\u8FDE\u63A5\u8FDC\u7A0B\u4F1A\u8BDD");
1071
+ let stream;
1071
1072
  try {
1072
- const stream = api.followSession({ accountId, machineId, sessionId: session.id, cwd: session.cwd });
1073
+ stream = api.followSession({ accountId, machineId, sessionId: session.id, cwd: session.cwd });
1073
1074
  streamRef.current = stream;
1074
1075
  setStatus("\u8FDC\u7A0B\u4F1A\u8BDD\u5DF2\u8FDE\u63A5");
1075
1076
  for await (const frame of stream) {
@@ -1139,18 +1140,18 @@ window.__ModuleLoader__.load({
1139
1140
  }
1140
1141
  if (frame.type === "error") setError(frame.message || frame.code || "\u8FDC\u7A0B\u4F1A\u8BDD\u9519\u8BEF");
1141
1142
  }
1143
+ if (streamRef.current !== stream) return;
1142
1144
  setStatus("\u8FDC\u7A0B\u4F1A\u8BDD\u5DF2\u65AD\u5F00");
1143
1145
  setHistoryLoading(false);
1144
1146
  setTurnActive(false);
1145
1147
  setStopping(false);
1146
- setSessionStatus("");
1147
1148
  } catch (reason) {
1149
+ if (stream && streamRef.current !== stream) return;
1148
1150
  setStatus("\u8FDC\u7A0B\u4F1A\u8BDD\u4E0D\u53EF\u7528");
1149
1151
  setError(errorText(reason));
1150
1152
  setHistoryLoading(false);
1151
1153
  setTurnActive(false);
1152
1154
  setStopping(false);
1153
- setSessionStatus("");
1154
1155
  }
1155
1156
  }
1156
1157
  function sendPrompt() {
@@ -1063,8 +1063,9 @@ function RemoteSessionPage({ api }) {
1063
1063
  setVisibleCount(RECENT_LIMIT);
1064
1064
  setHistoryLoading(true);
1065
1065
  setStatus("\u6B63\u5728\u8FDE\u63A5\u8FDC\u7A0B\u4F1A\u8BDD");
1066
+ let stream;
1066
1067
  try {
1067
- const stream = api.followSession({ accountId, machineId, sessionId: session.id, cwd: session.cwd });
1068
+ stream = api.followSession({ accountId, machineId, sessionId: session.id, cwd: session.cwd });
1068
1069
  streamRef.current = stream;
1069
1070
  setStatus("\u8FDC\u7A0B\u4F1A\u8BDD\u5DF2\u8FDE\u63A5");
1070
1071
  for await (const frame of stream) {
@@ -1134,18 +1135,18 @@ function RemoteSessionPage({ api }) {
1134
1135
  }
1135
1136
  if (frame.type === "error") setError(frame.message || frame.code || "\u8FDC\u7A0B\u4F1A\u8BDD\u9519\u8BEF");
1136
1137
  }
1138
+ if (streamRef.current !== stream) return;
1137
1139
  setStatus("\u8FDC\u7A0B\u4F1A\u8BDD\u5DF2\u65AD\u5F00");
1138
1140
  setHistoryLoading(false);
1139
1141
  setTurnActive(false);
1140
1142
  setStopping(false);
1141
- setSessionStatus("");
1142
1143
  } catch (reason) {
1144
+ if (stream && streamRef.current !== stream) return;
1143
1145
  setStatus("\u8FDC\u7A0B\u4F1A\u8BDD\u4E0D\u53EF\u7528");
1144
1146
  setError(errorText(reason));
1145
1147
  setHistoryLoading(false);
1146
1148
  setTurnActive(false);
1147
1149
  setStopping(false);
1148
- setSessionStatus("");
1149
1150
  }
1150
1151
  }
1151
1152
  function sendPrompt() {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dsh-monkeyai-sessions",
3
- "version": "0.1.5",
3
+ "version": "0.1.6",
4
4
  "description": "在 DeepSeek Harness 中读取和继续 MonkeyAI 会话:查看完整对话历史、下发新指令,无缝接续之前在 MonkeyAI 客户端上的工作",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -548,8 +548,9 @@ function RemoteSessionPage({ api }) {
548
548
  setVisibleCount(RECENT_LIMIT)
549
549
  setHistoryLoading(true)
550
550
  setStatus('正在连接远程会话')
551
+ let stream
551
552
  try {
552
- const stream = api.followSession({ accountId, machineId, sessionId: session.id, cwd: session.cwd })
553
+ stream = api.followSession({ accountId, machineId, sessionId: session.id, cwd: session.cwd })
553
554
  streamRef.current = stream
554
555
  setStatus('远程会话已连接')
555
556
  for await (const frame of stream) {
@@ -619,18 +620,18 @@ function RemoteSessionPage({ api }) {
619
620
  }
620
621
  if (frame.type === 'error') setError(frame.message || frame.code || '远程会话错误')
621
622
  }
623
+ if (streamRef.current !== stream) return
622
624
  setStatus('远程会话已断开')
623
625
  setHistoryLoading(false)
624
626
  setTurnActive(false)
625
627
  setStopping(false)
626
- setSessionStatus('')
627
628
  } catch (reason) {
629
+ if (stream && streamRef.current !== stream) return
628
630
  setStatus('远程会话不可用')
629
631
  setError(errorText(reason))
630
632
  setHistoryLoading(false)
631
633
  setTurnActive(false)
632
634
  setStopping(false)
633
- setSessionStatus('')
634
635
  }
635
636
  }
636
637