Skip to content

[V1 Purity] 将 Workspace 设为 AgentTask 的唯一聚合边界 #138

Description

@leecyang

问题

当前架构文档将 AgentTask 定义为 Workspace 下的资源,但数据库、后端 API 与前端请求仍按 learner 维度全局管理任务;前端还使用固定 lingxi Workspace 别名。Workspace 因而只是路由外壳,不是业务聚合根。

实施要求

  • 直接修改首发基线迁移 0001_initial_schema.py,为 agent_tasks 增加非空 workspace_id 外键及必要索引;不得新增过渡迁移。
  • 将 AgentTask、事件、交互与任务产物相关 API 统一收敛到 /api/workspaces/{workspace_id}/...。
  • 删除全局 /api/agent-tasks 路由,不保留重定向、代理或兼容入口。
  • 删除 PUBLIC_WORKSPACE_ID、固定 lingxi 别名及前端硬编码跳转。
  • 前端必须读取当前用户真实 Workspace ID,并在所有任务查询和命令中显式携带该 ID。
  • 后端所有任务操作同时校验 workspace_id + task_id + learner_id 的归属关系。
  • 同步更新 OpenAPI、前端客户端、架构文档和测试。

验收条件

  • agent_tasks.workspace_id 为非空外键,初始 schema 可从空库一次创建。
  • 全仓不存在 PUBLIC_WORKSPACE_ID 和固定 lingxi Workspace 别名。
  • OpenAPI 中不存在全局 /api/agent-tasks。
  • 不存在新旧 URL 双轨或兼容转发。
  • 跨 Workspace 读取、写入、事件订阅和产物访问均返回拒绝结果。
  • 前后端测试覆盖真实 Workspace ID 解析和资源隔离。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions