7 Commits
Author SHA1 Message Date
Jubaoliang 2de23da5f3 fix: keep remote experts, mentions, cron, and MCP schema errors accurate (#2355)
Cloud-collab shadows follow the peer runtime state and only expose start/stop for the peer owner. Chat @ mentions list files once through the workspace backend, interval cron edits no longer reset the next run, and output-schema MCP failures stay on the tool result.
2026-10-24 09:08:55 +08:00
jubaoliangandCursor 5e34c8a001 fix: connectors empty layout and restore prior control-plane behaviors
Apply the remaining working-tree changes: connectors empty-state layout,
plus the knowledge, HITL, captcha, workspace, user-cache, and SSRF
adjustments with matching tests.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-24 22:40:47 +08:00
de0f7a89a4 fix(workspace): PUT /file 与 POST /upload 补上 _builtin_skills 写保护 (#1100) (#1101)
同一文件里 mkdir / delete / move / PUT /doc 都用 _assert_workspace_mutable
拦下 Octop 内置技能根 _builtin_skills,只有这两个写接口漏了:owner 可以往
_builtin_skills/<name>/SKILL.md 写内容,_resolve_skill 之后会把它当作
kind="builtin" 的技能列出来,而 delete/move 与 skills 的删除接口对 builtin
一律拒绝,重启同步也只清 RETIRED_BUILTIN_SKILLS 白名单,所以写进去就删不掉。

校验放在取 workspace 之前(与其余写接口一致),upload 校验的是最终真正使用的
target,并且先于读取请求体。

Co-authored-by: sxh313 <250161920+sxh313@users.noreply.github.com>
Co-authored-by: jubaoliang <jubaoliang@tencent.com>
2026-09-24 15:09:01 +08:00
Georgyhongbo 22bff364e4 feat: 工作区支持 .docx 在线编辑(Markdown 往返,可扩展注册表)
专家工作区新增可编辑文档能力:.docx 以 Markdown 在 Monaco 中打开/保存,
后端保存时转回 docx 覆盖原文件,与 .md 编辑体验一致。

- 后端新增可编辑文档转换器注册表(infra/utils/doc_edit.py)与通用
  GET/PUT /workspace/doc 端点,按扩展名分发,与具体格式解耦
- write_file 对可编辑文档按二进制格式落盘,工作区新建空 docx 即为合法
  文档包,预览/编辑立即可用
- 前端 docKind.ts 新增 EDITABLE_DOCS 注册表(docx->markdown),
  CodeEditor/FileViewer/WorkspaceDrawer 通用路由编辑与保存
- DocumentPreview 对 0 字节 word 显示空状态
- 新增 8 个后端单测、6 个集成测试、5 个前端单测;引入 python-docx

后续加新后缀只需:后端注册一个转换器类 + 前端注册表加一行。
2026-08-11 21:57:13 +08:00
jubaoliangandCursor b5d46ebfbf feat: enforce password policy and polish account/subagent UX
Require stronger passwords end-to-end (setup, Docker bootstrap, change-password), split password settings into a dedicated panel, and replace subagent file editing with a create/edit drawer.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-11 14:03:47 +08:00
006f141d84 Fix/remote browser drag (#50)
* feat(browser): support real remote drag with shared canvas pointer

Forward CDP mousedown/mousemove/mouseup (with clickCount) so remote
browser and desktop can drag instead of pan-to-scroll, and share a
connecting indicator while the stream starts.



* fix(chat): restore loading earlier messages on scroll up

Keep the load-older gate armed across virtual list updates, release
the in-flight latch when history declines to start, and expose a
clickable fallback when the list does not overflow.

Co-authored-by: Cursor <cursoragent@cursor.com>

* feat(workspace): clarify path semantics with from_workspace

Add from_workspace so workspace UI keeps leading-slash relative paths
while chat/tool downloads can pass host-absolute send_file paths
through BackendWorkspace, with a host download allowlist.

Co-authored-by: Cursor <cursoragent@cursor.com>

* fix(workspace): preserve chat document path semantics

* fix(workspace): harden file URL and host path checks on Windows

Preserve Unix-style file:// paths instead of url2pathname backslashes,
decode percent-encoded segments, and deny POSIX system roots like /etc
before Path.resolve() on Windows.

Co-authored-by: Cursor <cursoragent@cursor.com>

* fix(workspace): decode Windows file URLs to native paths

Unquote percent-encoded segments in file:///C:/… URLs and normalize
via Path so send_file enrichment matches str(Path.resolve()) on Windows.

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: jubaoliang <jubaoliang@tencent.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-23 15:26:52 +08:00
jubaoliang 748d998cf2 first commit 2026-07-09 14:32:36 +00:00