@yeaft/webchat-agent 0.0.86 → 0.0.88
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/crew.js +18 -0
- package/package.json +1 -1
package/crew.js
CHANGED
|
@@ -80,11 +80,29 @@ async function upsertCrewIndex(session) {
|
|
|
80
80
|
|
|
81
81
|
export async function removeFromCrewIndex(sessionId) {
|
|
82
82
|
const index = await loadCrewIndex();
|
|
83
|
+
const entry = index.find(e => e.sessionId === sessionId);
|
|
83
84
|
const filtered = index.filter(e => e.sessionId !== sessionId);
|
|
84
85
|
if (filtered.length !== index.length) {
|
|
85
86
|
await saveCrewIndex(filtered);
|
|
86
87
|
console.log(`[Crew] Removed session ${sessionId} from index`);
|
|
87
88
|
}
|
|
89
|
+
// 从内存中也移除(防止 sendConversationList 重新加入)
|
|
90
|
+
if (crewSessions.has(sessionId)) {
|
|
91
|
+
crewSessions.delete(sessionId);
|
|
92
|
+
console.log(`[Crew] Removed session ${sessionId} from active sessions`);
|
|
93
|
+
}
|
|
94
|
+
// 删除磁盘上的 session 数据文件
|
|
95
|
+
const sharedDir = entry?.sharedDir;
|
|
96
|
+
if (sharedDir) {
|
|
97
|
+
try {
|
|
98
|
+
for (const file of ['session.json', 'messages.json']) {
|
|
99
|
+
await fs.unlink(join(sharedDir, file)).catch(() => {});
|
|
100
|
+
}
|
|
101
|
+
console.log(`[Crew] Cleaned session files in ${sharedDir}`);
|
|
102
|
+
} catch (e) {
|
|
103
|
+
console.warn(`[Crew] Failed to clean session files:`, e.message);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
88
106
|
}
|
|
89
107
|
|
|
90
108
|
// =====================================================================
|