@yeaft/webchat-agent 0.0.163 → 0.0.164

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.
Files changed (2) hide show
  1. package/crew.js +11 -2
  2. package/package.json +1 -1
package/crew.js CHANGED
@@ -325,7 +325,8 @@ async function saveSessionMeta(session) {
325
325
  agentId: session.agentId || null,
326
326
  costUsd: session.costUsd,
327
327
  totalInputTokens: session.totalInputTokens,
328
- totalOutputTokens: session.totalOutputTokens
328
+ totalOutputTokens: session.totalOutputTokens,
329
+ features: Array.from(session.features.values())
329
330
  };
330
331
  await fs.writeFile(join(session.sharedDir, 'session.json'), JSON.stringify(meta, null, 2));
331
332
  // 保存 UI 消息历史(用于恢复时重放)
@@ -463,6 +464,7 @@ export async function resumeCrewSession(msg) {
463
464
  humanMessageQueue: [],
464
465
  waitingHumanContext: null,
465
466
  pendingRoutes: [],
467
+ features: new Map((meta.features || []).map(f => [f.taskId, f])),
466
468
  userId: userId || meta.userId,
467
469
  username: username || meta.username,
468
470
  agentId: meta.agentId || ctx.CONFIG?.agentName || null,
@@ -607,6 +609,7 @@ export async function createCrewSession(msg) {
607
609
  humanMessageQueue: [], // 人的消息排队
608
610
  waitingHumanContext: null, // { fromRole, reason, message }
609
611
  pendingRoutes: [], // [{ fromRole, route }] — 暂停时未完成的路由
612
+ features: new Map(), // taskId → { taskId, taskTitle, createdAt } — 持久化 feature 列表
610
613
  userId,
611
614
  username,
612
615
  agentId: ctx.CONFIG?.agentName || null,
@@ -2103,6 +2106,11 @@ function sendCrewOutput(session, roleName, outputType, rawMessage, extra = {}) {
2103
2106
  ...extra
2104
2107
  });
2105
2108
 
2109
+ // ★ 累积 feature 到持久化列表
2110
+ if (taskId && taskTitle && !session.features.has(taskId)) {
2111
+ session.features.set(taskId, { taskId, taskTitle, createdAt: Date.now() });
2112
+ }
2113
+
2106
2114
  // ★ 记录精简 UI 消息用于恢复(跳过 tool_use/tool_result,只记录可见内容)
2107
2115
  if (outputType === 'text') {
2108
2116
  const content = rawMessage?.message?.content;
@@ -2266,7 +2274,8 @@ function sendStatusUpdate(session) {
2266
2274
  Array.from(session.roleStates.entries())
2267
2275
  .filter(([, s]) => s.turnActive && s.currentTool)
2268
2276
  .map(([name, s]) => [name, s.currentTool])
2269
- )
2277
+ ),
2278
+ features: Array.from(session.features.values())
2270
2279
  });
2271
2280
 
2272
2281
  // 异步更新持久化
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yeaft/webchat-agent",
3
- "version": "0.0.163",
3
+ "version": "0.0.164",
4
4
  "description": "Remote agent for Yeaft WebChat — connects worker machines to the central server",
5
5
  "main": "index.js",
6
6
  "type": "module",