Skip to content

Connectors multi-instance, OpenSandbox storage backend, per-agent plugin toggle - #574

Merged
jubaoliang merged 5 commits into
developfrom
feature/connector-instances-opensandbox-plugin-toggle
Sep 6, 2026
Merged

Connectors multi-instance, OpenSandbox storage backend, per-agent plugin toggle#574
jubaoliang merged 5 commits into
developfrom
feature/connector-instances-opensandbox-plugin-toggle

Conversation

@jubaoliang

Copy link
Copy Markdown
Collaborator

Summary

This PR bundles several unrelated feature/chore changes that were sitting together in the working tree, split into one commit per requirement for reviewability.

  • feat(connectors): support multiple connector instances of the same kind, and shared connectors visible across users (list_visible), with DB migration 013_connector_instances (schema v13).
  • feat(storage): add OpenSandbox as a remote sandbox storage backend kind (probe/health-check, execution support, previewability rules).
  • feat(plugins): add a per-agent plugin enable/disable toggle; move plugin configuration UI from the global Plugins admin page into the agent's Personalization tab.
  • feat(experts): add catalog display metadata (emoji/label/summary) to ~30 bundled expert skills' SKILL.md frontmatter — no logic changes.
  • chore: misc unrelated fixes — README desktop client download table, RemoteBrowser empty-state mascot icon, vite dev proxy xfwd: true fix (preserves browser origin for OAuth callbacks).

Known deviations (shared/interwoven files)

A few files touch more than one of the above features and were kept whole in a single commit rather than split line-by-line:

  • src/octop/infra/errors.py, backend i18n/{en,zh}.json, and dashboard locales/{en,zh}.json are committed in full with the connectors commit (commit 1), since ErrorCode.CONNECTOR_NAME_TAKEN is referenced by the connectors router at that point. This means commit 1 also carries some strings/enum members that only become "live" once the storage/plugins commits land (safe — unused additions, nothing missing).
  • src/octop/infra/agents/manager.py and tests/unit/agents/test_mcp_tool_cache.py are committed whole with the plugins commit (commit 3), even though manager.py also contains connectors-related (list_visible) and opensandbox-related changes, because the new integration test test_agent_plugin_switch_defaults_on_and_preserves_tools depends on the per-agent plugin logic in that file to pass.

Verification

make all   # format-all + lint + typecheck + test

Result: 2949 passed, 8 skipped — all green (format/lint/typecheck run before tests in the all target; test phase completing confirms all prior phases passed).

Commits

  1. feat(connectors): support multiple connector instances and shared connectors
  2. feat(storage): add OpenSandbox remote sandbox storage backend
  3. feat(plugins): add per-agent plugin toggle, move plugin config to Personalization
  4. feat(experts): add catalog display metadata to bundled skills
  5. chore: misc unrelated fixes

@jubaoliang
jubaoliang merged commit d9a0e5f into develop Sep 6, 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.

2 participants