@yeaft/webchat-agent 1.0.506 → 1.0.508

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.
@@ -50,6 +50,10 @@ async function denyWorkbenchRoute(client, msg) {
50
50
  error,
51
51
  });
52
52
  if (response) await sendToWebClient(client, response);
53
+ // History file-link previews are background requests, not failed chat turns.
54
+ // Their correlated result already terminates the request without polluting
55
+ // the conversation (or stopping an unrelated streaming answer).
56
+ if (msg?.type === 'resolve_file_references' && response) return;
53
57
  await sendToWebClient(client, { type: 'error', message: error });
54
58
  }
55
59
 
@@ -321,7 +325,9 @@ export async function handleClientWorkbench(clientId, client, msg, checkAgentAcc
321
325
  client,
322
326
  msg,
323
327
  resolved,
324
- canonical: canonicalWorkbenchMessage(msg, { ...resolved, conversationId: fileConvId }),
328
+ canonical: canonicalWorkbenchMessage(msg, { ...resolved, conversationId: fileConvId }, {
329
+ canonicalWorkDir: !resolved.legacy && msg.type === 'resolve_file_references',
330
+ }),
325
331
  });
326
332
  break;
327
333
  }
@@ -97,6 +97,15 @@ function resolveYeaftRow(client, route) {
97
97
  || null;
98
98
  }
99
99
 
100
+ // Resolve defaults only after Session ownership has been checked. An empty
101
+ // legacy Session cwd inherits the Agent's advertised execution directory,
102
+ // never the browser's cwd or the Server process cwd.
103
+ function resolveSessionWorkDir(row, route) {
104
+ if (!row) return '';
105
+ return clean(route.runtimeProvider === 'yeaft' ? row.workDir : row.work_dir, 4096)
106
+ || clean(agents.get(route.agentId)?.workDir, 4096);
107
+ }
108
+
100
109
  function resolveChatRow(client, route) {
101
110
  const row = sessionDb.get(route.sessionId);
102
111
  if (!row || row.agent_id !== route.agentId) return null;
@@ -131,7 +140,7 @@ export function currentWorkbenchWorkspaceGeneration({ route, userId, role }) {
131
140
  ? resolveYeaftRow(client, route)
132
141
  : resolveChatRow(client, route);
133
142
  if (!row || row.isArchived) return null;
134
- const workDir = clean(route.runtimeProvider === 'yeaft' ? row.workDir : row.work_dir, 4096);
143
+ const workDir = resolveSessionWorkDir(row, route);
135
144
  if (!workDir) return '';
136
145
  return workbenchWorkspaceGeneration(workbenchRouteKey(route), workDir);
137
146
  }
@@ -175,9 +184,7 @@ export function resolveWorkbenchRequest(client, msg, targetAgentId, { allowMissi
175
184
  if (msg.conversationId === '_folder_picker') scope = 'files-folder-picker';
176
185
  else if (msg.conversationId === '_git_folder_picker') scope = 'git-folder-picker';
177
186
  }
178
- const sessionWorkDir = clean(row
179
- ? (route.runtimeProvider === 'yeaft' ? row.workDir : row.work_dir)
180
- : '', 4096);
187
+ const sessionWorkDir = resolveSessionWorkDir(row, route);
181
188
  const workspaceGeneration = sessionWorkDir
182
189
  ? workbenchWorkspaceGeneration(routeKey, sessionWorkDir)
183
190
  : clean(msg.workbenchWorkspaceGeneration, 1600);
@@ -1 +1 @@
1
- {"version":"1.0.506"}
1
+ {"version":"1.0.508"}