父任务:OpenAlice 产品体验复用 #116。原生父子关系未设置,以正文互链为准。
用户授权:按平台 PRD 推进已盘点能力,派给 Luna 实施,当前根任务负责独立验收。范围依据 docs/research/openalice-capability-gaps.md;上游固定 52b51f29809178594b7b57bf666133829368b7b4,源码位于 D:/projects/opencli-Razormind/.git/research/OpenAlice,只读。
目标:把真实已持久化的 Project/Workflow/Run 输出和已有 IntelligenceArtifact 接入统一、受授权的产物列表与正文读取,并让 Records 支持精确运行过滤。先复用现有对象和 trace/intelligence 输出,不另建影子存储。
依赖与状态:独立就绪。尽早向协调者返回现有存储映射与确定的 API/schema,供后续 UI 接入。
实施约束:建议 GET /api/v1/studio/workspaces/{workspace_id}/projects/{project_id}/artifacts 和 /artifacts/{artifact_id};以实际路由规范为准,先报告合同。结构至少含稳定 id/title/media_type/content_hash、workspace/project/workflow/run 和可选可信 conversation,详情正文受大小限制。避免把任意文件路径或外部 URL 当作读取权限。
验收:真实数据库集成测试证明:列表与正文来自实际保存数据;同项目不同运行隔离;跨 workspace/project/run 拒绝;缺失/超限明确返回;内容哈希及可信来源保留;不存在的 conversation 不编造;未授权调用不能读取正文。Records 运行过滤同时约束所属项目和工作流。
放置合同:
- contractRepo: 2233admin/opencli-Razormind,本 Issue 标题必须为“feat(openalice): 产物读取与运行结果来源”。
- executionRepo: 2233admin/opencli-Razormind。
- worktree: D:/projects/opencli-openalice-artifacts-20260906;分支 codex/openalice-artifacts-20260906;初始源基线 08f0c9f(工作区代码的本地快照,未推送)。依赖任务开工时以协调者记录的整合基线替代。
- ownedPaths: backend/api/v1/project_artifacts.py、backend/services/project_artifact_service.py、backend/schemas/project_artifact.py(均可新增);backend/api/v1/records.py、backend/services/record_service.py、backend/schemas/record.py;对应 tests/integration/test_project_artifacts.py、tests/unit/test_record_run_filter.py。路由注册由协调者接入;不改共享 init.py 和数据库迁移,确需 schema 变更先报告。
- delivery: 当前协调任务的原生 Agent 交付消息,附本分支唯一提交 SHA、文件清单、测试命令/结果、失败/未运行/缺口与来源说明;不得自行推送/合并主分支或改变 Issue 状态。
共享约束:你不是唯一执行者。只在指定 worktree/ownedPaths 工作,不撤销他人改动;遇到依赖或权限模型意外复杂度向协调者报告,不扩范围。不得改浏览器账户功能和真实业务数据库/运行容器。读取仓库及 frontend AGENTS.md。优先复用现有依赖/模块;不把 OpenAlice 与本项目的 Workspace 当成同一领域对象。任何直接上游源码复制须先记录具体许可,不静默改仓库许可。
验收责任:执行者先自测,协调者复跑权限和完整用户链路;子任务完成不代表父任务完成。
父任务:OpenAlice 产品体验复用 #116。原生父子关系未设置,以正文互链为准。
用户授权:按平台 PRD 推进已盘点能力,派给 Luna 实施,当前根任务负责独立验收。范围依据 docs/research/openalice-capability-gaps.md;上游固定 52b51f29809178594b7b57bf666133829368b7b4,源码位于 D:/projects/opencli-Razormind/.git/research/OpenAlice,只读。
目标:把真实已持久化的 Project/Workflow/Run 输出和已有 IntelligenceArtifact 接入统一、受授权的产物列表与正文读取,并让 Records 支持精确运行过滤。先复用现有对象和 trace/intelligence 输出,不另建影子存储。
依赖与状态:独立就绪。尽早向协调者返回现有存储映射与确定的 API/schema,供后续 UI 接入。
实施约束:建议 GET /api/v1/studio/workspaces/{workspace_id}/projects/{project_id}/artifacts 和 /artifacts/{artifact_id};以实际路由规范为准,先报告合同。结构至少含稳定 id/title/media_type/content_hash、workspace/project/workflow/run 和可选可信 conversation,详情正文受大小限制。避免把任意文件路径或外部 URL 当作读取权限。
验收:真实数据库集成测试证明:列表与正文来自实际保存数据;同项目不同运行隔离;跨 workspace/project/run 拒绝;缺失/超限明确返回;内容哈希及可信来源保留;不存在的 conversation 不编造;未授权调用不能读取正文。Records 运行过滤同时约束所属项目和工作流。
放置合同:
共享约束:你不是唯一执行者。只在指定 worktree/ownedPaths 工作,不撤销他人改动;遇到依赖或权限模型意外复杂度向协调者报告,不扩范围。不得改浏览器账户功能和真实业务数据库/运行容器。读取仓库及 frontend AGENTS.md。优先复用现有依赖/模块;不把 OpenAlice 与本项目的 Workspace 当成同一领域对象。任何直接上游源码复制须先记录具体许可,不静默改仓库许可。
验收责任:执行者先自测,协调者复跑权限和完整用户链路;子任务完成不代表父任务完成。