@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 +3 -0
- package/dist/index.js +5 -0
- package/dist/session/session-manager.d.ts +4 -0
- package/dist/session/session-manager.js +15 -0
- package/package.json +1 -1
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;
|