Skip to content

feat: add workspace model settings - #1443

Merged
ulleo merged 1 commit into
mainfrom
feat/workspace-model-policy
Nov 5, 2026
Merged

ulleo merged 1 commit into
mainfrom
feat/workspace-model-policy

Conversation

@ulleo

@ulleo ulleo commented Nov 5, 2026

Copy link
Copy Markdown
Contributor

Summary

工作空间新增仅系统管理员可配置的模型管理,保留系统默认模型共享行为,同时支持指定已授权模型或暂停该空间的全部模型调用。页面问数、小助手和 MCP 使用同一套空间策略;小助手默认模型动态跟随空间配置。

空间启用指定模型但 ID 为空 → 拒绝模型调用
否则:请求指定模型 → 助手自定义模型 → 空间默认模型 → 系统默认模型
显式指定或空间指定的模型必须存在且已授权;失败不回退
  • 在工作空间管理页增加模型管理弹窗;添加成员与成员搜索集中在右侧。
  • 删除模型或单项、批量撤销授权时,列出受影响空间及助手,支持更换空间默认模型或确认保留失效引用,整批校验和保存。失效默认模型不阻止 MCP 显式使用另一个有效授权模型。
  • 配置变更与审计记录一同保存;新操作读取当前配置和授权,正在执行的操作沿用已选模型。
  • 新增迁移 073;历史和新建空间默认保留系统默认模式,旧客户端修改名称不覆盖模型设置;同步五种语言和领域词汇。

Refs #1428

Evidence

  • Before: 基线 7bbcc89c 没有空间模型策略;默认调用使用系统默认模型,助手/MCP 的无效指定可静默回退。
    After: 在提交 4d609c0b 验证页面、助手及 MCP 的继承、授权拒绝、空值禁用、失效引用、后续操作和整批影响处理。
  • 后端:uv run --no-sync pytest -q tests/test_workspace_model_policy.py tests/test_assistant_welcome_defaults.py tests/test_embedded_auth_bypass_fix.py tests/test_supplier_config.py tests/test_execution_error_details.py,105 passed。使用真实路由、权限装饰器、SQLite 和本地模拟模型端点;隔离身份、无关会话构造及 SQL 任务执行。
  • 浏览器:PLAYWRIGHT_BASE_URL=<local-frontend> npm --prefix tests/browser test -- --project=workspace-model,5 passed。真实产品路由与组件,受控 API/xpack 身份适配器;覆盖保存、取消、刷新、失效模型、删除模型及单项/批量撤销授权。
  • npm run build、改动前端文件 ESLint、新增后端文件 Ruff 检查通过;现有后端文件相对基线无新增 Ruff 问题;新增翻译键五种语言一致。
  • Alembic 单 head、PostgreSQL 离线升降级 SQL 生成,以及一次性 SQLite 数据库的迁移往返通过。复用已有 Python 3.11 / sqlbot-xpack 0.0.5.40 wheel 环境;浏览器使用 Node 24 和本机 Chrome。

未执行真实 PostgreSQL 迁移、真实供应商、完整登录/SQL 问数链路或镜像部署验收。

Merge Danger

Door: two-way

迁移新增两列并提供 downgrade;回退前需记录空间策略,downgrade 会丢失新增配置。恢复旧版本也会恢复原有默认模型共享与回退语义。

Blast Radius: 问数

影响页面、小助手、页面嵌入、MCP 及推荐问题、分析、预测、重新生成的选型。历史空间默认行为保持兼容;显式指定未授权或失效模型将改为明确拒绝。部署需应用迁移 073。

@ulleo
ulleo merged commit 9720cd8 into main Nov 5, 2026
3 checks passed
@ulleo
ulleo deleted the feat/workspace-model-policy branch November 5, 2026 09:24
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.

1 participant