chore: release 0.9.24 - #306
Merged
Merged
Conversation
…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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
0.9.24 变更摘要
新增
修复
变更
Release checklist