Skip to content

chore: sync develop onto main after 0.9.21 - #237

Merged
jubaoliang merged 12 commits into
developfrom
chore/sync-develop-after-0.9.21
Aug 11, 2026
Merged

chore: sync develop onto main after 0.9.21#237
jubaoliang merged 12 commits into
developfrom
chore/sync-develop-after-0.9.21

Conversation

@jubaoliang

Copy link
Copy Markdown
Collaborator

Summary

  • main(0.9.21)以 merge commit 合入 develop,恢复「main 是 develop 祖先」不变量。
  • 冲突处理:CHANGELOG / 版本号跟进 0.9.21,保留 develop 上的 .docx 在线编辑与 python-docx
  • 修复 sync-main-to-develop.yml:在 merge/commit 前设置 github-actions[bot] 身份;仅在存在 MERGE_HEADmerge --abort(避免空 ident 失败后再 abort 二次失败)。

Test plan

  • 本地 git merge-base --is-ancestor origin/main HEAD 通过
  • 本地 pre-commit(make all + dashboard build)通过
  • CI 绿后合入 develop
  • 合入后确认 origin/main 仍是 origin/develop 的祖先

Made with Cursor

jubaoliang-tencent and others added 12 commits August 11, 2026 15:12
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 测试通过。
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>
@jubaoliang
jubaoliang merged commit f3fcd9f into develop Aug 11, 2026
3 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.

5 participants