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 |
|
k88936
|
411f49a65d
|
Merge pull request 'UI编辑器自动分图层切图标' (#304) from feat/ui-editor-auto-seperation into master
Project CI / AI game creator shell Rust shard 1/4 (push) Successful in 5m9s
Project CI / AI game creator shell Rust shard 2/4 (push) Successful in 4m33s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m31s
Project CI / AI game creator shell Rust shard 3/4 (push) Successful in 4m27s
Project CI / AI game creator shell Rust shard 4/4 (push) Successful in 4m26s
Project CI / AI game creator shell Rust crates (push) Successful in 2m0s
Project CI / Frontend tests (push) Successful in 4m14s
Project CI / Repository checks (push) Successful in 3m25s
Project CI / Backend tests (push) Failing after 5m18s
Project CI / Native shell tests (push) Successful in 6m55s
Project CI / AI game creator shell web tests (push) Successful in 3m17s
Reviewed-on: #304
|
2026-09-14 18:59:00 +08:00 |
|
kdletters
|
e8403e547b
|
补齐游戏从策划到成品的完整生产流程
Project CI / AI game creator shell Rust shard 1/4 (push) Successful in 5m15s
Project CI / AI game creator shell Rust shard 2/4 (push) Successful in 4m33s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m33s
Project CI / AI game creator shell Rust shard 3/4 (push) Successful in 4m29s
Project CI / AI game creator shell Rust shard 4/4 (push) Successful in 4m19s
Project CI / AI game creator shell Rust crates (push) Successful in 1m53s
Project CI / Frontend tests (push) Successful in 4m10s
Project CI / Repository checks (push) Successful in 3m19s
Project CI / Native shell tests (push) Successful in 6m39s
Project CI / Backend tests (push) Successful in 7m27s
Project CI / AI game creator shell web tests (push) Successful in 3m6s
新增 AGC 完整游戏生产 workflow Skill,定义策划、资源、实现、构建、试玩和交付阶段。
将真实美术生成、处理、登记和接入从可选提示改为新游戏交付链路要求。
同步 Skill Pack 清单、系统提示、测试契约和实施计划文档。
|
2026-09-14 18:43:12 +08:00 |
|
kdletters
|
90d216e241
|
Merge remote-tracking branch 'origin/master'
Project CI / AI game creator shell Rust shard 1/4 (push) Successful in 4m58s
Project CI / AI game creator shell Rust shard 2/4 (push) Successful in 4m38s
Project CI / AI game creator shell Rust shard 3/4 (push) Successful in 4m27s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m41s
Project CI / AI game creator shell Rust shard 4/4 (push) Successful in 4m21s
Project CI / AI game creator shell Rust crates (push) Successful in 1m55s
Project CI / Frontend tests (push) Successful in 4m32s
Project CI / Repository checks (push) Successful in 3m34s
Project CI / Native shell tests (push) Successful in 7m1s
Project CI / Backend tests (push) Successful in 7m36s
Project CI / AI game creator shell web tests (push) Successful in 3m15s
|
2026-09-14 18:35:22 +08:00 |
|
kdletters
|
c799d00a93
|
记录分支保护现状:不把 Project CI 配成合并必需检查
复核后确认本仓库不把 Project CI 的 context 配成 master 分支保护的合并必需检查,合并前由人工
确认最近一次结果。据此把文档里"必须设为合并必需检查 / 需补 6 个新 context"的强制口径改成
与现状一致,避免下次有人照着一个不执行的待办去逐个勾选 context:
- 开发运维文档:说明当前不配 required context(代价是门禁红了不会自动阻止合并),把 11 个
context 清单降级为"将来若要启用时的清单",并保留"不能残留已不再上报的旧 job 名,否则 PR
会永远停在等待该检查"这一条;master 交付口径里"当前 head 的七个 required context 全绿"
改为"最近一次 Project CI 全绿"。
- shared-memory/decision-log:AGC 壳分片那条的"影响范围"不再把它列为待补 context 的待办。
- shared-memory/pitfalls:置顶条目新增"分支保护口径",并把旧条目里"要补齐两个新 AGC
context"改成"确认没有残留旧 job 名"。
- .craft 的 gitea-ci-triage 技能同步为"改 job 集合或 job 名不需要同步分支保护"。
验证:prettier、check:encoding、check:doc-index 通过。
Co-authored-by: DotCraft <273930855+dotcraft-ai@users.noreply.github.com>
|
2026-09-14 18:35:00 +08:00 |
|
lhk229
|
2b5ce24a97
|
Merge branch 'master' into feat/ui-editor-auto-seperation
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Successful in 4m48s
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Successful in 4m21s
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Successful in 4m16s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m33s
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Successful in 3m55s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m52s
Project CI / Frontend tests (pull_request) Successful in 4m10s
Project CI / Repository checks (pull_request) Successful in 3m14s
Project CI / Native shell tests (pull_request) Successful in 6m35s
Project CI / Backend tests (pull_request) Successful in 7m32s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m58s
|
2026-09-14 18:31:38 +08:00 |
|
lhk229
|
a70ef2d6e1
|
Merge pull request 'Opt/win ssache' (#354) from opt/win-ssache into master
Project CI / AI game creator shell Rust shard 2/4 (push) Successful in 5m21s
Project CI / AI game creator shell Rust shard 3/4 (push) Successful in 5m27s
Project CI / AI game creator shell Rust shard 4/4 (push) Successful in 5m30s
Project CI / AI game creator shell Rust shard 1/4 (push) Successful in 5m37s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m32s
Project CI / AI game creator shell Rust crates (push) Successful in 2m19s
Project CI / Repository checks (push) Successful in 3m6s
Project CI / Frontend tests (push) Successful in 4m18s
Project CI / Native shell tests (push) Successful in 6m25s
Project CI / Backend tests (push) Successful in 7m18s
Project CI / AI game creator shell web tests (push) Successful in 2m58s
Reviewed-on: https://git.genarrative.world/git/GenarrativeAI/Genarrative/pulls/354
|
2026-09-14 18:15:12 +08:00 |
|
lhk229
|
0fea75952a
|
保留显式 sccache wrapper 路径
探测成功后将用户配置的 wrapper 原样交给 Cargo
|
2026-09-14 18:15:12 +08:00 |
|
lhk229
|
25769ad5e8
|
更新 AGC 构建版本
同步 AI Game Creator Shell 的包、Tauri 和锁文件版本
|
2026-09-14 18:15:12 +08:00 |
|
lhk229
|
b7100c7188
|
使用用户配置路径探测 sccache
Windows wrapper 探测改用显式配置的可执行路径
将 wrapper 路径纳入探测缓存键
|
2026-09-14 18:15:12 +08:00 |
|
lhk229
|
cf4a275d26
|
缓存 sccache 探测结果避免重复阻塞
在当前 dev 编排进程内复用 sccache wrapper 探测结果
避免 API 与 worker 重启重复同步等待
同步更新排障文档
|
2026-09-14 18:15:12 +08:00 |
|
lhk229
|
fed9960684
|
修正 POSIX sccache 绕过日志
明确记录 Linux 和 macOS 本地开发实际绕过 sccache
补充 POSIX 日志回归测试并更新排障文档
|
2026-09-14 18:15:12 +08:00 |
|
lhk229
|
a3918c89f0
|
按显式配置控制 Windows sccache
未配置 wrapper 时默认回退到直接 rustc
处理 sccache 探测失败与 wrapper 配置冲突
同步更新开发运维和排障文档
|
2026-09-14 18:15:12 +08:00 |
|
lhk229
|
f955661146
|
增强 Windows sccache wrapper 探测回退
使用限时真实 rustc wrapper 探测替代版本检查
探测失败或超时时回退到直接 rustc
同步更新 sccache 故障排障记录
|
2026-09-14 18:15:12 +08:00 |
|
lhk229
|
5cf5b541af
|
修正 sccache 测试的平台隔离
为启用 sccache 的用例补充 Windows platform mock
确保 POSIX 环境下测试不会误走 env wrapper 分支
|
2026-09-14 18:15:12 +08:00 |
|
lhk229
|
dcaa1a2dd5
|
支持 Windows 本地 sccache 自动回退
Windows 本地开发检测可用的 sccache 并启用缓存
未安装或不可执行时清空 Rust wrapper 并回退到 rustc
补充测试并更新开发运维文档
|
2026-09-14 18:15:12 +08:00 |
|
k88936
|
b082addc34
|
Merge remote-tracking branch 'origin/master' into feat/ui-editor-auto-seperation
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Successful in 5m1s
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Successful in 4m35s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m31s
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Successful in 4m42s
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Successful in 4m38s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m49s
Project CI / AI game creator shell web tests (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
Project CI / Repository checks (pull_request) Has been cancelled
Project CI / Backend tests (pull_request) Has been cancelled
Project CI / Frontend tests (pull_request) Has been cancelled
|
2026-09-14 17:41:36 +08:00 |
|
kdletters
|
2566ae705f
|
AGC 壳 Rust 套件改为「一片一个 job」,客户端 Rust 关键路径压到 7 分钟以内
Project CI / AI game creator shell Rust shard 2/4 (push) Successful in 3m53s
Project CI / AI game creator shell Rust shard 1/4 (push) Successful in 4m11s
Project CI / AI game creator shell Rust shard 3/4 (push) Successful in 4m6s
Project CI / AI game creator shell Rust shard 4/4 (push) Successful in 4m2s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m26s
Project CI / AI game creator shell Rust crates (push) Successful in 2m21s
Project CI / Backend tests (push) Successful in 6m22s
Project CI / Native shell tests (push) Successful in 5m25s
Project CI / Repository checks (push) Successful in 2m17s
Project CI / Frontend tests (push) Successful in 2m58s
Project CI / AI game creator shell web tests (push) Successful in 2m6s
上一轮把 2466 条 bin target 单测切成 4 片放在同一个 job 内多进程并行,run 2102 证明这条路
不通:门禁步骤跑满 18 分钟仍未结束,比整套串行的 507 秒还慢——同一容器内这几片共享
HOME、target 目录与固定临时路径,会互相拖慢。这一轮改成按 job 拆分。
- run-rust-shell-test-shards.mjs 新增 --shard-index=<i>:只跑第 i 片,供 CI 的每个分片 job
使用;覆盖自校验(片并集等于 --list 全集且互斥)仍针对全集执行,所以每个 job 都会
发现分片规则改动,不会被"只跑一片"绕过。负例 --shard-index 超出 --shards 立即失败。
不传 --shard-index 时行为不变(一条命令把 N 片放进程里并行),留给本地全量自测。
- project-ci.yml 由 7 个 job 变 11 个:原 AGC Rust job 拆成 AI game creator shell Rust
shard 1/4 ~ 4/4 与 AI game creator shell Rust smoke,加上已有的 Rust crates,AGC 相关
门禁共 6 个 job。4 个片 job 只预热 AGC 壳自己那份锁定依赖,且与 smoke、crates 一样都是
纯 cargo 门禁,因此这 6 个 job 都不再执行 npm ci(每个省 1~3 分钟)。
- check-native-shells.mjs 分组由五个变十个:agc-rust-shard-1 ~ agc-rust-shard-4 与
agc-rust-smoke 取代 agc-rust-shell;每个分片分组的命令是
`npm run ai-game-creator-shell:check:rust:shell -- --shard-index=<i>`。
- project-ci-workflow.test.ts 相应更新:11 个 job、6 个 job 免 npm ci、10 个分组各被一个
job 恰好调用一次,并新增「每个分片 job 都落到 --shard-index」「4 个 index 各一次」
「分片运行器保留覆盖自校验」等断言。
- 同步运维文档、development-workflow、decision-log、pitfalls 与 gitea-ci-triage 技能到
job 级分片口径,并记录 run 2102 的反面实验,避免以后又改回单 job 内并行。
验证:npx vitest run scripts/project-ci-workflow.test.ts(12 passed)、eslint、prettier、
check:encoding(13330 文件)、check:doc-index、--groups=contract、mobile check-config 全绿;
分片运行器本地以 agent-runtime-core(7 条 → 2/2/2/1)验证 --shard-index 四个 index 各自
只跑一片、片 TMPDIR 隔离、无 index 时全量模式不变。Gitea master 分支保护需补 6 个新
context(共十一个),其中含 4 个分片 job、smoke job 与 crates job。
Co-authored-by: DotCraft <273930855+dotcraft-ai@users.noreply.github.com>
|
2026-09-14 17:32:06 +08:00 |
|
kdletters
|
86b830cf2d
|
AGC 壳 Rust 套件分片并行,客户端 Rust 关键路径压到 7 分钟以内
Project CI / AI game creator shell Rust crates (push) Successful in 3m17s
Project CI / Native shell tests (push) Successful in 6m1s
Project CI / Backend tests (push) Successful in 6m39s
Project CI / Frontend tests (push) Successful in 3m59s
Project CI / Repository checks (push) Successful in 2m37s
Project CI / AI game creator shell web tests (push) Successful in 2m37s
Project CI / AI game creator shell Rust tests (push) Has been cancelled
run 2097 显示 AI game creator shell Rust tests 是客户端 CI 的关键路径(15 分 27 秒):
前置 5 分 30 秒(checkout + npm ci + Cargo fetch)、编译 1 分 39 秒、AGC 壳 bin target
的 2466 条单测一条命令串行 507 秒、agent-run smoke 51 秒。
- 新增 apps/ai-game-creator-shell/scripts/run-rust-shell-test-shards.mjs:cargo test
--no-run 编译一次拿到测试可执行文件,用 --list 取全部用例名,排序后按 index % shards
切 4 片,每片作为独立进程执行 <bin> --exact <名单> --test-threads=1,并给每片独立
TMPDIR。片并集必须等于 --list 全集且互斥(assertShardsCoverEveryTest),改分片规则
不会静默漏跑。串行口径只从「整套串行」放宽到「片内串行」:当年 libtest 线程并行会
互相干扰的是进程内后台锁与异步终态,进程分片不共享这些状态,因此不必放宽断言。
- package.json:ai-game-creator-shell:check:rust 拆成 :rust:crates(agent-runtime-core /
orchestration / platform-llm / shared-contracts)与 :rust:shell(分片运行器),聚合
脚本保持同序,ai-game-creator-shell:check 与本地全量入口语义不变。
- check-native-shells.mjs:分组由五个变六个(新增 agc-rust-crates、agc-rust-shell,
移除 agc-rust);smoke 与壳测试同组以共享 AGC 壳的依赖预热。
- project-ci.yml:新增第 7 个 job AI game creator shell Rust crates(预热 server-rs 与
两个无锁独立 crate 后跑四条 crate 测试);AI game creator shell Rust tests 只保留壳
分片与 agent-run smoke,并只预热 AGC 壳自己那份 manifest(其 Cargo.lock 的 path 依赖
已覆盖 platform-llm / platform-agent / agent-runtime-core / shared-contracts)。
这两个 job 只用 cargo 与 node 内建模块,因此都不再执行 npm ci(各省 1~3 分钟)。
- project-ci-workflow.test.ts:新增纯 cargo job 免 npm ci、分片运行器覆盖校验、crate 级
job 预热顺序等断言;同步运维文档、development-workflow、decision-log、pitfalls。
验证:分片运行器本地以 agent-runtime-core(7 条 → 2/2/2/1)与 platform-llm(146 条 →
49/49/48)验证分片、--exact 与片 TMPDIR 隔离,参数负例 exit 1;vitest
scripts/project-ci-workflow.test.ts 12 passed;contract 分组、AGC 与 mobile 壳
check-config、eslint、prettier、check:encoding(13400 文件)、check:doc-index 全绿。
Gitea master 分支保护需补 Project CI / AI game creator shell Rust crates (pull_request)。
Co-authored-by: DotCraft <273930855+dotcraft-ai@users.noreply.github.com>
|
2026-09-14 17:02:34 +08:00 |
|
kdletters
|
f9bd0adae1
|
补齐客户端 CI 拆分的共享记忆:label 字面量契约与实测耗时
Project CI / Frontend tests (push) Successful in 5m6s
Project CI / Native shell tests (push) Successful in 7m1s
Project CI / Backend tests (push) Successful in 7m45s
Project CI / Repository checks (push) Successful in 2m58s
Project CI / AI game creator shell web tests (push) Successful in 2m10s
Project CI / AI game creator shell Rust tests (push) Successful in 14m39s
- pitfalls:新增「根门禁的 [check:native-shells] <label> 是别处按字面量校验的契约」,
记录 run 2095 里 desktop-shell typecheck 的失败根因(label 被抽进公共打印函数后,
check-config 的字面量断言落空)、处置与本地验证方式。
- decision-log:把「预计收敛到约 13 分钟量级」换成 run 2097 实测——六个 job 全绿、
wall-clock 15 分 27 秒(拆分前 run 2094 为 22 分 15 秒),关键路径转移到
AI game creator shell Rust tests,壳体串行套件 507 秒是硬底。
Co-authored-by: DotCraft <273930855+dotcraft-ai@users.noreply.github.com>
|
2026-09-14 16:47:35 +08:00 |
|
kdletters
|
11beb65c36
|
修复桌面壳对根门禁 label 字面量的断言
Project CI / Frontend tests (push) Successful in 4m24s
Project CI / Native shell tests (push) Successful in 7m34s
Project CI / Backend tests (push) Successful in 7m36s
Project CI / Repository checks (push) Successful in 2m45s
Project CI / AI game creator shell web tests (push) Successful in 2m15s
Project CI / AI game creator shell Rust tests (push) Successful in 15m27s
run 2095 的 Native shell tests 红了,失败点是 desktop-shell 的 typecheck:
apps/desktop-shell/scripts/check-config.mjs 断言根门禁脚本必须包含
`console.log('[check:native-shells] desktop-release-binary-artifact')` 字面量,
而拆分时我把 label 挪进了公共打印函数 runNativeShellGate(group, label, gate),
源码里不再有这个字面量,断言随即报
「root native shell gate must keep desktop release artifact check」。
- runNativeShellGate 收窄为 (group, gate):label 改回各门禁执行体里的字面量打印,
分组能力、日志格式与 `--groups=` 语义都不变,外部按字面量做的快照断言继续有效。
- 在该函数旁注明不要把 label 抽成变量:apps/desktop-shell 与 apps/mobile-shell 的
check-config 都会读取根脚本源码做字面量断言。
验证:node --check 通过;contract 分组通过(groups=contract + OK);mobile-shell
check-config exit 0;desktop-shell check-config 已越过第 740-777 行的根脚本断言
(本机只卡在本机不存在的 Tauri 生成产物目录,Linux CI 不受影响);
vitest scripts/project-ci-workflow.test.ts 11 passed;eslint 通过。
Co-authored-by: DotCraft <273930855+dotcraft-ai@users.noreply.github.com>
|
2026-09-14 16:26:10 +08:00 |
|
kdletters
|
20f109027a
|
按门禁组拆分客户端 CI,AGC 的 web / rust 两段并行
Project CI / Native shell tests (push) Failing after 3m36s
Project CI / Frontend tests (push) Successful in 4m13s
Project CI / Repository checks (push) Successful in 3m3s
Project CI / AI game creator shell web tests (push) Successful in 2m31s
Project CI / Backend tests (push) Successful in 7m49s
Project CI / AI game creator shell Rust tests (push) Successful in 14m10s
原生壳门禁原本挤在同一个 job 里串行执行,跑一遍 18 分 37 秒,其中 AI 游戏创作
壳独占约 15 分钟(壳内 Rust 套件 2451 条用例串行 441 秒),而微信 / 移动 / 桌面 /
H5 的全部门禁加起来不到 50 秒。长尾拖住短门禁,runner 也无法并行。
- scripts/check-native-shells.mjs 支持 `--groups=`(contract / shells / agc-web /
agc-rust / release):每个步骤与静态断言归属且只归属一个分组,不带参数时仍按
原顺序串行跑全部分组,本地 `npm run check:native-shells` 语义不变。
- 顺带修掉 H5 HostBridge 调用链扫描在 Windows 上恒红的缺陷:collectFiles 返回
反斜杠路径而期望清单是 POSIX 写法,scannedFiles.has() 永远为假。新增
normalizeScannedFilePath 只统一分隔符(不能复用会去后缀的 normalizeModulePath),
在 Linux 上是恒等变换。
- package.json 增加 5 个分组脚本,并把 ai-game-creator-shell:check 拆成
:check:web 与 :check:rust;聚合脚本保持 web && rust && agent-run:smoke 同序。
agent-run smoke 会 spawn cargo,因此归入 agc-rust。
- .gitea/workflows/project-ci.yml 拆成 6 个 job:新增 native-shell-tests(contract +
shells + release)、ai-game-creator-shell-web-tests、ai-game-creator-shell-rust-tests
三个门禁 job,与 backend-tests / frontend-tests / repository-checks 并列。
- scripts/project-ci-workflow.test.ts 增加 3 条结构测试:分组恰好被一个 job 调用且
与脚本内声明一致、CI 不再调用全量入口、AGC web/rust 拆分与聚合脚本等价、独立
crate 预热必须发生在 AGC Rust 门禁之前。
- 同步运维文档、development-workflow、decision-log、pitfalls。
验证:`--groups=contract` 本地通过;vitest 11 passed;eslint 与 prettier 通过;
check:encoding 13329 文件通过;check:doc-index 103 份通过。shells / agc-web /
agc-rust / release 分组只能由 Linux CI 执行(Windows 上 spawnSync npm.cmd 报
EINVAL,属既有平台限制,非本次引入)。分支保护需补两个新 required context:
`Project CI / AI game creator shell web tests (pull_request)` 与
`Project CI / AI game creator shell Rust tests (pull_request)`。
Co-authored-by: DotCraft <273930855+dotcraft-ai@users.noreply.github.com>
|
2026-09-14 16:13:11 +08:00 |
|
kdletters
|
4e553bb15d
|
收窄项目写锁同进程复用判据为同线程重入
Project CI / Repository checks (push) Successful in 3m21s
Project CI / Frontend tests (push) Successful in 4m15s
Project CI / Backend tests (push) Successful in 6m13s
Project CI / Native shell tests (push) Successful in 18m37s
- 修复 write_lock.rs:advisory 复用判据从「本进程持锁」收窄为「同一线程重入或自主流水线」,新增按锁路径登记真实持锁线程的 PROJECT_WRITE_LOCK_THREAD_OWNERS,登记在 create_new 成功处、在 guard Drop 里按路径注销(guard 会被移到别的线程再 Drop)
- 恢复本进程其它线程写通道的串行化:一致快照读、project.diff / action_history、command.output_read、steer 序号分配、项目 revision 侧车、pending sidecar 复核与恢复安装重新等待并保持终态占用
- 调整 tests/project_tools.rs 的 agent_runtime_file_write_lock_failure_redacts_project_path:改为在另一条线程持锁,保持「别的写者持锁时 file.write 失败关闭且脱敏」的断言语义
- 调整 ui_editor/persistence.rs 的 recovery_install_respects_the_project_write_lock:同样改为在另一条线程持锁,保持占用失败断言
- 同步技术方案「2026-09-14 项目客户端占用锁收敛」段落,以及里程碑和实施计划的目标、验收标准、修改顺序、验证命令与未决事项
- 在 decision-log 记录复用判据收窄为同线程重入,并在 pitfalls 记录「同进程复用判据不能只看 pid」的现场、原因、处理与易错点
- 回答 AGC 生命周期文档「同 PID advisory guard 是否放过并行写」的未决项:确认会放过并行写,已收窄
Co-authored-by: DotCraft <273930855+dotcraft-ai@users.noreply.github.com>
|
2026-09-14 15:41:17 +08:00 |
|
kdletters
|
7092689b36
|
收口 AGC 生命周期超时隔离与建项恢复
Project CI / Repository checks (push) Successful in 3m11s
Project CI / Frontend tests (push) Successful in 4m4s
Project CI / Backend tests (push) Successful in 6m14s
Project CI / Native shell tests (push) Failing after 14m20s
## 变更内容
在 master(0f829cd25)上用故障注入复现出四类"每走一步都会卡住"的生命周期残留,本轮按"超时后真正隔离并核对底层操作"收口,不再新增 operation 字段:
- 本地会话写入队列从"无限等上一次完成"改为带解围期限的闸门(60s)。Rust 侧 install/clear 本来就按 generation 单调拒绝更旧写入,所以渲染层只需保证新 generation 不被卡死的调用永久挡住;
- generation floor 读取不再把一次瞬时失败缓存成永久失败(原先 `??=` 缓存了已 reject 的 promise,导致同一渲染进程内后续登录/退出全部失败);
- 登录 UI 的 45 秒围栏只放弃等待、不放弃结果:本地运行时确实装好会话时界面跟随进入工作区,且迟到结果不会覆盖更新的登录尝试;
- 首页自动建项从 `deadlineMs: null` 改为 10 分钟兜底期限:到点解围并提示(底层创建继续在后台跑,迟到成功照常进项目),失败时保留 `scope.projectPath`、登记最近项目并新增「打开已创建的工作区」入口;底层创建未返回期间只挡"再建一个",不挡打开已有项目;
- 同步 `project.bootstrap` 权限文案断言、生命周期技术方案状态与 shared pitfalls。
## 验证
- `npm --prefix apps/ai-game-creator-shell run typecheck`(含 skill-pack、check-config)
- `vitest run apps/ai-game-creator-shell/tests/appSurface.test.ts`(428/428,含新增 5 个故障注入回归;`project.bootstrap` 文案断言在此前 master 上确定性失败)
- 定向 `clientHttp`、`clientApi`、`clientOperation`、`recentProjectsModel`、`clientRuntimeErrorBoundary`、`sessionPreview`、`start-dev-stack`、`dev-port`、`start-tauri-dev`(全部通过)
- `npm run check:doc-index`、`npm run check:encoding`、`git diff --check`
原生 Runner/IPC 与真实 Provider 下的同一批时序未执行,本轮结论来自 deterministic surface 与 mock 故障注入。
Co-authored-by: DotCraft <273930855+dotcraft-ai@users.noreply.github.com>
|
2026-09-14 14:49:45 +08:00 |
|
k88936
|
ad8f42a68f
|
回写自动切分问题节点状态
Project CI / Repository checks (pull_request) Has been cancelled
Project CI / Frontend tests (pull_request) Has been cancelled
Project CI / Backend tests (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
扩展 problematic DTO 携带完整返工历史
分离流程回写 NeedReview 并清理成功节点旧状态
补充概览计数定位与状态覆盖测试
同步 UI workflow 规范文档
|
2026-09-14 14:34:33 +08:00 |
|
kdletters
|
0f829cd252
|
完成 DirectProject Phaser 迁移闭环 (#353)
Project CI / Repository checks (push) Failing after 2m44s
Project CI / Frontend tests (push) Failing after 2m53s
Project CI / Native shell tests (push) Failing after 6m39s
Project CI / Backend tests (push) Successful in 8m7s
## 变更
单 HTML → Phaser 4 + Vite 的迁移链路现在有明确且可执行的工程合同:Phaser/npm 目标固定走 DirectProject,旧 JSON Generator 继续只处理单文件 HTML。
- 新增受控 `project.bootstrap`,仅允许项目内 `game` 目录执行无参数 `npm install`,校验 package/lock、路径、npm 管理器并记录依赖指纹。
- `project.verify` 支持相对 `cwd`,构建前诊断缺失依赖,`cwd=game` 的 build 必须产出 `game/dist/index.html`。
- npm bootstrap 使用受控网络沙箱;通用 `command.exec npm install` 仍被拒绝。
- 同步 Runtime 工具广告、执行分发、审计、权限策略、DirectProject/Generator 提示、前端权限面板、TypeScript/Rust 契约和项目文档。
- Phaser 迁移提示覆盖 Scene、输入、敌人/守卫、波次、胜负、重开和桌面/移动双视口验收。
## 验证
- `npm run ai-game-creator-shell:typecheck`
- `cargo check --manifest-path apps/ai-game-creator-shell/src-tauri/Cargo.toml`
- `cargo fmt --manifest-path apps/ai-game-creator-shell/src-tauri/Cargo.toml -- --check`
- `cargo test --locked -p shared-contracts --manifest-path server-rs/Cargo.toml game_creation_app`
- 定向 `project.verify` Rust 测试
- `npm run check:encoding`
- `npm run check:doc-index`
- `git diff --check`
- 真实 DirectProject:`npm install`、`npm run build` 成功,`game/dist/index.html` 存在。
- 浏览器试玩:桌面视口画布非空;移动视口触摸开火、键盘换道和重开逻辑均已观察确认。
真实项目没有纳入仓库提交;PR 只包含客户端合同、Runtime 能力和验证门禁。
Reviewed-on: #353
|
2026-09-14 13:57:24 +08:00 |
|
kdletters
|
c146f7f99c
|
建立 AGC 稳定版生命周期基础合同 (#348)
Project CI / Repository checks (push) Has been cancelled
Project CI / Frontend tests (push) Has been cancelled
Project CI / Backend tests (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
## 变更内容
这是基于 PR #346 的稳定版生命周期基础切换,承接已完成的 HTTP body timeout、Runner blocking worker、最近项目逐项刷新和首页跨页防重:
- 新增统一 `ClientOperation` 合同,固定 operationId、requestId、phase、deadline、scope、cancellable 和 stale 判定;
- 认证 refresh 投影 `auth-refresh` operation;登录、401 refresh、退出共用平台 session generation,并由 `auth-transition` 投影 Runner phase/成功/失败/不确定状态;
- 首页自动创建记录 draft、startMode、phase 和建项后的 project scope,页面卸载不会释放 operation;
- `.app/dev-stack.json` 增加 instanceId、repoRoot、服务级 dataDir/instanceId,AGC Vite marker 增加 repoRoot/processId/port;缺身份的旧状态拒绝 AGC 后端复用;
- 新增稳定版生命周期主规范、开发运维口径和 shared pitfalls。
## 验证
- `npm --prefix apps/ai-game-creator-shell run typecheck`
- `npm --prefix apps/ai-game-creator-shell exec -- vitest run tests/clientOperation.test.ts tests/clientApi.test.ts tests/clientHttp.test.ts tests/recentProjectsModel.test.ts tests/start-dev-stack.test.ts tests/dev-port.test.ts --reporter=dot`(61 passed,2 skipped)
- `npm --prefix apps/ai-game-creator-shell exec -- vitest run tests/appSurface.test.ts --reporter=dot`(423/423 passed)
- `node --check scripts/dev.mjs`
- `node --check apps/ai-game-creator-shell/scripts/start-dev-stack.mjs`
- `npm run check:doc-index`
- `npm run check:encoding`
- `git diff --check`
`scripts/dev.test.ts` 全量仍有 1 个 Windows 文件权限相关既有失败:bootstrap secret 测试在 Windows 上无法通过 chmod 模拟 0600;本变更未触及该逻辑。
Reviewed-on: #348
|
2026-09-14 13:56:56 +08:00 |
|