Skip to content

chore: release 0.9.22 - #241

Merged
jubaoliang merged 18 commits into
mainfrom
release/0.9.22
Aug 12, 2026
Merged

chore: release 0.9.22#241
jubaoliang merged 18 commits into
mainfrom
release/0.9.22

Conversation

@jubaoliang

Copy link
Copy Markdown
Collaborator

[0.9.22] - 2026-08-11

新增

  • 专家工作区支持 .docx 在线编辑:以 Markdown 在 Monaco 中打开/保存,保存时转回 docx 覆盖原文件(标题/加粗/斜体/列表/表格保留,复杂格式简化);工作区新建的 .docx 即初始化为合法文档包,预览/编辑立即可用。基于可扩展注册表,新增可编辑后缀只需注册一个后端转换器类 + 前端注册表一行

变更

  • 依赖新增 python-docx==1.2.0(含 lxml),用于工作区 .docx 的 Markdown 往返转换

修复

Release checklist

  • CI green
  • Merge this PR into main
  • After merge, GitHub Action auto-pushes v0.9.22 tag on main tip

github-actions Bot and others added 17 commits August 9, 2026 04:41
…nual

chore: sync develop onto main after manual
Use a bottom Drawer for account settings on small screens, restore the
historic Elegant Rose default brand, and persist light/dark preference
with palette under the shared theme localStorage key.

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

* fix: compress oversized inbound images so vision models can see them

* chore: note vision image compression PR in changelog (#219)
* fix: Update schema when restoring octop/lightclaw backups

* feat: enhance error logging for OctopError in exception handlers

* feat: enhance backup restore process to include IM channel reloading

* feat: extend backup restore functionality to include cron job reloading

* feat: add JWT secret capture and restore functionality during backup processes

* fix: update Chinese translation for presetProviders term in zh.json

* feat: implement Unix crontab semantics for weekday handling in cron triggers

Added functionality to translate numeric Unix weekdays to names and updated the cron trigger builder to support Unix-style expressions. Enhanced unit tests to validate the new behavior for various weekday formats and ranges.

* feat: enhance backup restore functionality with ownership remapping

- Updated `restore_backup_file` to accept a `user` parameter for identifying the restoring admin.
- Added `owner_user_id` option in CLI for specifying ownership during LightClaw migration archives.
- Implemented user ownership remapping in the database during system backup restoration.
- Enhanced user handling in backup processes to ensure proper ownership assignment and data integrity.
- Updated tests to validate new ownership remapping behavior during migration restores.

* refactor: streamline SQL query formatting in backup test case

- Simplified the SQL query execution in the `_make_migration_backup` function by removing unnecessary line breaks for improved readability.
* feat: support installing plugins from a local ZIP archive

Add a POST /plugins/upload endpoint (admin-only) that installs a plugin
from an uploaded ZIP, plus a local-file picker in the installed-plugins
panel with an optional overwrite checkbox. Extract install_archive() from
install_url() so both paths share zip validation and path-traversal
protection.

* style: fix ruff formatting of install_url error message
* feat: Docker sandbox, workspace_dir, default_open, HITL and runtime knobs

WIP against local editable orcakit-harness-agent 0.9.20 (PyPI not published yet).
Includes Admin Docker storage, agent workspace_dir, connector default_open,
chat HITL resume/todos UI, and runtime limit fields.


* feat: browser HITL stream listen, gateway preempt stop/cancel

Wire the browser streaming endpoint to listen for human-in-the-loop
events, add gateway-side preemption (stop/cancel) for running agents,
and integrate chat send with the browser session state.

- Add browser stream "listen" endpoint and harness HITL wiring
- Add gateway preemption: stop/cancel handling for running agents
- Wire chat send to browser session state in the dashboard
- Bump harness-gateway to >=0.9.2 and regenerate uv.lock
- Add unit tests for browser stream listen and gateway preemption

* test: fix workspace_dir assertion on Windows

Compare path components (name == agent_id, parent == "agents") instead
of a hard-coded POSIX "/agents/{id}" string suffix, so the check passes
on Windows where Path uses backslash separators.

---------

Co-authored-by: jubaoliang <jubaoliang@tencent.com>
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>
技能 ZIP 里仅含空目录(如 ai/、data/、scripts/)时,导入后目录会全部丢失:
此前解析 ZIP 直接跳过目录条目,写入时也只调用了文件上传。

- 前端 parseSkillZip:不再跳过目录条目,空目录转为带尾部 "/" 的路径标记
  (content 为空)保留;根级技能下的子文件夹(无自己的 SKILL.md)作为
  支撑文件一并保留,避免嵌套目录在导入时被丢弃。
- skill_packages:_normalize_relative_path 保留尾随 "/" 目录标记,
  不再被 PurePosixPath 悄悄当成文件名。
- skill_package_store:write_skill 对目录标记执行 mkdir,重建空目录。
- skills 路由:新增 _write_skill_files,先 amkdir 空目录再批量上传文件,
  create / update / URL 导入统一走该函数。
- 补充单元与集成测试:空目录在包存储与工作区中均被重建;孤立的空目录
  不会产生伪技能;根级技能与兄弟技能能正确共存。

验证:unit(agents) 技能相关用例通过、ruff clean、前端 parseSkillZip 测试通过。
专家工作区新增可编辑文档能力:.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

后续加新后缀只需:后端注册一个转换器类 + 前端注册表加一行。
Keep main an ancestor of develop after the 0.9.21 release. Resolve
changelog/version lock conflicts while retaining develop-only docx editing.

Co-authored-by: Cursor <cursoragent@cursor.com>
GitHub-hosted runners have no committer name/email, so merge commits
failed before conflicts could be handled. Abort only when MERGE_HEAD exists.

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

chore: sync develop onto main after 0.9.21
Keep main an ancestor of develop after merging the Sync workflow
git-identity fix into main.
…-identity

chore: sync develop onto main after ci identity fix
Old Workbox Cache-First index.html plus NetworkFirst on hashed chunks
served deleted asset URLs after a rebuild. Fetch a fresh HTML shell,
precache vendors, and recover by clearing the SW when the entry fails.

Co-authored-by: Cursor <cursoragent@cursor.com>
Comment thread src/octop/api/app.py Fixed
@jubaoliang
jubaoliang merged commit d944262 into main Aug 12, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants