fix(agent): recover stale runs and improve new-user OA delivery
Fix DEV logout cookie clearing, materialize selected MindSpace OA assets before agent runs, and recover zombie runs from synced workspace pages. Add client run wait timeout, harness retry limits, page-edit asset forwarding, and logout/john2 scenario tests. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -358,6 +358,14 @@ export function buildSandboxSessionConstraints({ baseConstraints, developerTools
|
||||
'- 完成后回复 `[页面标题](公网URL)` 可点击链接;写入 `public/` 时 URL 必须含 `/public/` 路径段;按本会话给出的公网前缀模板拼接真实地址',
|
||||
'- 按需下载附件:Word 用 `generate_docx` 写入 `public/*.docx`,相对链接文件必须已在 `public/` 落盘,basename 与 HTML 一致',
|
||||
'- 按需长图附件:用 `generate_long_image` 写入 `public/*.long.png`,不要把 `.thumbnail.svg` 当成长图',
|
||||
'',
|
||||
'## sandbox-fs / MCP 稳定性',
|
||||
'- `private_data_bind_workspace_page` 等 sandbox-fs 工具若返回 **Transport closed**,最多再试 **1 次**',
|
||||
'- 连续失败后:若 `public/*.html` 已 write_file 落盘,改走 Portal/H5 API 或 shell 发布兜底;**禁止**反复 kill MCP 或 curl 401 的浏览器下载接口',
|
||||
'',
|
||||
'## 网页搜索上限',
|
||||
'- `web_search` 最多 **2 次**(可换关键词);再 **1 次** `fetch_url` 访问 Bing/360 搜索页',
|
||||
'- 3 轮仍无可用结果:停止搜索,用内置知识直接生成页面,并告知用户未获取实时搜索结果',
|
||||
);
|
||||
return lines.join('\n');
|
||||
}
|
||||
@@ -372,6 +380,8 @@ export function buildPublishConstraints({ slug, username, publicBaseUrl, publish
|
||||
`- 当前用户 **${addressName}** 的 Agent 工作区(唯一文件根目录):\`${publishDir}\``,
|
||||
'- 用户上传落在分区子目录:`oa/`、`private/`、`public/`(均在上述工作区内)',
|
||||
`- 公网 HTML 前缀(公开区页面):\`${buildPublicUrl(publicBaseUrl, slug, `${PUBLIC_ZONE_DIR}/`)}\``,
|
||||
'- **勾选 OA 资料**:优先读工作区 `oa/文件名`;**禁止** curl 浏览器登录接口 `/api/mindspace/v1/assets/:id/download`(Agent 无 cookie 会 401)',
|
||||
'- 工作区无副本时:POST `/api/agent/mindspace_asset_download`(body: session_id + asset_id)落盘后再 `read_file`',
|
||||
'- **查找文件**:在工作区内对应分区搜索(如 `oa/2025-12-06T13-34_export.csv`),不要搜其它用户目录或公网 URL',
|
||||
'- **禁止**:访问 `assets/` 内部路径、其它用户目录、主机绝对路径;禁止用公网 URL 列目录或读 CSV',
|
||||
'- **路径规则**:只用相对路径;禁止 `../`;工作区外的路径会被系统拒绝(OS 层强制,非软约束)',
|
||||
@@ -388,6 +398,8 @@ export function buildPublishConstraints({ slug, username, publicBaseUrl, publish
|
||||
'- 完成后给出 Markdown 可点击公网链接 `[标题](URL)`;写入 `public/页面.html` 时 URL 为 `.../MindSpace/<用户ID>/public/页面.html`,按模板拼真实地址',
|
||||
'- 按需下载链接(如 `report.docx`)必须与 HTML 同目录且文件名一致;Word 必须用 sandbox-fs `generate_docx` 生成,不要用 `computercontroller` / shell 作为交付依据',
|
||||
'- 按需长图链接:生成 `report.long.png` 后给 `[长图预览](.../report.long.png)`,下载用 `[下载长图](.../report.html?download=long-image)`',
|
||||
'- **sandbox-fs Transport closed**:`private_data_bind_workspace_page` 等 MCP 工具若返回 Transport closed,**最多重试 1 次**;仍失败则改走 Portal API / shell 发布兜底,**禁止**无限 kill/restart MCP',
|
||||
'- **网页搜索**:`web_search` 最多 2 次;再试 1 次 Bing/360 `fetch_url`;仍无结果则用内置知识直接生成页面并说明未获取实时搜索结果',
|
||||
`- 发布技能:\`${PUBLISH_SKILL_NAME}\`(生成页面前应 load_skill)`,
|
||||
].join('\n');
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user