Skip to content

chore: release 0.9.24 - #306

Merged
jubaoliang merged 30 commits into
mainfrom
release/0.9.24
Aug 15, 2026
Merged

chore: release 0.9.24#306
jubaoliang merged 30 commits into
mainfrom
release/0.9.24

Conversation

@jubaoliang

Copy link
Copy Markdown
Collaborator

0.9.24 变更摘要

新增

  • 知识库:新增知识库与对话检索,支持本地 ONNX 向量嵌入模型运行
  • 认证:新增 OpenID Connect(OIDC)单点登录
  • 权限:新增按用户模块权限(RBAC)及管理员绕过
  • 专家:支持将工作区快照发布为可安装模板(专家市场)
  • 智能体:支持将智能体共享给其他用户
  • 技能:新增对话式技能管理器(SkillHub),并兼容 Windows
  • 备份:新增自动定时系统备份
  • 频道:新增 final-only 仅终稿回复模式
  • 线程:支持会话线程分叉(fork)
  • 体验:HITL 工具选择器、运行时按需安装、KB/技能 UX 优化;对话与镜像等界面打磨;知识嵌入初始化流程加固

修复

  • 媒体/预览白名单补充音频 MIME 类型
  • 修正 ONNX 下载检测在未安装 fastembed 时的误判
  • 加固更新状态缓存与存储处理
  • 预提交门控:修复 staged 变更检测,避免 testmon 门控误报为绿

变更

  • 升级 harness-browser 依赖至 0.7.5
  • 数据库 schema 收敛为 v5
  • 备份恢复面板图标更新为 CalendarClock;对话/镜像等界面打磨

Release checklist

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

github-actions Bot and others added 30 commits August 12, 2026 01:12
…nual

chore: sync develop onto main after manual
…reen

testmon decides which files changed via `git ls-files --stage -m` (worktree
vs index). At pre-commit time the changes are already staged, so that
comparison is empty and testmon silently deselects every test — a false
green that makes the fast gate worthless.

Patch testmon's file detection to use `git diff HEAD` (staged + unstaged)
via conftest.py and tests/support/testmon_staged_changes.py, so the gate
actually fires on a commit's changes. No-op when testmon is absent.

Co-Authored-By: Claude <noreply@anthropic.com>
fix(precommit): make testmon gate detect staged changes (no false green)
Add is_shared so owners can expose a runtime agent for others to chat with while keeping config writes owner-only.

Co-authored-by: Cursor <cursoragent@cursor.com>
Let owners publish an agent workspace as a reusable template, refresh/unpublish it, and let others install a private fork. Also adds expert color/emoji pickers used by subagents and publish UI.

Co-authored-by: Cursor <cursoragent@cursor.com>
Support admin-configured OIDC with PKCE, one-time login code exchange, and dashboard SSO management/complete flows.

Co-authored-by: Cursor <cursoragent@cursor.com>
Manage catalog download/probe for local ONNX embedding weights beside Ollama, with stable provider identity and optional local-embedding extras.

Co-authored-by: Cursor <cursoragent@cursor.com>
Introduce document indexing, embedding (ONNX/remote), and chat/IM injection with default-open selection in the dashboard composer.

Co-authored-by: Cursor <cursoragent@cursor.com>
Keep dashboard update checks consistent across reloads and tighten update store edge cases.

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

Register routers/repos/migrations, OpenAPI tags, i18n/error codes, sidebar routes, and docs for the new platform capabilities.

Co-authored-by: Cursor <cursoragent@cursor.com>
Fall back to known HF cache aliases when optional local-embedding extras are missing, and mock deps availability in embed_texts unit tests so CI without the extra stays green. Also align install body types with nullable runtime fields.

Co-authored-by: Cursor <cursoragent@cursor.com>
Consolidate unreleased develop migrations 005–009 into one v5 file with
ensure/clamp paths for pre-squash local DBs; add HITL catalog picker,
shared runtime package install for ONNX/desktop, and short-id list UX for
knowledge bases and skill packages.

Co-authored-by: Cursor <cursoragent@cursor.com>
Adds support for audio/mpeg (MP3), audio/wav, audio/webm, audio/ogg, audio/flac, audio/aac, audio/x-wav
to the media/preview endpoint by adding a new _PREVIEW_AUDIO set and checking it in is_previewable_mime
* fix: fix script version issue and change output to english

* fix:cancel delete octop-login.txt logic
…nual

chore: sync develop onto main after manual
* feat: add per-user module permissions (RBAC) with admin bypass

Introduce a module-level permission system so non-admin users can be
scoped to a subset of dashboard modules. Adds a `permissions` TEXT column
on the `users` table (migration 006, SQLite + PostgreSQL), a central
permission catalog in `infra/users/permissions.py`, backend ACL checks
across routers, and dashboard gating via `RequirePermission` /
`ForbiddenPage` keyed by nav module. `admin` always bypasses every gate;
read access and chat/agent use are never gated.

* fix: gate connector install-cli by connectors permission (not admin-only)

The host CLI installer is a connectors-module operation and should be
gated by the `connectors` module permission, consistent with the rest of
the connector routes, instead of being admin-only.

The earlier RBAC change demoted this route from `current_admin` but the
test `test_install_cli_forbidden_for_non_admin` still failed because the
`create_user` test helper grants `BASELINE_PERMISSIONS` (which includes
`connectors`) by default, so the "non-admin" user actually held the
permission. Gate the route with `require_permission("connectors")` and
create the test user with `permissions=[]` so it genuinely lacks the
key and is rejected with 403.

---------

Co-authored-by: jubaoliang <jubaoliang@tencent.com>
* feat: implement automatic backup feature with configuration and scheduling

- Added new API endpoints for managing automatic backup settings.
- Introduced a new BackupConfig class to handle automatic backup configurations.
- Implemented functionality to create, run, and manage automatic backups.
- Updated the dashboard to include UI elements for configuring automatic backups.
- Enhanced CLI commands to support automatic backup operations.
- Added localization strings for new backup features in English and Chinese.
- Updated documentation to reflect changes in backup commands and configurations.
- Bumped octop version to 0.9.23 to include these features.

* refactor: clean up backup restore UI and localization strings

- Removed unused localization strings related to backup types in English and Chinese.
- Simplified the BackupRestore component by eliminating the auto backup name check and associated UI elements.
- Updated styles by removing the kindBadge class, streamlining the backup card display.

* refactor: improve error messages and logging in config.py

- Simplified error messages for backup configuration validation.
- Updated logging to avoid exposing sensitive environment variable values.
- Enhanced clarity in warning messages related to integer and boolean coercion.

* refactor: update permission checks for automatic backup endpoints

- Replaced `current_admin` dependency with `require_permission("backup")` for the automatic backup settings endpoints.
- Ensured that only users with the appropriate permissions can access and modify automatic backup configurations.
Experts:
- Publish/refresh now accept welcome_message and quick_prompts.
- Published-expert detail returns preview-path-based file inventory
  (manifest.json still surfaced in files when present).
- New PublishExpertDrawer + PublishTemplateButton UI and file-group helpers.

Chat:
- Add thread fork endpoint (POST .../threads/{id}/fork) and
  fork_dashboard_thread backend helper.
- Chat input preview bar and server-timezone-aware message display.

Skills:
- SkillDrawer rewrite with SkillFileTree and markdown rendering.

Cron / Knowledge bases:
- Job card, column, and listing UI refinements.

i18n:
- Add en/zh strings for new server-facing copy.
- Changed the icon in the BackupRestorePanel from Archive to CalendarClock for better representation of the automatic backup feature.
* feat: add drag and drop upload for skills zip import

- Add drag & drop upload zone in SkillImportModal
- Style matches reference image with dashed border
- Add i18n strings for drag hint and selected file display
- Update test to handle two remove buttons gracefully
- Keep original file selector button intact

* chore: anti spam bot

---------

Co-authored-by: Georgyhongbo <2280628443@qq.com>
Separate instance KB toggle from page CRUD with knowledge_settings, probe
embedding endpoints correctly, and polish ONNX download/settings UX.

Co-authored-by: Cursor <cursoragent@cursor.com>
Comment thread src/octop/infra/server.py Dismissed
@jubaoliang
jubaoliang merged commit 08ac49c into main Aug 15, 2026
4 of 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