@lmcl/ailo-mcp-feishu 0.2.1 → 0.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/feishu-handler.js +6 -3
- package/package.json +2 -2
package/dist/feishu-handler.js
CHANGED
|
@@ -20,6 +20,8 @@ export class FeishuHandler {
|
|
|
20
20
|
chatCache = new Map();
|
|
21
21
|
externalUserCounter = 0;
|
|
22
22
|
externalUserLabels = new Map();
|
|
23
|
+
/** 串行化外部用户持久化,避免并发 getData→parse→setData 导致互相覆盖、数据丢失 */
|
|
24
|
+
externalUserSaveQueue = Promise.resolve();
|
|
23
25
|
// messageId → 消息元数据映射缓存(供撤回/Reaction 等事件查找)
|
|
24
26
|
msgMetaMap = new Map();
|
|
25
27
|
MSG_META_MAP_MAX = 2000;
|
|
@@ -83,19 +85,20 @@ export class FeishuHandler {
|
|
|
83
85
|
}
|
|
84
86
|
/**
|
|
85
87
|
* 持久化单个外部用户标签。
|
|
86
|
-
*
|
|
88
|
+
* 串行化执行,避免并发 read-modify-write 互相覆盖导致数据丢失(例如 19 条只保存了 5 条)。
|
|
87
89
|
*/
|
|
88
90
|
saveExternalUserLabel(userId, label) {
|
|
89
91
|
if (!this.storage)
|
|
90
92
|
return;
|
|
91
|
-
this.
|
|
93
|
+
this.externalUserSaveQueue = this.externalUserSaveQueue
|
|
94
|
+
.then(() => this.storage
|
|
92
95
|
.getData(FeishuHandler.EXTERNAL_USERS_KEY)
|
|
93
96
|
.then((val) => {
|
|
94
97
|
const obj = val ? JSON.parse(val) : {};
|
|
95
98
|
obj._counter = this.externalUserCounter;
|
|
96
99
|
obj[userId] = label;
|
|
97
100
|
return this.storage.setData(FeishuHandler.EXTERNAL_USERS_KEY, JSON.stringify(obj));
|
|
98
|
-
})
|
|
101
|
+
}))
|
|
99
102
|
.catch((err) => {
|
|
100
103
|
this._log("warn", "保存外部用户映射失败", { err: String(err) });
|
|
101
104
|
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lmcl/ailo-mcp-feishu",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.3",
|
|
4
4
|
"description": "Ailo 飞书/Lark 通道 MCP",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
],
|
|
20
20
|
"dependencies": {
|
|
21
21
|
"@larksuiteoapi/node-sdk": "^1.56.1",
|
|
22
|
-
"@lmcl/ailo-mcp-sdk": "
|
|
22
|
+
"@lmcl/ailo-mcp-sdk": "^0.2.3",
|
|
23
23
|
"@modelcontextprotocol/sdk": "^1.26.0",
|
|
24
24
|
"dotenv": "^16.4.5",
|
|
25
25
|
"form-data": "^4.0.0",
|