@wu529778790/open-im 1.2.3-beta.6 → 1.2.3

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/dist/cli.js CHANGED
@@ -199,7 +199,10 @@ async function cmdRestart() {
199
199
  removePid();
200
200
  }
201
201
  console.log(' → 正在启动服务...');
202
+ // 设置环境变量,告诉 main() 函数这是 restart,需要清除旧的 sessionId
203
+ process.env.OPEN_IM_RESTART = '1';
202
204
  await cmdStart(true); // 传递 true 跳过平台选择提示
205
+ delete process.env.OPEN_IM_RESTART;
203
206
  }
204
207
  async function cmdInit() {
205
208
  console.log("\n━━━ open-im 配置向导 ━━━\n");
package/dist/index.js CHANGED
@@ -103,6 +103,11 @@ export async function main() {
103
103
  log.info(`默认权限模式: ${defaultModeLabel} (${config.defaultPermissionMode})`);
104
104
  log.info(`启用平台: ${config.enabledPlatforms.join(", ")}`);
105
105
  const sessionManager = new SessionManager(config.claudeWorkDir, config.allowedBaseDirs);
106
+ // 如果是 restart,清除所有旧的 sessionId(SDK 内部状态已失效)
107
+ if (process.env.OPEN_IM_RESTART === '1') {
108
+ sessionManager.clearAllSessionIds();
109
+ delete process.env.OPEN_IM_RESTART;
110
+ }
106
111
  let telegramHandle = null;
107
112
  let feishuHandle = null;
108
113
  let wechatHandle = null;
@@ -19,6 +19,10 @@ export declare class SessionManager {
19
19
  setModel(userId: string, model: string | undefined, threadId?: string): void;
20
20
  private resolveAndValidate;
21
21
  private load;
22
+ /**
23
+ * 清除所有会话的 sessionId(用于 restart 后 SDK 内部状态失效的情况)
24
+ */
25
+ clearAllSessionIds(): void;
22
26
  private save;
23
27
  private flushSync;
24
28
  destroy(): void;
@@ -213,6 +213,21 @@ export class SessionManager {
213
213
  /* ignore */
214
214
  }
215
215
  }
216
+ /**
217
+ * 清除所有会话的 sessionId(用于 restart 后 SDK 内部状态失效的情况)
218
+ */
219
+ clearAllSessionIds() {
220
+ for (const session of this.sessions.values()) {
221
+ session.sessionId = undefined;
222
+ if (session.threads) {
223
+ for (const t of Object.values(session.threads)) {
224
+ t.sessionId = undefined;
225
+ }
226
+ }
227
+ }
228
+ this.flushSync();
229
+ log.info('All sessionIds cleared for restart');
230
+ }
216
231
  save() {
217
232
  if (this.saveTimer)
218
233
  return;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wu529778790/open-im",
3
- "version": "1.2.3-beta.6",
3
+ "version": "1.2.3",
4
4
  "description": "Multi-platform IM bridge for AI CLI tools (Claude, Codex, Cursor)",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",