暂缓资源卡拖动并统一资源管理合同
移除资源卡 Pointer 拖动入口并保留点击详情 改写交互与布局测试,覆盖指针不改坐标且不提交 CAS 同步工作台 PRD、技术方案和项目决策记录
This commit is contained in:
@@ -1,7 +1,18 @@
|
||||
# 决策记录
|
||||
|
||||
## 2026-08-03 资源卡手动拖动暂缓且当前只开放自动布局与点击详情
|
||||
|
||||
- 背景:飞书《陶泥儿GameAgent-V1.0 项目开发界面需求》曾要求资源卡可拖动,并由后续 PRD、技术方案和实现扩展为手动布局 CAS、依赖线拖动预览与性能验收;mentor 最新决定明确资源卡暂时禁止拖动,资源聚焦也不需要工具栏或工具侧边栏。
|
||||
- 决策:当前资源卡不绑定 `pointerdown / pointermove / pointerup / pointercancel` 拖动入口,title、cursor、`touch-action` 与 class 只表达可点击;Pointer Move 不改变坐标、不更新依赖线、不提交手动布局。资源卡点击继续打开已有详情;dependency / type 自动布局、搜索、依赖线和直接上下游高亮保持现役。
|
||||
- 保留边界:项目内 dependency / type 布局 sidecar、历史坐标读取、资源集合自动协调、scope FIFO、跨窗口系统锁、Tauri/Rust CAS 与命令式 SVG preview 基础设施可以保留;历史 `manuallyPlaced=true` 坐标不删除、不重置、不迁移,但当前没有用户手动布局入口。手动拖动持久化、拖动性能和冲突后的重新拖动提示不再是当前验收条件。
|
||||
- 后续边界:本阶段不继续实现资源聚焦、文档读取、美术编辑、音频能力、项目版本或运行模块;若重新开放手动拖动,必须先更新 PRD、技术方案和 AppSurface 验收合同。
|
||||
- 验证方式:AppSurface 覆盖 Pointer Down / Move / Up / Cancel 后卡片坐标、SVG path 与布局更新调用均不变,并继续覆盖点击详情、dependency / type 切换、搜索、依赖图和直接上下游高亮;追加 shell typecheck、编码检查与 `git diff --check`。
|
||||
- 关联文档:`docs/prd/【AI游戏创作】项目开发工作台PRD-2026-07-20.md`、`docs/technical/【技术方案】AI游戏创作智能体App实施计划-2026-06-24.md`。
|
||||
|
||||
## 2026-08-03 依赖布局等待 Rust 图终态且拖动热路径脱离 React state
|
||||
|
||||
> 状态:其中依赖图初始化屏障继续生效;手动拖动热路径与性能验收已由上一条 mentor 最新决定暂缓。
|
||||
|
||||
- 背景:资源图异步返回前,dependency 布局会先以 `dependencyDepth=0` 创建并持久化自动坐标;图返回后的 reconcile 保留既有位置,导致首次布局永久停留在错误层级。4096 张真实资源卡拖动时,逐帧父组件 state 还会重渲染全部卡片,即使 SVG 已只更新局部 path 也无法满足帧预算。
|
||||
- 决策:Rust 关系图 read model 负责在完整任务图 SCC 压缩后返回确定性 resource dependency depth;dependency 模式等待当前 scope 图进入 `ready / failed` 后才启动布局读取与协调。手动位置永久保留,自动位置允许按最终图重新派生。拖动 preview 留在前端 ref/DOM 热路径,命令式更新卡片 CSS 与局部 SVG path,不逐帧跨 Tauri IPC,也不写 layout sidecar。
|
||||
- 边界:不修改 `game-creator-resource-layout.v1`、布局 Rust 持久层、manifest、api-server 或 SpacetimeDB;type 模式不等待资源图且继续保留全部已有坐标。图失败只降级初始化一次,项目或 mode 切换后旧图结果必须丢弃。
|
||||
@@ -25,6 +36,8 @@
|
||||
|
||||
## 2026-07-31 AI 游戏创作资源依赖图采用 Rust 只读拓扑与前端派生 SVG
|
||||
|
||||
> 状态:其中资源卡 Pointer Move 拖动预览与局部更新验收已由 2026-08-03 mentor 最新决定暂缓;只读拓扑、SVG 派生展示、搜索与选择高亮合同继续生效。
|
||||
|
||||
- 背景:资源画布已有 dependency / type 双模式坐标与本地 CAS sidecar,但 dependency 模式尚未把当前 manifest 中可证明的资源引用和任务流转可视化;关系图不能反向污染布局持久化或建立第二套资源真相。
|
||||
- 决策:dependency 模式由 Tauri Rust 只读命令从当前 manifest、资源卡身份和有界 `.agent/agent.db` 审计构建稳定 `ProjectResourceGraph` read model,前端只归一化 DTO、测量卡片坐标并用原生 SVG 渲染。资产 `source.referenceResourceIds` 只在唯一匹配另一资产 `source.resourceId` 后形成橙色实线;任务依赖按任务对聚合为灰色虚线主线与两端分支,禁止资源笛卡尔积。Rust 以迭代式强连通分量分析识别资源环和完整任务 DAG 环,并返回资源局部连接索引。
|
||||
- 任务身份:External Editor 响应中的 `source.taskId` 是平台生成任务 ID,不等于本地 manifest task ID,禁止据此分配 producer。画布资产只接受 `agent.runtime.canvas.asset_generate` 审计中经当前 manifest task 校验的 `assetId -> agentId`;证据缺失、冲突或已超出有界读取窗口时不生成对应 task flow。任务产物与 Agent 回执继续使用自身已有的 manifest task 身份。
|
||||
@@ -5546,7 +5559,7 @@
|
||||
- 资源投影:上述回执同步投影到“资源管理 → 文档”,保留来源 Agent 和 run 身份。它是持久回执的可见视图,不得冒充 manifest asset、项目目录中的实际文件或可下载交付物。
|
||||
- 重试确认:`agent.resume` 默认仍为 `confirm`。普通自动 retry command 保留 auto gate;正式失败卡的“在当前项目重试”按钮本身视为本次明确确认,调用单独的 confirmed retry command,但仍不得绕过 deny。点击后必须在原卡即时显示提交中、成功或安全错误,不能把错误放到专业列表末尾。若总控已为同一 delegation 准备精确 repair,按钮优先确认该 repair,不再创建重复的无合同重试。
|
||||
- 回执命名:无文件的 completed 结果统一称“专业 Agent 文本回执”,不得称“美术产物”或直接暴露 `design-foundation / art-asset-plan / balance-seed` 等内部 ID。美术任务只完成计划且 manifest 没有图片时,普通界面明确显示“仅完成计划,尚未生成或登记图片”。
|
||||
- 工作台布局:PDF 方案外的顶部项目标题条不进入项目工作台;资源卡支持同分类、当前会话内的真实拖拽重排,不宣称持久保存。资源详情使用独立可拖动浮层,位置约束在工作台与 viewport 内并避开底部 Agent dock,长正文独立滚动。工作区与 dock 精确占满客户端可用高度,不保留 dock 下方空白。
|
||||
- 工作台布局:PDF 方案外的顶部项目标题条不进入项目工作台;本条原定的资源卡同分类、当前会话内拖拽重排已由 2026-08-03 mentor 最新决定取代,当前资源卡只允许自动布局与点击详情。资源详情使用独立可拖动浮层,位置约束在工作台与 viewport 内并避开底部 Agent dock,长正文独立滚动。工作区与 dock 精确占满客户端可用高度,不保留 dock 下方空白。
|
||||
|
||||
## 2026-07-20 AI 游戏创作策划与美术图片交付门禁
|
||||
|
||||
|
||||
Reference in New Issue
Block a user