1445043649
|
f63089aea8
|
feat(runtime): add workspace_context module + tests
新建 backend/packages/harness/deerflow/runtime/workspace_context.py,仿
user_context.py 的 API 形态:
- CurrentWorkspace Protocol(要求 .id: str + .role: str)
- _current_workspace ContextVar + set/reset/get/require
- DEFAULT_WORKSPACE_ID = "default" + get_effective_workspace_id(fallback
友好,不抛错;用于文件系统路径)
- AUTO 哨兵 + resolve_workspace_id 三态(AUTO/str/None)
与 user_context 的区别:CurrentWorkspace 额外要求 .role 字段,让 Protocol 同时
约束"workspace 是哪个"和"caller 在该 workspace 内的角色"(Stage 0 只见 'owner',
Stage 2 RBAC 打开 admin/member)。
backend/tests/test_workspace_context.py 16 个 test,覆盖:
- 4 个 set/reset/require 行为
- 3 个 Protocol structural check(接受 .id+.role / 拒少 .role / 拒少 .id)
- 4 个 get_effective_workspace_id(含 UUID → str 强转)
- 5 个 resolve_workspace_id 三态(AUTO/AUTO 无 ctx 抛错/explicit str/explicit
None/AUTO 强转 str)
Stage 0 PR3 T3.1 + T3.2。
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-05-12 21:04:49 +08:00 |
|