k88936
|
fecb8fe76f
|
Merge remote-tracking branch 'origin/master' into feat/ui-editor-v3
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m25s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m57s
Project CI / Backend tests (pull_request) Successful in 4m44s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Failing after 6m40s
Project CI / Native shell tests (pull_request) Successful in 6m11s
Project CI / Frontend tests (pull_request) Successful in 2m27s
Project CI / Repository checks (pull_request) Successful in 2m50s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 9m44s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m38s
# Conflicts:
# docs/project-memory/shared-memory/decision-log.md
|
2026-09-24 19:43:20 +08:00 |
|
k88936
|
065b4ea330
|
给 UI 设计文档三个工具补上可读的回执明细与入参摘要
Project CI / Backend tests (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
Project CI / Frontend tests (pull_request) Has been cancelled
Project CI / Repository checks (pull_request) Has been cancelled
Project CI / AI game creator shell web tests (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust crates (pull_request) Has been cancelled
Project CI / AI game creator shell Rust smoke (pull_request) Has been cancelled
- 三个工具的持久回执补白名单分支:只放身份、相对路径、计数与回填说明,不再整块变成明细不可用
- 身份字段禁控制字符并限长,相对路径必须归一化后落在 ui/ 下,含宿主路径或 file URI 即失败关闭
- 回填说明按既有口径把绝对路径脱敏成占位符,超长或带控制字符的整条明细失败关闭
- 明细总长仍守 500 字符上限:清单能放多少放多少,放不下的部分用总数表达
- 入参摘要给出设计图逐张身份或目标文档 id,并把三个工具加进可读名单,不再只报哈希
- 补四条用例覆盖可读明细、脱敏、越界路径失败关闭与入参摘要
|
2026-09-24 19:08:18 +08:00 |
|
k88936
|
74609e2a5e
|
把 UI 设计文档三个工具算进项目变更门禁
- 项目变更判定与项目版本号推进判定补上 UI 设计文档的三个工具:成功返回即算改过项目
- 只重写派生产物的代码生成工具不推进项目版本号,避免虚报推进量、把"项目被别处改动"的误报再造出来
- 新建文档与跑工作流这两个工具在观察明细里报出真实推进格数,失败路径也报,避免切图素材已登记却漏计
- 非法人写的读明细逻辑收敛成一个helper,三处调用共用
- 补六条门禁用例覆盖成功即算、只出代码不算推进、真实推进量优先、失败但已推进才算
- 同步共享记忆的项目概览与决策记录
|
2026-09-24 18:58:12 +08:00 |
|
k88936
|
565c2277d5
|
恢复工作流时只读快照,不再重放已完成步骤的改动
- 检查点每步除记录结果外,再落一份「该步应用完之后」的状态快照,切分那步另带回填出错说明,旧日志无快照仍可解析
- 主流程只应用本次新完成那一步的改动,已完成步骤整步跳过,不再重复登记切图或重复累加回填说明
- 崩溃恢复改为只读检查点里的状态快照并逐级取回,删掉按记录结果重算目标状态的旧实现
- 只有结果、没有状态快照的旧检查点行按未完成处理,由主流程重跑该步
- 漂移与写回幂等判据改为对照快照:状态既不是本轮起点、也不是切分后那份才算漂移;文档已等于切分后快照即视为写回完成
- 同步 ADR、技术方案、代码地图与共享记忆里的检查点口径
|
2026-09-24 18:16:34 +08:00 |
|
k88936
|
62b0f103de
|
把 ui-design-doc 的阻塞 IO 挪出 async 执行器
src-tauri/src/agent/runtime_tools/ui_design_doc.rs 的 from-images 与 into-js 观察函数改为 async,核心逻辑用 tokio::task::spawn_blocking 执行:from-images 要逐张 image::open 解码设计图再写 manifest,into-js 要读整份文档、算 SHA-256 再落盘 JS,原先都在 async 执行器线程上同步跑,会和其它已派发的动作抢执行器
阻塞任务未完成(join 失败)时返回 status=error 的观察,沿用仓库既有的 spawn_blocking 失败兜底写法
src-tauri/src/agent/runtime_actions/action_execution.rs 两个分发分支改为 await;ui_design_doc.rs 的两个用例改成 #[tokio::test] 并 await
|
2026-09-24 17:47:58 +08:00 |
|
k88936
|
4046318118
|
先整批校验设计图再登记,避免留下孤儿资源
src-tauri/src/ui_editor/agent_tools/creation.rs 把 prepare_design_image 拆成只读的 resolve_design_image 与登记两步:旧实现边校验边 register_local_asset_at,批次里后面某张设计图格式/尺寸不合法或路径缺失时,前面已登记的图片会留在 manifest.json 里且没有任何文档引用,而 rollback_created_document 只覆盖更晚的初始化失败
同批次查重改为按解析出的身份(已登记图片用 assetId、待登记图片用归一化路径)在登记前判定,重复引用不再先写一次 manifest
同文件新增 ResolvedDesignImage 承载「已登记 / 本次待登记」两种解析结果,待登记项在第二阶段登记后才拿到 assetId
src-tauri/src/tests/project.rs 新增 create_ui_design_doc_from_images_leaves_no_orphan_assets_when_a_later_image_fails,覆盖「第二张缺图时第一张不得进 manifest」(已用回退实现的失败结果反证过)
|
2026-09-24 17:44:19 +08:00 |
|
k88936
|
56760a7397
|
让 Node 类型绑定回到 ts-rs 生成结果
src/features/ui-editor/types/Node.ts 补回末位逗号:该目录在 .prettierignore 内,文件内容就是 ts-rs 直出,46f859237 手工补 offset 字段时漏掉这个逗号,导致每次 cargo test 跑导出后这个文件都会以「已修改」状态留在工作区
|
2026-09-24 17:25:28 +08:00 |
|
k88936
|
ec9a4fcbac
|
给节点 offset 补上有限数值校验
src-tauri/src/ui_editor/persistence.rs 的 validate_node 现在校验 node.offset.min/max 必须是有限数值,与相邻的 Transform/custom_minimum_size 校验一致;此前只有 Transform 的 anchor/offset 被校验,NaN 或 Infinity 的树级偏移可以存盘,预览按 offset.min 定位时整棵树的渲染会一起失效
同文件新增 rejects_non_finite_node_offset,覆盖「offset 全有限可保存、min 变成 Infinity 后校验失败」
|
2026-09-24 17:25:03 +08:00 |
|
k88936
|
246059af4c
|
让工作流步骤标签用例跟随步骤目录
tests/workflowCompletionNotice.test.ts 改为遍历 UI_EDITOR_STEPS 逐一比对 workflowStepLabel(step.id) 与 step.label,断言里写死的 reference-analysis 步骤已在「前端移除分析参考图步骤与界面图元编辑」中退役,导致用例在 HEAD 上必然失败
|
2026-09-24 16:25:21 +08:00 |
|
k88936
|
0f9e2f1737
|
把设计图引用建模成 assetId 与 path 二选一的联合类型
src/features/ui-editor/uiDesignResourceBridge.ts 的 UiDesignDocImageReference 改为判别联合:原先两个字段都可选,`{}` 或两个都给要等到 Rust 运行时才被判错
|
2026-09-24 16:10:50 +08:00 |
|
k88936
|
c8852ac2af
|
把只赋值一次的 overview 改成 const 三元
src/view/ui-editor/index.tsx 用三元表达式声明 overview,去掉 let + if/else 两处赋值,表达不可变意图
|
2026-09-24 16:10:27 +08:00 |
|
k88936
|
95fec72ef0
|
删掉会话投影里无人使用的 generateCode 包装
src/view/ui-editor/useUiEditorPage.ts 移除 save.generateCode 及其实现:全仓只有 saveAndGenerateCode 与 stateStore.generateCode 有消费者,这个包装失败时静默返回 null,留着容易让后续调用方拿到没有原因的 null
|
2026-09-24 16:09:53 +08:00 |
|
k88936
|
d7f3790fce
|
让节点拖动与缩放用同一套树/尺寸判据
useNodeTransformInteraction.ts 的 onNodePointerDown 补上 !tree || !logicalSize 守卫,与 onNodeResizePointerDown 一致:命中不到树或逻辑尺寸时不再启动手势并占用指针捕获
|
2026-09-24 16:08:05 +08:00 |
|
k88936
|
76dfd74dea
|
窗口失焦时丢弃未提交的树拖拽
PreviewWorkspace.tsx 的 onWindowBlur 一并清掉 treeDragRef 与树拖拽预览偏移:失焦时浏览器不一定补 pointercancel,陈旧手势会被后续 pointerup 复用并把意外偏移写进文档
tests/previewRightPanDrag.test.tsx 补失焦后抬起不提交偏移的用例
|
2026-09-24 16:07:56 +08:00 |
|
k88936
|
134046f806
|
树根拖拽的指针取消不再提交偏移
PreviewWorkspace.tsx 拆出 handleTreePointerCancel:pointercancel 只清拖拽状态与指针捕获,不再按抬手坐标算最终偏移,避免浏览器取消手势时把意外偏移写进文档
tests/previewRightPanDrag.test.tsx 补「抬起提交、取消不提交」用例,并给画布夹具补上 setTreeOffset 桩
|
2026-09-24 16:06:48 +08:00 |
|
k88936
|
064c26d7c9
|
按右键按下时的命中目标决定是否弹节点菜单
PreviewWorkspace.tsx 在右键按下时记住命中元素,抬起时改成按它解析节点与树:指针被视口捕获后 pointerup 的 target 是捕获元素,原先按抬起目标找不到 [data-node-id],节点菜单永远打不开
指针取消时同步清掉记录的目标
tests/previewRightPanDrag.test.tsx 补「抬起被重定向到捕获元素仍弹菜单」用例
|
2026-09-24 16:05:16 +08:00 |
|
k88936
|
ef4601c555
|
让节点删除默认落到选中节点所在的树
src/view/ui-editor/useUiEditorPage.ts 的 deleteNode 默认 treeId 改为 treeForSelectedNode?.src_ui_design ?? activeImageId:选中节点可以来自非激活界面图,Inspector 删除按钮不给 treeId 时会静默删不掉
src/view/ui-editor/uiEditorKeyboardShortcuts.ts 与 view/ui-editor/index.tsx 去掉键盘删除强制传 activeImageId 的接线,treeId 改为可选,同时删掉已无消费者的 activeImageId 入参
tests/uiEditorPage.test.ts 补「非激活树里的节点默认也能删除」用例,uiEditorKeyboardShortcuts.test.ts 断言改为只传节点 id
|
2026-09-24 16:04:29 +08:00 |
|
k88936
|
12e8287f92
|
避免超大缩放让网格步长计算死循环
previewGrid.ts 的 resolvePreviewGridStep 在 screenSpacing 溢出成 Infinity 时直接回基础步长:原先第二个 while 里 Infinity/2 仍是 Infinity,画布会卡死
previewWorkspaceZoom.test.tsx 补 Number.MAX_VALUE 缩放的回退用例
|
2026-09-24 16:02:10 +08:00 |
|
k88936
|
9e49db419f
|
让状态不变量校验先判字段类型再取值
src/features/ui-editor/stateInvariants.ts 在取 path.trim 与 pixel_size.every 前先判 string / Array.isArray,残缺持久化文档此前会在 firstUiDesignInvariantMessage 里抛 TypeError,被保存流程吞成通用失败文案
tests/uiEditorState.test.ts 补三组残缺界面图都回落到 invalid-image 的用例
|
2026-09-24 16:01:14 +08:00 |
|
k88936
|
e2e9243415
|
拒绝不是二元组的树偏移输入
src/features/ui-editor/stateTransition.ts 的 set-tree-offset 分支增加 min.length !== 2 判据:空数组会让 every 空真通过,缺坐标时 max 会算出 NaN 污染渲染消费的偏移
tests/uiEditorState.test.ts 补「[12] 与 [] 都判 invalid」用例
|
2026-09-24 16:00:13 +08:00 |
|
k88936
|
a871684bd7
|
改掉检查点漂移文案把时间戳说成轮次的说法
ui_editor/agent_tools/steps/write_back.rs 的 checkpoint_drift_message 原先输出「检查点第 1759... 轮基线 revision」,round.at 其实是秒级 Unix 时间戳;改为先给基线 revision,再标注时间戳含义
|
2026-09-24 15:58:45 +08:00 |
|
k88936
|
0e15d76046
|
让 ui-design-doc 的参数说明真正进入工具 schema
agent_native_tools.rs 给 from-images 的 images 属性挂上 texts/ui-design-doc.json 里已写好的说明,run-workflow 与 into-js 改用带 description 的单字符串 schema 生成器 one_string_input_schema_with_description,原先这三条文案没有任何引用点,模型看不到
|
2026-09-24 15:58:35 +08:00 |
|
k88936
|
ac870fd41a
|
文档登记失败时回滚本次顺带登记的设计图
ui_editor/agent_tools/creation.rs 登记文档资源失败时先摘掉 prepare_design_images 登记进来的图片条目,避免 manifest 留下没有文档引用的孤儿设计图
把「按 id 摘条目」抽成 drop_manifest_assets,rollback_created_document 复用同一实现
|
2026-09-24 15:58:24 +08:00 |
|
k88936
|
588768bff0
|
给 ui-design-doc 三个观察的 rejected 摘要统一脱敏
agent/runtime_tools/ui_design_doc.rs 让 rejected 接收项目根并复用 redact_agent_runtime_project_paths:项目上下文缺失时的报错会带上宿主路径,原先把 rejected 当成「只含模型参数」直接透出,摘要会泄露绝对路径
|
2026-09-24 15:58:08 +08:00 |
|
k88936
|
940d7b5793
|
修正 run-workflow 观察里误用文档 revision 判断清单失效
agent/runtime_tools/ui_design_doc.rs 改为在工作流结束后重读项目 revision,与开始前的项目 revision 比较;原先比较的 result.revision 是随文档重置的文档 revision,项目 revision 一超过它就永远判不出清单变化,前端会一直看到旧清单
|
2026-09-24 15:57:52 +08:00 |
|
k88936
|
1c7d90a950
|
把 ui-design-doc.run-workflow 认成可推进 revision 的验收证据
agent/runtime_protocol/acceptance_graph.rs 在 acceptance_evidence_tool_may_advance_project_revision 里补回被退役工具腾出的位置,写回文档会让 before 与 after 不同,不再被误判为 revision 不匹配
同一文件补 ui_design_doc_workflow_evidence_may_advance_project_revision 用例,锁住「证据工具」与「可推进 revision」两处识别一致
|
2026-09-24 15:57:27 +08:00 |
|
k88936
|
c844f857ef
|
交接阶段补上 ui-design-doc.from-images 设计图路径校验
tool_plan_handoff/content_validation.rs 为 from-images 的 images[].path 逐项做绝对路径与逃逸判据,恢复退役工作流工具留出的早检位
|
2026-09-24 15:48:53 +08:00 |
|
k88936
|
d082c5ab15
|
删除无人调用的 required_tool_arguments 组合封装
ui_editor/commands/utils.rs 去掉只做「找工具调用 + 解析参数」拼接的封装,识别与切分调用点都自带日志与错误映射,没有消费方
|
2026-09-24 15:46:57 +08:00 |
|
k88936
|
9694faa620
|
让节点 offset 在反序列化时缺省成零偏移
ui_editor/layout/node.rs 给 Node.offset 加 #[serde(default)],历史设计文档缺该字段时按零偏移解析
ui_editor/persistence.rs 补 legacy_nodes_without_offset_field_fall_back_to_zero_offset 锁定该回退口径
|
2026-09-24 15:45:25 +08:00 |
|
k88936
|
dc5a5a4a62
|
修复合并后 CI 失败:退役命令的残留清单与用例
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m21s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m57s
Project CI / Backend tests (pull_request) Successful in 4m0s
Project CI / Frontend tests (pull_request) Successful in 1m53s
Project CI / Native shell tests (pull_request) Successful in 5m51s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 9m13s
Project CI / Repository checks (pull_request) Successful in 2m1s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 9m20s
Project CI / AI game creator shell web tests (pull_request) Failing after 2m40s
- scripts/check-config.mjs 的 native-only 白名单删除已退役的 bind_components 与 create_ui_design_resource,两端原生能力检查重新自洽
- appSurface 的 UI 原型入口用例改断言 create_ui_design_doc_from_images,并按新契约补齐 relativePath / imageIds 返回形状
- 验证:npm run typecheck(含 skill-pack 与 check-config)、npx vitest run tests/appSurface.test.ts(211 passed / 9 skipped)
|
2026-09-24 14:21:14 +08:00 |
|
k88936
|
2873bed732
|
合并 origin/master 到 feat/ui-editor-v3
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m27s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m5s
Project CI / Native shell tests (pull_request) Failing after 1m47s
Project CI / Backend tests (pull_request) Successful in 3m53s
Project CI / Frontend tests (pull_request) Successful in 1m38s
Project CI / AI game creator shell web tests (pull_request) Failing after 38s
Project CI / Repository checks (pull_request) Failing after 1m33s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 9m0s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 9m2s
- 合入 master 179 个提交(后台管理页、游戏发行入口、AGC 运行页签、编译 warning 清理等)
- policy.rs 采用 master 版本:删除无调用方的 autonomous_design_foundation_command_is_allowed 重复名单,design-foundation 权限以 tool_policy_snapshot.rs 为准
- native-tools.json 保留双方结果:master 的描述文本 + 分支删除已退役的 ui.workflow.run.description
- useUiEditorPage.ts 保留分支的 save / saveAndGenerateCode 状态返回契约,并接上 master 的 beginUiSaveAnalytics 与 saveSource: 'auto' 埋点
- 验证:cargo check --bin genarrative-ai-game-creator-shell、npm run check:rustfmt、tsc --noEmit、vitest tests/uiEditorPage.test.ts + tests/clientAnalytics.test.tsx(47 passed)
|
2026-09-24 13:53:34 +08:00 |
|
k88936
|
a39b322af6
|
将 UI 编辑器 Agent 工具模块由 design_doc 重命名为 agent_tools
- 重命名 src-tauri/src/ui_editor/design_doc/{checkpoint,creation,mod,run_workflow,test_support}.rs 与 steps/** 到 ui_editor/agent_tools/
- 更新 main.rs、ui_editor/mod.rs、agent/runtime_tools/ui_design_doc.rs 中的模块路径引用
- 更新 steps/recognize.rs 与 steps/separate/mod.rs 内部对 agent_tools 夹具的引用
- 更新 tests/project.rs 注释中的 creation.rs 与 next_ui_design_path 模块路径
- 更新 agent_tools/test_support.rs 模块注释为 agent_tools 单测共用夹具
- 更新技术方案《UI编辑器代码地图与模块职责》《UI编辑器Agent工具化重写》的模块树与落地顺序路径
- 更新 shared-memory decision-log 中该次重写的测试过滤器为 agent_tools
|
2026-09-24 13:34:14 +08:00 |
|
k88936
|
0262e82572
|
把 write-back 步骤拆成独立模块
新增 steps/write_back.rs,承载保存 State、追加 write-back / outdated 行与漂移文案
把 rebuild_target_state 从 run_workflow.rs 移到 steps/mod.rs,作为已记录 DTO 的重放入口
run_workflow.rs 只保留输入输出类型、三步编排与检查点恢复判定
把 DRIFT_REASON 与两条漂移文案收敛到 write_back 模块,避免编排层和写回层各写一套
同步两份 UI 编辑器技术方案的模块布局与代码地图
|
2026-09-24 13:09:57 +08:00 |
|
k88936
|
6ef64c3bcf
|
将 design_doc 的切分模块提升为目录模块
把 steps/separate.rs 提升为 steps/separate/mod.rs,只保留纯 State 变换
把 design_doc/cut_images.rs 移到 steps/separate/cut_images.rs,与它服务的切分步骤同层
把 normalize_cut_image_path 从 steps/mod.rs 下沉到 steps/separate/mod.rs,紧邻两个使用点
run_workflow.rs 改从 steps::separate 统一导入切分入口与登记入口
同步两份 UI 编辑器技术方案的模块布局与代码地图
|
2026-09-24 13:05:44 +08:00 |
|
k88936
|
fbb161b33e
|
技术方案标注三个工具的落地顺序已完成
|
2026-09-23 21:51:52 +08:00 |
|
k88936
|
e8a33591c1
|
修正 run-workflow 的工具描述口径
- 明确本工具会把切分素材回填到 Image 组件、清组件状态、写 NeedReview 后写回并推进 revision
- 明确不做页面发现、多树合并与独立组件绑定,漂移时本轮作废需重新调用
|
2026-09-23 21:48:51 +08:00 |
|
k88936
|
7f4012697f
|
run-workflow 的项目权限判据与工具命令映射对齐
- 内部 enforce_project_permission_policy 改用与并行账本一致的 asset.register,避免引入无法在项目策略里配置的私有命令 ID
|
2026-09-23 21:48:12 +08:00 |
|
k88936
|
784f6f0e32
|
收敛 design_doc 未使用接口并补齐切分 sidecar 收尾
- run-workflow 干净跑完后调用 finalize_separation 清理 sidecar,有回填问题时保留给编辑器恢复,与前端切分链路一致
- 检查点恢复校验轮次归属文档,漂移与写回冲突说明带上基线 revision
- WorkflowLog 删除仅供测试的 path 访问器,测试直接用 workflow_log_path
- mod.rs 不再导出仅内部使用的 next_ui_design_path,消除未使用告警
- 技术方案同步 sidecar 收尾口径
|
2026-09-23 21:44:45 +08:00 |
|
k88936
|
544f9ac040
|
重写 UI 设计文档桥接单测到当前入口
- 退役 ensureUiDesignResourceForPrototype / findLinkedUiDesignResource 的 6 条旧用例已随实现删除而无对应导出,测试文件整体失败
- 改为覆盖 createUiDesignDocFromImages:空图片列表拒绝且不调用命令,正常调用透传项目身份与设计图引用
|
2026-09-23 21:35:57 +08:00 |
|
k88936
|
e360d12ccb
|
同步 UI 设计文档工具化重写的文档口径
- 代码地图补 design_doc 各模块与三个 Agent 工具,并标注旧工具已退役
- project-overview 用三个新工具替换 ui.workflow.run 的旧口径
- App 实施计划追加 2026-09-23 节,记录工具拆分、检查点恢复与退役范围
- decision-log 新增本次决策、取舍与验证方式
- UI 工作流资源桥接旧方案标记 historical,从 docs/README 移入历史集合
|
2026-09-23 21:33:23 +08:00 |
|
k88936
|
b8d218f741
|
注册 UI 设计文档三个 Agent 工具
- 新增 agent/runtime_tools/ui_design_doc.rs:三个工具的参数解析、项目 ID 与 provider 身份注入、manifest 失效广播
- agent_native_tools 增加三个工具的描述与入参 schema,函数名归一同时处理 '.' 与 '-'
- Runtime 可执行工具目录、并行账本命令映射、design-foundation 自主白名单同步登记
- 新增工具描述可用性与入参校验单测
|
2026-09-23 21:30:50 +08:00 |
|
k88936
|
116d9d5940
|
新增 run-workflow 编排、切图素材登记与检查点工具函数
- 新增 design_doc/run_workflow.rs:recognize → separate → write-back 编排,按检查点行恢复,文档漂移追加 outdated 并报错
- 新增 design_doc/cut_images.rs:按切分路径登记图片并构造 SpriteAsset,按路径复用 manifest 条目、失败不回滚
- persistence 新增 load_ui_design_document_snapshot_at 并让 load_ui_design_state_at 复用它
- checkpoint 新增 checkpoint_timestamp 秒级时间戳
- 切分路径归一下沉到 steps/mod.rs,separate 步骤改用共享实现
- 技术方案同步 design_doc 模块布局与 into-js 复用 persistence 的说明
|
2026-09-23 21:08:52 +08:00 |
|
k88936
|
3c4c546ed5
|
新增自动切分结果落 State 的镜像步骤
- Node 新增 find_mut,深度优先可变定位节点,镜像前端 findUiNodeLocation
- 新增 design_doc/steps/separate.rs:素材合并去重与资源校验、按 bound_nodes 回填 target_graphic、统一写 problematic_nodes 的 NeedReview
- 覆盖重复素材、缺失素材、节点缺失、非 Image 组件、已绑定其他素材与问题文案回退的单测
|
2026-09-23 19:51:16 +08:00 |
|
k88936
|
b1a356aa0d
|
新增自动切分素材构造器与 design_doc 共用夹具
- SpriteAsset 新增 path 访问器与 from_registered_image,镜像前端 prepareSpriteAssetBatch 的空名称、无边框、像素比 1 口径
- 新增 design_doc/test_support.rs,集中 State、节点、素材的最小构造夹具
- recognize 单测改用共用夹具,删除本地重复的 image/state_with/root 构造
|
2026-09-23 19:41:01 +08:00 |
|
k88936
|
b34f1c9b3a
|
新增结构识别结果落 State 的镜像步骤
- design_doc/steps/recognize.rs:apply_recognition 整树替换,并按 DTO 顺序逐棵重推横向偏移
- 镜像 deriveTreeOffset / treeSize 与 UI_TREE_PADDING=48,先落位的树把后面的树推到右边
- 设计图缺失或像素比非法时按前端同口径报「界面图 X 缺少合法尺寸」
- 三个单测覆盖左右排布、整树替换与缺失设计图失败
|
2026-09-23 19:32:13 +08:00 |
|
k88936
|
f9a2cbe26e
|
新增工作流检查点日志模块
- design_doc/checkpoint.rs:run / recognize / separate / write-back / outdated 五种行
- 路径推导 ui/.<文档名>-workflow.jsonl,与文档同级且不进 manifest
- 追加时先截断崩溃留下的半行再一次性写入并 sync,避免半行夹在日志中间
- 扫描只保留最后一轮,写回或 outdated 视为轮次结束;坏行失败关闭
- 载荷一律按 serde_json::Value 存回,模块不认识业务 DTO 与 State 类型
- 六个单测覆盖路径推导、轮次遮蔽、两种结束行、半行丢弃与坏行失败
|
2026-09-23 19:24:07 +08:00 |
|
k88936
|
8ac8f2ff5d
|
补充 run-workflow 的轮次、漂移与写回幂等口径
- 检查点行补充 outdated 与起始 revision,明确 write-back / outdated 都是轮次结束行
- 追加前截断半行,避免崩溃留下的半行夹在日志中间
- 文档中途漂移时追加 outdated 并返回错误,由下一次调用显式开新一轮,不在同一次调用内自动重启
- 写回按「目标 State 与文档当前 State 相等」判幂等,并记录该判据成立的前提
- 切图资源失败不回滚,NeedReview 由 separation DTO 的 problematic_nodes 在编排阶段统一回写
|
2026-09-23 19:12:19 +08:00 |
|
k88936
|
648ead2150
|
新增 UI 设计文档创建入口 create_ui_design_doc_from_images
- 新增 ui_editor/design_doc/creation.rs:由一至四张设计图新建文档,未登记路径顺带登记成 ui-design 图片资源,文档内设计图身份取图片 assetId
- persistence.rs 把单图初始化泛化为 initialize_ui_design_state_with_images_at,支持多张设计图并拒绝重复
- 删除 resource_bridge.rs 与 create_ui_design_resource、ensure_ui_design_resource_for_prototype 两个命令,取消「原型 → 已存在文档」的幂等查找
- main.rs 注册 create_ui_design_doc_from_images 并移除两个旧命令注册项
- 前端 uiDesignResourceBridge 改为调用新命令,project-development 去掉 ui-workflow.completed 的自动打开与阶段跳转分支
- 代码地图同步 design_doc 模块与关键命令列表,测试改为覆盖新入口的编号避让
|
2026-09-23 18:14:15 +08:00 |
|
k88936
|
665788760e
|
新增 UI 设计文档工具的提示词目录模块
- 新增 prompts/runtime/texts/ui-design-doc.json,承载 from-images、run-workflow、into-js 三个工具的描述与参数文案
- manifest.json 的 textCatalogs 登记 uiDesignDoc 目录
|
2026-09-23 17:51:40 +08:00 |
|
k88936
|
02e29ba555
|
新增 UI 编辑器 Agent 工具化重写技术方案
- 新增技术方案:三个工具契约、两步工作流、JSONL 检查点、Rust 与提示词目录模块布局、落地顺序
- 代码地图同步退役 merge/binding/workflow.rs、关键命令列表与类型文件数量
- docs/README.md 收录该方案
|
2026-09-23 17:49:27 +08:00 |
|
k88936
|
3a35127b3b
|
记录 UI 设计文档与检查点日志术语及 ADR
- CONTEXT.md 新增 UI 设计文档、设计图、UI 工作流步骤、工作流检查点日志四个词条
- 新增 ADR 说明检查点采用追加式 JSONL 日志并记录两种被否方案
- docs/README.md 收录该 ADR
|
2026-09-23 17:47:00 +08:00 |
|
k88936
|
fb49b5fc5d
|
前端移除 UI 编辑器合并与绑定调用
- 删除 features/ui-editor/merge.ts 与 MergeDTO、BindingDTO、BindingChange 类型文件
- useUiEditorPage 去掉 mergeUi 操作、合并运行态、合并状态与投影字段
- isAiRunning 不再把合并运行态计入编辑器忙状态
|
2026-09-23 17:46:06 +08:00 |
|
k88936
|
31a1660e41
|
退役 UI 编辑器多树合并与组件绑定链路
- 删除 ui_editor/commands/merge.rs 与 binding.rs 两个实现及其 MergeDTO、BindingDTO
- commands/mod.rs 去掉两个模块声明、DTO 导出与 impl 再导出
- main.rs 去掉 merge_ui、bind_components 两个 Tauri 命令及注册项
|
2026-09-23 17:44:48 +08:00 |
|
k88936
|
006d278e9f
|
退役 Agent 侧 ui.workflow.run 工作流工具
- 删除 ui_editor/workflow.rs 与 agent/runtime_tools/ui_workflow.rs 两个工作流实现模块
- agent_native_tools 去掉 ui.workflow.run 的工具描述与 schema 分支
- prompts/runtime/texts/native-tools.json 删除 ui.workflow.run.description 文案
- runtime_tools/policy、tool_policy_snapshot、parallel_ledger、project_gates 移除该工具的白名单与门禁引用
- action_execution 去掉 ui.workflow.run 分发分支,action_audit 删除整块工作流审计与枚举项
- runtime_protocol 的 verification 与 acceptance_graph 去掉工作流校验项
- tool_plan_handoff/content_validation 去掉 ui-design pages 校验分支
- ui_editor/mod.rs 去掉 workflow 模块声明
|
2026-09-23 17:43:48 +08:00 |
|
k88936
|
26c6bdbbd5
|
同步文档:界面图参考语义建议退役
Project CI / Backend tests (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
Project CI / Frontend tests (pull_request) Has been cancelled
Project CI / Repository checks (pull_request) Has been cancelled
Project CI / AI game creator shell web tests (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust crates (pull_request) Has been cancelled
Project CI / AI game creator shell Rust smoke (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
- UI 编辑器代码地图更新 resource/commands 职责、关键命令列表、两步工作流与类型文件数量
- UI 工作流资源桥接文档改为普通桥接从 structure-recognition 开始
- UI 编辑器工作流完成通知弹窗文档收敛为两个动作并删除分析参考图文案
- UI 编辑会话模块边界删除 suggestion seam 描述
- App 实施计划追加 2026-09-23 退役条目覆盖旧 slave_to 口径
- decision-log 记录退役决策、合并优先级恒 0 与无迁移后果及验证结果
|
2026-09-23 13:30:13 +08:00 |
|
k88936
|
81dc7b0cd6
|
前端移除分析参考图步骤与界面图元数据编辑
- model.ts 收敛为“识别界面结构 / 自动切分素材”两步并删除界面角色标签表
- 删除 suggestion 异步操作、结果通知分支、uiDesignSuggestions 与其 ts-rs 生成类型
- InputSidebar、InspectorSidebar、PreviewWorkspace 的界面图显示名改用 path basename,Inspector 只保留尺寸与资源 ID
- 删除因步骤退役而不可达的 ImportOverview,ToolNavigation 改为两格,删除“清空界面归属”提示
- requisites 删除角色/归属前置校验与参考图分析结果校验,importAdapter 不再写入界面图元数据
- 测试夹具去掉界面图元数据,删除界面角色与归属用例,历史用例改用 sprite 名称断言
|
2026-09-23 13:30:04 +08:00 |
|
k88936
|
e18a398cdf
|
退役界面图参考语义建议的 Rust 链路
- 删除 ui_editor/commands/ui_design_suggestion.rs 与 main.rs 的 suggest_ui_design_semantic 命令注册
- 收敛 UIDesignImage 为 path/pixel_size/pixels_per_unit,删除 UIDesignImageRole 与 UIDesignImageMetadata
- 结构识别改为每张界面图各自一棵树,删除 recognition_root_image_ids 与 slave_image_ids 及 ROOT/SLAVE 上下文标注
- 多树合并删除 slave_to 祖先链优先级,输入树优先级恒置 0 并留 TODO
- 持久化校验删除 slave_to 引用与环校验,html 片段注释不再携带界面图 name/description
- 页面级工作流构造页面设计图时不再写入界面图元数据
|
2026-09-23 13:29:39 +08:00 |
|
k88936
|
d8c19d9187
|
新增 UI 编辑器代码地图与模块职责文档
- 定义 `Rust` 权威层、`React` 会话层与视图层的职责边界
- 描述数据流、关键模块设计与核心命令
- 补充扩展指引与关联文档链接
- 更新 `docs/README.md` 引用路径
|
2026-09-23 11:46:31 +08:00 |
|
k88936
|
d5e06de33e
|
固化键盘菜单键不被右键手势拦截的口径
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m58s
Project CI / Backend tests (pull_request) Failing after 12s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 3m57s
Project CI / Frontend tests (pull_request) Successful in 3m6s
Project CI / Repository checks (pull_request) Failing after 11s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m41s
Project CI / Native shell tests (pull_request) Successful in 6m13s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 9m32s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 10m50s
- 实测 Chromium 151 下键盘菜单键触发的是 button: -1,previewRightPanGesture 注释写明只认按钮 2 的原因
- previewRightPanGesture.test.ts 增加 button: -1 不拦截的判据用例
- previewRightPanDrag.test.tsx 增加键盘菜单键仍走原有节点菜单路径的集成用例
- decision-log 条目补上该实测结论与新增用例的验证口径
验证:npx vitest run previewRightPanDrag.test.tsx previewRightPanGesture.test.ts(13 passed)
|
2026-09-22 15:35:51 +08:00 |
|
k88936
|
0ab04d0f64
|
预览画布接入右键拖拽平移
- PreviewWorkspace 右键按下记录起手并捕获指针,越过共用阈值后按起点全量 delta 平移视口,抬起时由 resolvePreviewRightPanRelease 裁决平移还是节点菜单
- 捕获阶段拦截按钮 2 的 contextmenu,拦截窗口保留到下一次指针按下之前,兼容"按下触发"与"抬起后触发"两类平台时序
- 右键抬起用 [data-node-id] 加树容器新增的 data-tree-id 命中节点,沿用"右键即选中该节点"语义;未平移但抬起在预览外时不弹菜单,空白网格右键静默
- 视口接线共享 isPanning,让空格、中键、右键三个平移绑定共用 grabbing 光标;onPointerCancel 拆成不进菜单的独立处理
- 新增 tests/previewRightPanDrag.test.tsx:右键拖拽只平移不弹菜单、阈值内仍弹菜单、空白右键不改选择、预览外抬起不弹、非右键 contextmenu 仍即时、中键平移回归、右键平移后左键拖动仍可用
验证:npx vitest run 定向 7 个文件 59 passed、apps/ai-game-creator-shell npx tsc --noEmit、改动文件 eslint、npm run check:encoding、git diff --check
|
2026-09-22 15:32:19 +08:00 |
|
k88936
|
f525b6dc70
|
新增预览右键平移手势状态机
- 新增 previewRightPanGesture.ts:按下起手、按共用阈值判定是否进入平移、按起点全量 delta 复用 moveViewportFromPan 算视口
- 抬起裁决统一收口到 resolvePreviewRightPanRelease:平移过就只回视口,未平移且在预览内才按节点菜单处理
- shouldInterceptRightContextMenu 记录"按钮 2 且处于右键按下序列"的拦截窗口,兼容按下触发与抬起后触发的两类平台时序
- 新增 tests/previewRightPanGesture.test.ts 覆盖阈值边界、越阈值后不回弹、全量 delta、预览外抬起与拦截判据
验证:npx vitest run previewRightPanGesture.test.ts(5 passed)
|
2026-09-22 15:27:30 +08:00 |
|
k88936
|
96e7ba7808
|
预览拖动阈值抽成公共常量模块
- 新增 previewDragThreshold.ts,导出 DRAG_THRESHOLD_SCREEN_PX 与屏幕坐标阈值判定 passedDragThresholdScreen
- useNodeTransformInteraction 删除本地阈值常量,改为复用该模块,左键拖动/缩放行为不变
验证:npx vitest run useNodeTransformInteraction.test.tsx previewWorkspaceZoom.test.tsx(18 passed)
|
2026-09-22 15:26:11 +08:00 |
|
k88936
|
65e06c4808
|
记录预览画布右键拖拽平移的交互约定
- decision-log 新增 2026-09-22 条目:右键拖拽平移的判定链、菜单改到抬起弹出、按下即拦截 contextmenu 的实测依据与代价
- 【UI编辑器】拖动变换提交边界补「视口平移不写 State、不进历史」以及右键平移与节点菜单按同一拖动阈值互斥的约定
- 同一文档的实现边界补拖动阈值落点 previewDragThreshold.ts 与右键裁决落点 previewRightPanGesture.ts
|
2026-09-22 15:25:32 +08:00 |
|
k88936
|
4cd5fb8d72
|
Merge remote-tracking branch 'origin/master' into feat/ui-editor-v3
# Conflicts:
# apps/ai-game-creator-shell/src/features/resource-canvas/resourceCanvasAssetGenerationQueue.ts
# apps/ai-game-creator-shell/src/features/resource-canvas/useResourceCanvasGenerationPlaceholders.ts
# apps/ai-game-creator-shell/tests/resourceCanvasGenerationFloatingPanel.test.tsx
# docs/project-memory/shared-memory/decision-log.md
|
2026-09-22 14:08:41 +08:00 |
|
k88936
|
47c07f9d12
|
迁移节点变换交互测试接口
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Successful in 4m8s
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Successful in 4m25s
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Successful in 4m24s
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Successful in 5m13s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m34s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m39s
Project CI / Frontend tests (pull_request) Successful in 5m56s
Project CI / AI game creator shell web tests (pull_request) Successful in 8m34s
Project CI / Repository checks (pull_request) Successful in 15m18s
Project CI / Native shell tests (pull_request) Successful in 22m28s
Project CI / Backend tests (pull_request) Successful in 27m38s
将旧单树测试夹具改为 trees 与 logicalSizes 参数
为拖拽和缩放入口补充所属 treeId 并更新树移除语义
|
2026-09-18 22:33:21 +08:00 |
|
k88936
|
0904184412
|
校正预览上下文菜单测试
覆盖上下文菜单回调的可选树标识参数
区分编辑器树目标与最终预览的无树标识回调
|
2026-09-18 22:18:58 +08:00 |
|
k88936
|
aaa2eb482a
|
更新最终预览框线测试语义
无框线场景不再传入选中节点以匹配选中态高亮规则
保留显式 showFrame 时的选中框与控制点断言
|
2026-09-18 22:08:53 +08:00 |
|
k88936
|
1679e72deb
|
修正删除快捷键页面测试
从仍挂载的窗口目标触发全局删除快捷键
按全部同名节点消失断言删除结果
|
2026-09-18 22:05:16 +08:00 |
|
k88936
|
4844543061
|
补齐检查提示动画测试名称
让动画 mock 匹配仅重启提示动画的现役筛选逻辑
保留非提示动画不被重启的生产行为
|
2026-09-18 22:00:58 +08:00 |
|
k88936
|
99132c9fa7
|
补齐 UI 状态持久化测试偏移字段
让当前 schema 夹具继续验证原有业务约束
|
2026-09-18 21:41:55 +08:00 |
|
k88936
|
944d2aa3db
|
更新 UI 编辑器返回交互测试
按现役浮动关闭按钮的可访问名称查询
|
2026-09-18 21:14:57 +08:00 |
|
k88936
|
7c16a35fda
|
兼容缺少偏移量的预览运行数据
校验 offset 前安全处理旧状态和测试夹具
|
2026-09-18 20:14:24 +08:00 |
|
k88936
|
e4369cd82e
|
Merge remote-tracking branch 'origin/master' into feat/ui-editor-v3
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Failing after 5m0s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m54s
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Failing after 7m15s
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Failing after 6m32s
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Successful in 6m56s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m21s
Project CI / Frontend tests (pull_request) Failing after 4m23s
Project CI / Repository checks (pull_request) Failing after 5m22s
Project CI / Native shell tests (pull_request) Successful in 9m10s
Project CI / Backend tests (pull_request) Successful in 9m41s
Project CI / AI game creator shell web tests (pull_request) Failing after 5m32s
# Conflicts:
# apps/ai-game-creator-shell/tests/uiEditorPage.test.ts
# docs/project-memory/shared-memory/decision-log.md
|
2026-09-18 18:44:11 +08:00 |
|
k88936
|
54b9bd4354
|
同步节点偏移量 TypeScript 绑定
更新 ts-rs 生成的 NodeOffset 类型文件
|
2026-09-18 17:30:53 +08:00 |
|
k88936
|
365e530b5f
|
修正测试偏移类型导入
从公开 offset 模块导入 NodeOffset
|
2026-09-18 17:23:06 +08:00 |
|
k88936
|
d46cdfb282
|
抽取保存结果弹窗操作底栏
统一关闭与重试按钮的布局和样式
|
2026-09-18 17:17:45 +08:00 |
|
k88936
|
2142027f85
|
简化保存结果弹窗内容分支
用显式早返回替换嵌套三元渲染
|
2026-09-18 17:15:50 +08:00 |
|
k88936
|
8fdf39f37e
|
清理预览初始适配无效依赖
移除仅通过 ref 读取的画布尺寸依赖
|
2026-09-18 17:14:16 +08:00 |
|
k88936
|
70c65c37d5
|
保证拖拽释放提交最新偏移
从指针释放坐标直接计算树位置
|
2026-09-18 17:12:30 +08:00 |
|
k88936
|
e72637789c
|
校验预览树偏移坐标
仅将有限偏移量纳入画布布局
|
2026-09-18 17:11:23 +08:00 |
|
k88936
|
0a102ea1c3
|
合并预览节点类型导入
复用单一 Node 类型导入声明
|
2026-09-18 17:10:04 +08:00 |
|
k88936
|
1ab7fa9991
|
校验预览画布像素比例
避免无效 pixels_per_unit 产生无限尺寸
|
2026-09-18 17:09:17 +08:00 |
|
k88936
|
6d02a0c29f
|
移除无读取的代码生成错误状态
删除失效的 generateError 状态及写入路径
|
2026-09-18 17:04:10 +08:00 |
|
k88936
|
a6c3db60fb
|
收窄编辑器操作生命周期接口
移除未被调用的 setRunning 与 reset 暴露
|
2026-09-18 16:57:42 +08:00 |
|
k88936
|
c921ae3b16
|
简化编辑器概览分支渲染
用显式条件替换嵌套三元表达式
|
2026-09-18 16:52:37 +08:00 |
|
k88936
|
31c084fce6
|
保留保存失败的底层错误信息
将实际异常传递到保存状态和重试提示
|
2026-09-18 16:48:53 +08:00 |
|
k88936
|
1e7a3f17ff
|
避免返回确认与失败弹窗重叠
返回路径保存失败时沿用确认弹窗错误状态
|
2026-09-18 16:45:43 +08:00 |
|
k88936
|
3ce2977e32
|
固定节点偏移量 TypeScript 元组导出
为二维数组字段补充 ts-rs 元组覆盖
|
2026-09-18 16:43:26 +08:00 |
|
k88936
|
f4e9414d63
|
限定状态提示动画重启动范围
仅重启动 UI 编辑器关注动画而不影响过渡效果
|
2026-09-18 16:41:12 +08:00 |
|
k88936
|
2d8b51885a
|
优化切分概览卡片布局
将窄侧栏概览调整为两列网格
|
2026-09-18 16:39:39 +08:00 |
|
k88936
|
91f534ed66
|
优化识别概览卡片布局
将窄侧栏概览调整为两列网格
|
2026-09-18 16:38:25 +08:00 |
|
k88936
|
f455d3edb2
|
清理未使用的界面图校验码
移除不会被发出的 missing-image 类型
|
2026-09-18 16:37:48 +08:00 |
|
k88936
|
bec225436f
|
简化状态节点轮询索引逻辑
用显式分支替换嵌套三元表达式
|
2026-09-18 16:35:25 +08:00 |
|
k88936
|
ce309a3b28
|
忽略未定义的节点元数据补丁
保留部分更新对未提供字段的原有语义
|
2026-09-18 16:33:37 +08:00 |
|
k88936
|
abd95a6231
|
消除复制路径未处理拒绝
复制失败仅保留界面错误状态
|
2026-09-18 16:31:04 +08:00 |
|
k88936
|
08c3b89b67
|
修复跨树节点选择同步界面图
选择节点时同步激活所属设计图
|
2026-09-18 16:28:49 +08:00 |
|
k88936
|
3371337346
|
修复树节点回调未使用参数
为跨树选择回调参数添加下划线前缀
|
2026-09-18 16:25:54 +08:00 |
|
k88936
|
899a591cda
|
区分语义建议工具调用缺失错误
恢复缺失工具调用的独立日志阶段和提示
|
2026-09-18 16:23:27 +08:00 |
|
k88936
|
0988c4907a
|
区分识别工具调用缺失错误
恢复识别工具缺失的独立日志阶段和提示
|
2026-09-18 16:20:49 +08:00 |
|
k88936
|
d370648867
|
区分合并工具调用缺失错误
恢复缺失工具调用的独立日志阶段和提示
|
2026-09-18 16:13:58 +08:00 |
|
k88936
|
4f4fb0873c
|
修复切分命令测试节点构造
补齐 NodeOffset 默认值以恢复 Rust 测试构建
|
2026-09-18 16:09:03 +08:00 |
|
k88936
|
6b8a106414
|
修复合并命令测试节点构造
补齐 NodeOffset 默认值以恢复 Rust 测试构建
|
2026-09-18 16:08:53 +08:00 |
|
k88936
|
55a8513de4
|
更新UI编辑器深模块架构文档
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Failing after 4m16s
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Failing after 4m23s
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Failing after 4m24s
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Failing after 4m26s
Project CI / Backend tests (pull_request) Failing after 13s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m52s
Project CI / Repository checks (pull_request) Failing after 11s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 3m28s
Project CI / Frontend tests (pull_request) Failing after 3m30s
Project CI / AI game creator shell web tests (pull_request) Failing after 4m33s
Project CI / Native shell tests (pull_request) Successful in 9m17s
记录状态迁移、几何、不变量与操作生命周期 seam
同步结构化 LLM 适配器边界与验证结果
|
2026-09-18 10:24:03 +08:00 |
|
k88936
|
d986dbaeb0
|
收敛UI编辑器结构化LLM动作适配器
统一必需 tool-call 定位与有界 JSON 参数解析
让语义建议、结构识别、组件绑定和多树合并复用稳定机械
保留各操作的 prompt、schema、领域校验与 materializer
|
2026-09-18 10:23:35 +08:00 |
|
k88936
|
16c6b9198e
|
深化UI编辑器前端状态与几何模块
新增 React-free 语义状态迁移 seam
收敛 State 级节点几何与保存前不变量校验
统一四类异步编辑器操作生命周期
补充状态迁移和不变量测试
|
2026-09-18 10:23:04 +08:00 |
|
k88936
|
4df4708ba1
|
Merge remote-tracking branch 'origin/master' into feat/ui-editor-v3
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Failing after 3m0s
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Failing after 3m4s
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Failing after 3m7s
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Failing after 3m9s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m41s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m32s
Project CI / Frontend tests (pull_request) Failing after 4m47s
Project CI / Repository checks (pull_request) Failing after 4m39s
Project CI / Native shell tests (pull_request) Successful in 7m14s
Project CI / Backend tests (pull_request) Successful in 8m12s
Project CI / AI game creator shell web tests (pull_request) Failing after 2m54s
# Conflicts:
# docs/project-memory/shared-memory/pitfalls.md
|
2026-09-16 14:57:26 +08:00 |
|
k88936
|
1e992bcdf8
|
扩大未知 JavaScript 异常上报原则
Project CI / AI game creator shell Rust smoke (pull_request) Has been cancelled
Project CI / AI game creator shell Rust crates (pull_request) Has been cancelled
Project CI / Backend tests (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
Project CI / Frontend tests (pull_request) Has been cancelled
Project CI / Repository checks (pull_request) Has been cancelled
Project CI / AI game creator shell web tests (pull_request) Has been cancelled
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Has been cancelled
明确所有未解决和非契约化 JS 异常必须继续抛出
说明用户 fallback 不得替代全局 error report 链路
|
2026-09-14 19:47:08 +08:00 |
|
k88936
|
8368aa262c
|
补充剪贴板异常上报约定
记录 UI fallback 后仍需抛出原始原生错误
明确未知异常必须进入 error report 链路
|
2026-09-14 19:43:08 +08:00 |
|
k88936
|
e9ddbf16da
|
重构预览网格步长计算
提取预览网格自适应步长到独立模块
补充缩放网格计算与背景样式测试
同步预览画布缩放交互文档
|
2026-09-14 19:40:13 +08:00 |
|
k88936
|
22ac1f4c0b
|
修复 UI 编辑器剪贴板写入权限
为主窗口补充 clipboard-manager 写文本权限
保留手动复制提示并继续抛出原始 Tauri 剪贴板错误
|
2026-09-14 19:39:34 +08:00 |
|
k88936
|
9910a0eec0
|
优化 UI 编辑器复制反馈布局
将复制失败提示与操作按钮分离排列
|
2026-09-14 19:06:15 +08:00 |
|
k88936
|
70981b9ca9
|
完善 UI 编辑器结果弹窗覆盖
增加普通保存成功与保存后生成失败的场景断言
验证路径弹窗和失败重试按钮的可见行为
|
2026-09-14 19:01:44 +08:00 |
|
k88936
|
8a0d5600b3
|
拆分 UI 编辑器路径复制按钮
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Failing after 2m27s
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Failing after 2m23s
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Failing after 2m5s
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Failing after 2m8s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m57s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m15s
Project CI / Frontend tests (pull_request) Failing after 3m22s
Project CI / Repository checks (pull_request) Successful in 3m38s
Project CI / Native shell tests (pull_request) Successful in 6m42s
Project CI / AI game creator shell web tests (pull_request) Failing after 3m12s
Project CI / Backend tests (pull_request) Successful in 8m24s
将剪贴板状态与写入逻辑提取为独立小组件
保持保存结果弹窗只负责结果布局与动作编排
|
2026-09-14 18:59:51 +08:00 |
|
k88936
|
184d88dbb8
|
修复多树预览受左侧选中图片限制
移除 activeImageId 对预览拖动和缩放手势的门控
按树 wrapper 提供几何上下文并允许任意树操作
保留 activeImageId 仅用于左侧图片与图片级检查
|
2026-09-14 18:59:51 +08:00 |
|
k88936
|
791794c0a6
|
记录 UI 编辑器保存结果弹窗约定
补充保存与代码生成结果弹窗及相对路径复制行为
记录复制失败、重试和保存并返回边界
|
2026-09-14 18:59:51 +08:00 |
|
k88936
|
9cfb47d945
|
补充 UI 编辑器保存结果测试
覆盖保存和生成成功弹窗与项目相对路径复制
覆盖保存失败、冲突和剪贴板失败反馈
|
2026-09-14 18:59:51 +08:00 |
|
k88936
|
27859d3e19
|
接入 UI 编辑器保存结果弹窗
让普通保存和保存并生成流程返回结构化结果
将成功与失败反馈接入独立弹窗并保留保存并返回直返行为
|
2026-09-14 18:59:51 +08:00 |
|
k88936
|
43f3780a38
|
新增 UI 编辑器保存结果弹窗
新增保存成功、代码生成成功和失败状态弹窗
提供项目相对路径复制按钮及复制失败提示
|
2026-09-14 18:59:51 +08:00 |
|
k88936
|
a1f9149c27
|
UI编辑器移除预览模式残留类型
完成三开关替代 render mode 的类型清理
|
2026-09-14 18:59:51 +08:00 |
|
k88936
|
f0bba18841
|
UI编辑器收口多树上下文菜单目标
预览菜单携带所属树 ID
避免非当前图片树的结构操作写错目标
|
2026-09-14 18:59:51 +08:00 |
|
k88936
|
f679cfa179
|
UI编辑器完善多树创建与文档契约
统一识别和合并结果的 createTree 流程
按选中节点所属树驱动 Inspector 编辑
补充多树预览与树级偏移权威文档
|
2026-09-14 18:59:50 +08:00 |
|
k88936
|
f68ffcfecd
|
UI编辑器补充合并树偏移构造
为合并产出的节点补齐 NodeOffset
|
2026-09-14 18:59:50 +08:00 |
|
k88936
|
ec94a4fe00
|
UI编辑器重构多树预览与独立开关
预览画布同时渲染全部界面树并支持树级拖动
拆分显示框线、原图和组件开关
预览节点选择与左侧当前图片解耦
|
2026-09-14 18:59:50 +08:00 |
|
k88936
|
46f8592375
|
UI编辑器补充树级偏移模型
新增 Node offset min/max 数据结构
统一新树默认横向布局入口
增加树级偏移状态更新操作与实施计划
|
2026-09-14 18:59:50 +08:00 |
|
k88936
|
cdf2882302
|
补齐自动切分概览字体属性
向 SeparationOverview 传入 fonts 数据
修复 UI 编辑器 TS2741 类型错误
|
2026-09-14 18:59:50 +08:00 |
|
k88936
|
d156113e71
|
修复 UI 编辑器待办循环高亮动画
修复受控树选中回调清除 Inspector 高亮的问题
循环游标同时使用界面树与节点 ID
补充多节点循环和动画重启回归测试
|
2026-09-14 18:59:50 +08:00 |
|
k88936
|
a8f2ac17be
|
注释掉 InspectorSidebar 中的 LayoutEditor 组件以暂时禁用布局编辑功能
|
2026-09-14 18:59:50 +08:00 |
|
k88936
|
43ac9a5761
|
补充 UI 编辑器交互回归测试
从实际节点事件目标验证删除快捷键
验证 portal 右键菜单启用后会执行操作并关闭
|
2026-09-14 18:59:50 +08:00 |
|
k88936
|
e992e0b35c
|
压缩 UI 编辑器概览布局
将识别概览指标改为四列横向排列
将素材切分概览改为四列网格以减少纵向高度
|
2026-09-14 18:59:50 +08:00 |
|
k88936
|
e389b54a3a
|
修复 UI 预览画布交互
为无限视口添加跟随平移和缩放的点阵背景
恢复画布快捷缩放与初始适配比例控制
保留节点平移选择并屏蔽浏览器原生拖拽选择
|
2026-09-14 18:59:50 +08:00 |
|
k88936
|
84c780a6f8
|
重构 UI 编辑器全屏外壳
通过 portal 将资源编辑器挂载到 body 并覆盖标题栏以下区域
移除外层 FocusTrap,保留内部确认对话框的模态行为
统一左右浮动面板的顶部与底部留白
|
2026-09-14 18:59:50 +08:00 |
|
k88936
|
03f900fbe5
|
布局重构:
- 预览改为全区域背景层。
- 左右面板、顶部流程条改为覆盖层,可遮挡预览。
- 左右面板开合状态仅保存在当前 React 会话。
- 增加左右面板“收起/展开”入口。
- 编辑器关闭入口改为单独的 ×,继续通过 onBack 注入关闭逻辑。
- 保留全局顶部栏与现有快捷键、业务状态、保存流程。
- 底层页面仍由现有父级路由控制,不新增 URL 状态。
|
2026-09-14 18:59:50 +08:00 |
|