Compare commits

..

226 Commits

Author SHA1 Message Date
k88936 30c377d0f0 保留唯一的thread manager作为direct project的状态来源 (#384)
Project CI / AI game creator shell Rust shard 1/4 (push) Successful in 6m21s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m51s
Project CI / AI game creator shell Rust shard 3/4 (push) Successful in 5m3s
Project CI / AI game creator shell Rust shard 2/4 (push) Failing after 5m54s
Project CI / AI game creator shell Rust shard 4/4 (push) Successful in 4m28s
Project CI / AI game creator shell Rust crates (push) Successful in 1m53s
Project CI / Repository checks (push) Successful in 5m33s
Project CI / Frontend tests (push) Successful in 7m20s
Project CI / Native shell tests (push) Successful in 8m29s
Project CI / Backend tests (push) Successful in 8m57s
Project CI / AI game creator shell web tests (push) Successful in 3m16s
说明: 在把工作交给段哥前还没有实现direct project聊天页面的迁移, 导致在 #375 里用很复杂的实现又做了一套事件流, 实测还有会话丢失的bug, 我在这里把数据获取的部分迁移到 #367 上

---------

Co-authored-by: 孔令弘 <ink29535@proton.me>
Reviewed-on: https://git.genarrative.world/git/GenarrativeAI/Genarrative/pulls/384
Reviewed-by: 孔令弘 <ink29535@proton.me>
Co-authored-by: 王德宇 <kvtodev@outlook.com>
Co-committed-by: 王德宇 <kvtodev@outlook.com>
2026-09-18 02:13:50 +08:00
lhk229 1c6e4c1e74 AGC生图工具暴露抠图背景色并补齐相关说明 (#414)
Project CI / AI game creator shell Rust shard 3/4 (push) Successful in 6m52s
Project CI / AI game creator shell Rust shard 2/4 (push) Successful in 7m10s
Project CI / AI game creator shell Rust shard 1/4 (push) Successful in 7m20s
Project CI / AI game creator shell Rust shard 4/4 (push) Successful in 5m50s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m12s
Project CI / AI game creator shell Rust crates (push) Successful in 2m13s
Project CI / Repository checks (push) Successful in 6m17s
Project CI / Frontend tests (push) Successful in 7m21s
Project CI / Backend tests (push) Successful in 9m49s
Project CI / AI game creator shell web tests (push) Successful in 2m41s
Project CI / Native shell tests (push) Successful in 11m8s
agc_generate_image 新增 screenColor 参数,仅 kind=character/art-spritesheet 生效,说明含 12 色板 hex 与不得接近本体颜色的约束
screenColor 计入 standalone 生成动作身份,None 时跳过序列化,未使用该字段的请求身份与升级前逐字节一致
character 生图请求体按需注入 screenColor,art-spritesheet 图集把硬编码 auto 改为透传归一化值
bridge 侧只校验 auto/#RRGGBB 格式并统一大写,色板白名单交由服务端 400 权威校验,其它 kind 携带直接拒绝
修复 sliceCount 悬空指引:MCP schema 与双层字段白名单补齐,1-256 校验后透传至图集生成请求
精简 agc_generate_image 工具说明,删除美术包限制与客户端职责两段样板句
审计投影同步记录 screenColor,补充 bridge 归一化、动作身份指纹与工具目录契约测试

Reviewed-on: https://git.genarrative.world/git/GenarrativeAI/Genarrative/pulls/414
Co-authored-by: Linghong <ink29535@proton.me>
Co-committed-by: Linghong <ink29535@proton.me>
2026-09-18 01:14:02 +08:00
kdletters 2e15a70b14 Provider 瞬态重试次数严格按设置执行
Project CI / AI game creator shell Rust shard 3/4 (push) Successful in 7m26s
Project CI / AI game creator shell Rust shard 2/4 (push) Successful in 7m38s
Project CI / AI game creator shell Rust shard 1/4 (push) Successful in 7m46s
Project CI / AI game creator shell Rust shard 4/4 (push) Successful in 8m4s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m19s
Project CI / AI game creator shell Rust crates (push) Successful in 2m13s
Project CI / Backend tests (push) Successful in 10m11s
Project CI / Frontend tests (push) Successful in 12m57s
Project CI / Repository checks (push) Successful in 15m23s
Project CI / AI game creator shell web tests (push) Successful in 9m18s
Project CI / Native shell tests (push) Successful in 22m24s
删除自主构建档位 12~16 的重试区间与 standard 档位 3 次上限,maxRetries 严格决定物理重试次数
上游 400 不再单独收窄到 2 次,与其它瞬态错误共用设置里的同一份预算
运行档位改为只决定上游 400 是否算瞬态,重试次数不再被档位改写
重写档位重试用例为设置值直取,同步 upstream-400 用例
decision-log 记录本次口径变更与本机既有失败边界
2026-09-18 00:01:40 +08:00
lhk229 195b7dd5dd 修复抠图401 404问题 (#394)
Project CI / AI game creator shell Rust shard 3/4 (push) Successful in 7m34s
Project CI / AI game creator shell Rust shard 2/4 (push) Successful in 7m39s
Project CI / AI game creator shell Rust shard 1/4 (push) Successful in 7m50s
Project CI / AI game creator shell Rust shard 4/4 (push) Successful in 7m56s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m31s
Project CI / AI game creator shell Rust crates (push) Successful in 3m19s
Project CI / Native shell tests (push) Successful in 16m33s
Project CI / Backend tests (push) Successful in 17m56s
Project CI / Repository checks (push) Successful in 15m2s
Project CI / Frontend tests (push) Successful in 23m48s
Project CI / AI game creator shell web tests (push) Successful in 23m11s
Reviewed-on: https://git.genarrative.world/git/GenarrativeAI/Genarrative/pulls/394
Co-authored-by: Linghong <ink29535@proton.me>
Co-committed-by: Linghong <ink29535@proton.me>
2026-09-17 21:37:23 +08:00
suzmii 6f161a6b36 Merge pull request '修复 AGC 开发态监听 Rust 构建目录导致的加载缓慢' (#382) from fix/agc-vite-target-watch into master
Project CI / Backend tests (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
Project CI / Frontend tests (push) Has been cancelled
Project CI / AI game creator shell Rust smoke (push) Has been cancelled
Project CI / AI game creator shell Rust crates (push) Has been cancelled
Project CI / AI game creator shell Rust shard 2/4 (push) Has been cancelled
Project CI / AI game creator shell Rust shard 3/4 (push) Has been cancelled
Project CI / AI game creator shell Rust shard 4/4 (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / AI game creator shell Rust shard 1/4 (push) Has been cancelled
Reviewed-on: #382
2026-09-17 21:18:59 +08:00
kdletters 133bb2f350 修正 AGC 原生 HTTP 契约守卫与更新摘要证据
Project CI / AI game creator shell Rust shard 1/4 (push) Has been cancelled
Project CI / AI game creator shell Rust shard 2/4 (push) Has been cancelled
Project CI / AI game creator shell Rust shard 3/4 (push) Has been cancelled
Project CI / AI game creator shell Rust shard 4/4 (push) Has been cancelled
Project CI / AI game creator shell Rust smoke (push) Has been cancelled
Project CI / AI game creator shell Rust crates (push) Has been cancelled
Project CI / Backend tests (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
Project CI / Frontend tests (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
- 契约守卫不再要求 http 插件放行 OSS 域名:更新清单与安装包下载已改由 tauri-plugin-updater 在原生侧完成
- 主规范回填 0.1.62 自动更新摘要与客户端提示展示的用户实测证据
2026-09-17 21:06:55 +08:00
kdletters 0deaabfee6 回填更新摘要端到端展示证据
- 主规范记录 0.1.62 渠道清单自动摘要与客户端提示展示的用户实测结论
2026-09-17 21:06:55 +08:00
suzmii c16e32cc89 Merge pull request '重构AGC资源画布菜单与卡片入口' (#410) from refactor/agc-resource-menu into master
Project CI / AI game creator shell Rust shard 2/4 (push) Has been cancelled
Project CI / AI game creator shell Rust shard 1/4 (push) Has been cancelled
Project CI / AI game creator shell Rust shard 3/4 (push) Has been cancelled
Project CI / AI game creator shell Rust shard 4/4 (push) Has been cancelled
Project CI / AI game creator shell Rust smoke (push) Has been cancelled
Project CI / AI game creator shell Rust crates (push) Has been cancelled
Project CI / Backend tests (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
Project CI / Frontend tests (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
Reviewed-on: #410
2026-09-17 20:56:43 +08:00
suzmii e6849d2a45 Merge branch 'master' into refactor/agc-resource-menu
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Successful in 7m11s
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Successful in 7m17s
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Successful in 7m24s
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Successful in 7m32s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m20s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 3m51s
Project CI / Native shell tests (pull_request) Failing after 9m7s
Project CI / Backend tests (pull_request) Successful in 11m14s
Project CI / Repository checks (pull_request) Successful in 7m42s
Project CI / AI game creator shell web tests (pull_request) Failing after 2m37s
Project CI / Frontend tests (pull_request) Successful in 11m53s
2026-09-17 20:45:21 +08:00
kdletters f5b4293e80 预览控制面支持展示公网预览地址
Project CI / AI game creator shell Rust shard 3/4 (push) Successful in 7m12s
Project CI / AI game creator shell Rust shard 2/4 (push) Successful in 7m21s
Project CI / AI game creator shell Rust shard 4/4 (push) Failing after 7m21s
Project CI / AI game creator shell Rust shard 1/4 (push) Failing after 7m26s
Project CI / Native shell tests (push) Failing after 1m50s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m15s
Project CI / AI game creator shell Rust crates (push) Successful in 2m19s
Project CI / Backend tests (push) Has been cancelled
Project CI / Frontend tests (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
- preview-deployer-server 新增可选配置 GENARRATIVE_PREVIEW_DEPLOYER_WEB_DOMAIN,并按「实例 ID + 预览域名」派生公开字段 webPublicUrl,卸载时与 webUrl/webPort 一起清空、加载状态文件时重新派生覆盖
- preview-deployer-web 在存在公网地址时把「打开公网预览」作为主入口,内网地址降级为次级链接,未配置时行为不变
- deploy/env/preview-deployer.env.example 补充 WEB_DOMAIN 键与留空语义说明
- 补充 cargo 与 vitest 用例覆盖公网地址派生、域名配置校验与页面展示
2026-09-17 20:29:42 +08:00
kdletters fce546403f 文档记录 Jenkins、预览控制面与预览实例的公网入口口径
- 在【开发运维】本地开发验证与生产运维补充 jenkins.genarrative.world 与 build.genarrative.world 的公网入口、反向隧道端口、白名单依赖与排障顺序
- 在 shared-memory/decision-log.md 记录 Jenkins 公网入口、预览部署控制面公网入口、预览控制面公网预览地址口径三组决策及各自验证证据
2026-09-17 20:29:40 +08:00
kdletters d5743cd4b8 资源画布支持引擎资源预览与模型交互预览 (#413)
Project CI / AI game creator shell Rust shard 1/4 (push) Has been cancelled
Project CI / AI game creator shell Rust shard 2/4 (push) Has been cancelled
Project CI / AI game creator shell Rust shard 3/4 (push) Has been cancelled
Project CI / AI game creator shell Rust shard 4/4 (push) Has been cancelled
Project CI / AI game creator shell Rust smoke (push) Has been cancelled
Project CI / AI game creator shell Rust crates (push) Has been cancelled
Project CI / Backend tests (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
Project CI / Frontend tests (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
## 目的

资源画布支持引擎(Cocos Creator)资源的**只读预览**:能被发现、登记、进入画布,并按类型出预览。

## 主要改动

- 发现层识别 Cocos 资源并区分 `model` / `binary` 两个发现类别;`.meta` 等导入侧车文件仍只可发现
- 登记层按扩展名写入**既有** canonical kind(模型/场景/预制体 → `scene`,动画 → `character-animation`,材质/特效 → `code`,图集与容器 → `document`),不新增 manifest 契约字段
- 引擎工程的 `library/` / `temp/` / `profiles/` / `local/` 不再进入发现结果(仅当目录确实是 Cocos 工程),同名目录在非引擎工程里照常列出
- 资源画布新增三个卡面分支:模型缩略图(整页共用一个 WebGL 上下文)、结构摘要(Cocos 序列化资源)、类型卡(客户端解不了的容器)
- 新增模型放大预览浮层:左键旋转 / 右键或中键平移 / 滚轮缩放 / 复位视角
- 模型预览上限 32 MiB;缩略图按布局尺寸 2 倍超采样,缓存键改用稳定身份
- 引擎图像容器(tga/tif/tiff/hdr)在原生侧转码成 PNG 后复用既有图片预览链路
- 修复资源卡状态边框吃掉内容盒导致的卡面与角标位移
- 同步 Agent 提示词与 AGC 技能文档,并补里程碑与踩坑文档

## 验证

- `cargo check`、`cargo fmt --check`
- Rust 定向:`cargo test … cocos` 9 条、`resource_inspect::tests` 7 条、`agent_asset_import_tests` 9 条、生成目录过滤用例
- 前端:`resource` + `project` 套件 52 文件 / 546 用例;`appSurface` 450 通过 / 20 跳过;app `tsc --noEmit`
- `npm run check:encoding`、`git diff --check`、`npm run check:doc-index`
- 真机:在真实客户端内打开本地 Cocos 夹具工程,逐栏核对模型缩略图 / 结构摘要 / TGA 转码 / 类型卡,并量过卡片在指针移开、悬停、选中三态下几何完全一致

## 未验证

- 模型缩略图与放大预览的真机视觉只覆盖自带夹具工程;多文件 glTF(外部 .bin/贴图)与超大模型仍是类型卡

---------

Co-authored-by: kdletters <61648117+kdletters@users.noreply.github.com>
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/413
2026-09-17 20:28:39 +08:00
suzmii c329c438d9 修复资源画布PR的CI回归(#410)
Project CI / AI game creator shell Rust shard 4/4 (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 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 / AI game creator shell Rust shard 3/4 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust shard 2/4 (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
修复活动回合空快照引用及停用后晚到请求覆盖问题
对齐共享卡片角标与窗口发布次数回归断言
同步原生HTTP权限检查与图集显式切片测试契约
整理菜单组件导入顺序并记录本地验证范围
2026-09-17 20:17:26 +08:00
suzmii ed6eced16b Merge branch 'master' into fix/agc-vite-target-watch
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Successful in 7m9s
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Successful in 7m27s
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Failing after 7m30s
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Failing after 7m35s
Project CI / Native shell tests (pull_request) Failing after 1m54s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m27s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m45s
Project CI / AI game creator shell web tests (pull_request) Failing after 4m42s
Project CI / Frontend tests (pull_request) Failing after 5m17s
Project CI / Repository checks (pull_request) Successful in 5m13s
Project CI / Backend tests (pull_request) Successful in 8m31s
2026-09-17 20:02:14 +08:00
kdletters 724d94c95c 更新摘要降级为不阻断发布
Project CI / AI game creator shell Rust shard 1/4 (push) Successful in 6m22s
Project CI / AI game creator shell Rust shard 3/4 (push) Successful in 6m20s
Project CI / AI game creator shell Rust shard 2/4 (push) Failing after 6m42s
Project CI / AI game creator shell Rust shard 4/4 (push) Failing after 6m1s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m4s
Project CI / Native shell tests (push) Failing after 1m29s
Project CI / AI game creator shell Rust crates (push) Successful in 2m15s
Project CI / Frontend tests (push) Has been cancelled
Project CI / Backend tests (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
- 摘要锚点读取失败时降级为无锚点并告警,不再让整个发布失败
- 无锚点时列出最近 8 条客户端相关提交,并注明可能与上一版重复
- 新增锚点读取失败降级与最近提交兜底的定向用例
- 技术方案补充摘要不阻断发布的约束
2026-09-17 20:00:50 +08:00
kdletters e146859ea2 更新摘要锚点支持 CI 兜底
Project CI / AI game creator shell Rust shard 1/4 (push) Has been cancelled
Project CI / AI game creator shell Rust shard 2/4 (push) Has been cancelled
Project CI / AI game creator shell Rust shard 3/4 (push) Has been cancelled
Project CI / AI game creator shell Rust shard 4/4 (push) Has been cancelled
Project CI / AI game creator shell Rust smoke (push) Has been cancelled
Project CI / AI game creator shell Rust crates (push) Has been cancelled
Project CI / Backend tests (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
Project CI / Frontend tests (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
- 摘要锚点优先取渠道清单 commit,缺失时回退 CI 传入的上一次成功构建 COMMIT_HASH
- Jenkins 构建阶段解析上一次成功构建的 COMMIT_HASH 并注入 AGC_UPDATE_PREVIOUS_COMMIT,读取失败保持为空
- 新增锚点优先级与非法值忽略的定向用例
- 技术方案补充锚点兜底说明
2026-09-17 19:42:10 +08:00
kdletters 5ccc46ac1a 调度管线按路径过滤 Full Build 并回填升级证据
Project CI / AI game creator shell Rust shard 1/4 (push) Has been cancelled
Project CI / AI game creator shell Rust shard 2/4 (push) Has been cancelled
Project CI / AI game creator shell Rust shard 3/4 (push) Has been cancelled
Project CI / AI game creator shell Rust shard 4/4 (push) Has been cancelled
Project CI / AI game creator shell Rust smoke (push) Has been cancelled
Project CI / AI game creator shell Rust crates (push) Has been cancelled
Project CI / Backend tests (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
Project CI / Frontend tests (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
- 调度管线同时判定 AGC 与 Full Build 两条下游的发布范围,并分别决定是否触发
- Full Build 采用与线上站点/后端无关的路径黑名单,改动落在黑名单外照常部署,避免漏发
- 两条同时跳过时只推进 revision 状态、不触发任何发布,构建描述写明实际触发的下游
- 新增 Full Build 跳过模式守卫用例,并补齐开发运维与技术方案说明
- 主规范回填真实更新闭环证据:0.1.47 客户端完成提示、下载、安装与重启
2026-09-17 19:31:19 +08:00
suzmii 92d1269ccc Merge branch 'master' into fix/agc-vite-target-watch
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Successful in 5m37s
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Failing after 5m39s
Project CI / Backend tests (pull_request) Has been cancelled
Project CI / AI game creator shell Rust crates (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 3/4 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust smoke (pull_request) Has been cancelled
2026-09-17 19:30:05 +08:00
suzmii 959beebf63 Merge branch 'master' into refactor/agc-resource-menu
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Successful in 5m43s
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Failing after 5m58s
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Successful in 5m29s
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Failing after 4m40s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m19s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m43s
Project CI / Native shell tests (pull_request) Failing after 2m15s
Project CI / Repository checks (pull_request) Failing after 1m55s
Project CI / Frontend tests (pull_request) Failing after 3m30s
Project CI / AI game creator shell web tests (pull_request) Failing after 4m34s
Project CI / Backend tests (pull_request) Successful in 8m43s
2026-09-17 19:30:00 +08:00
kdletters ba089980b1 AGC 发布自动生成更新摘要
Project CI / AI game creator shell Rust shard 3/4 (push) Has been cancelled
Project CI / AI game creator shell Rust shard 4/4 (push) Has been cancelled
Project CI / AI game creator shell Rust smoke (push) Has been cancelled
Project CI / AI game creator shell Rust crates (push) Has been cancelled
Project CI / Backend tests (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
Project CI / Frontend tests (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / AI game creator shell Rust shard 1/4 (push) Has been cancelled
Project CI / AI game creator shell Rust shard 2/4 (push) Has been cancelled
- 发布脚本读取渠道清单的 commit 字段,把上一次发布到本次之间客户端相关路径的提交标题写进清单 notes
- 更新摘要同步写入旧协议清单 releaseNotes,并落盘 release-notes.txt 供 Jenkins 归档
- AGC_UPDATE_RELEASE_NOTES 非空时以手动文案为准,缺少上一次 commit 时不写摘要
- 提交取数固定在仓库根执行,避免 pathspec 相对应用目录解析导致漏取
- 新增摘要格式、真实临时仓库取数与调度管线路径表一致性用例
- 同步开发运维文档与技术方案的构建发布条款
2026-09-17 19:26:11 +08:00
suzmii 5adc3032e8 Merge branch 'master' into fix/agc-vite-target-watch
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Successful in 5m16s
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Failing after 5m37s
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Successful in 5m11s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m2s
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Failing after 4m28s
Project CI / Native shell tests (pull_request) Failing after 1m15s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 3m20s
Project CI / Backend 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
2026-09-17 19:06:11 +08:00
kdletters 6017d46088 AGC 定时发布增加变更路径过滤
Project CI / AI game creator shell Rust shard 1/4 (push) Successful in 7m29s
Project CI / AI game creator shell Rust shard 3/4 (push) Successful in 7m37s
Project CI / AI game creator shell Rust shard 2/4 (push) Failing after 7m46s
Project CI / AI game creator shell Rust shard 4/4 (push) Failing after 4m53s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m17s
Project CI / AI game creator shell Rust crates (push) Successful in 2m43s
Project CI / Native shell tests (push) Failing after 1m10s
Project CI / Frontend tests (push) Failing after 3m37s
Project CI / AI game creator shell web tests (push) Failing after 3m25s
Project CI / Repository checks (push) Successful in 4m19s
Project CI / Backend tests (push) Successful in 8m48s
- 调度管线新增 AGC 发布范围判定:比较上一轮 revision 与本次 revision 的变更路径
- 只有客户端、共享包、server-rs/crates、AGC 插件、桌面壳图标或根依赖清单变化时才触发 AGC Windows Build
- 纯文档与流水线提交只触发 Full Build,不再推高客户端版本号
- 判定失败或浅取窗口取不到该 revision 时按需要发布处理,FORCE_TRIGGER 仍强制两条都触发
- 同步开发运维文档、技术方案与调度 job 配置描述
2026-09-17 19:00:45 +08:00
suzmii 260edb3521 合并 master 到 AGC 开发监听修复分支
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
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
同步 master 最新代码与文档。

合并排障记录冲突,保留双方新增内容。
2026-09-17 18:58:31 +08:00
kdletters 55af6014ba 修复渠道版本链回退并记录高水位规则
Project CI / AI game creator shell Rust shard 2/4 (push) Has been cancelled
Project CI / AI game creator shell Rust shard 3/4 (push) Has been cancelled
Project CI / AI game creator shell Rust shard 4/4 (push) Has been cancelled
Project CI / AI game creator shell Rust smoke (push) Has been cancelled
Project CI / AI game creator shell Rust crates (push) Has been cancelled
Project CI / Backend tests (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
Project CI / Frontend tests (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / AI game creator shell Rust shard 1/4 (push) Has been cancelled
- 发布脚本版本来源改为渠道清单与旧协议迁移指针取较大值,避免渠道启用初期把版本链改小
- 旧迁移指针只服务 dev-win,其它渠道不参与比较,旧指针 404 后自动只剩渠道清单
- 补充三条定向用例:旧指针高水位、两者取高、非 Windows 渠道不读旧指针
- 主规范记录版本高水位规则与 2026-09-17 首次渠道发布 0.1.57 退回 0.1.48、后以 0.1.60 纠偏的事实
2026-09-17 18:47:53 +08:00
kdletters 1a7abfd059 AGC 项目定时快照上传(目标 OSS agc-dev) (#400)
Project CI / AI game creator shell Rust shard 4/4 (push) Has been cancelled
Project CI / AI game creator shell Rust smoke (push) Has been cancelled
Project CI / AI game creator shell Rust crates (push) Has been cancelled
Project CI / Backend tests (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
Project CI / Frontend tests (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / AI game creator shell Rust shard 1/4 (push) Has been cancelled
Project CI / AI game creator shell Rust shard 2/4 (push) Has been cancelled
Project CI / AI game creator shell Rust shard 3/4 (push) Has been cancelled
## 交付内容

- 客户端新增 `project_snapshot` 模块:项目扫描与排除口径、增量索引、差异对比、上传编排、状态查询。
- 触发:工作区窗口存活期间的周期定时器 + 工作区窗口关闭(`CloseRequested`);应用退出只在有界预算内等待在途同步收尾,不重复发起。
- 服务端新增两条登录态路由 `POST /api/agc/project-snapshots/files` 与 `/manifest`,由 api-server 用服务端凭据写入私有前缀 `agc/project-snapshots/v1/{user}/{project}/`;客户端不持有 OSS 凭据、不直连 OSS。
- `platform-oss` 新增内部对象精确写入与探测、项目快照对象键构造;修复 `head_internal_object` 读 HEAD 响应长度恒为 0(会导致服务端"已存在即跳过"永不生效)。
- `shared-contracts` 新增 `agc_project_snapshots` DTO 与项目 ID、相对路径、摘要校验。
- 真实 OSS 存储层冒烟示例 + 客户端真实链路冒烟用例(`#[ignore]`,env 驱动)。
- 登记 `check-config.mjs` 的 native-only 命令白名单,恢复 `npm run agc` 可启动。

## 验证证据

- 存储层:`cargo run -p platform-oss --example agc_project_snapshot_live_smoke` 对真实 `agc-dev` 完成写入 → 读回(contentLength 32)→ 清单写入 → 探针清理。
- HTTP 层:登录态下 7 项校验(401 无 token、400 路径穿越/长度不一致/非法摘要/空正文/重复路径清单)全部符合预期且不写对象。
- 客户端链路(真实项目 gameagent-033b6cf3…):第一次 `synced uploaded=6 uploadedBytes=36694 remoteSkipped=6`,紧接着第二次 `no-op uploaded=0`。
- GUI 触发:`trigger=periodic ... uploaded=6`;把周期设为 600 秒排除干扰、改一个文件后关窗得到 `trigger=project-close ... revision=2 uploaded=1`,索引摘要由 `28d837cd84f8ab62` 推进到 `bff34e2e336d901f`(同步在进程退出前完成)。
- 门禁:AGC `project_snapshot` 14 passed(+1 ignored live)、api-server `project_snapshots` 3 passed、platform-oss 39 passed、shared-contracts 87 passed、`cargo fmt --check`(两处)、`check:encoding`、`check:doc-index`、`git diff --check`、`check-config.mjs` 全部通过。

## 已知未决(不阻塞本里程碑)

- 远端对象只增不减:没有删除路径,也没有 bucket 生命周期规则;要收口需要先定保留语义(清单引用 GC 还是 OSS 生命周期)。
- 部署环境需确认 `GENARRATIVE_AGC_PROJECT_SNAPSHOT_OSS_*` 或回退的 `ALIYUN_OSS_*` 具备目标 bucket 私有前缀的 `PutObject` 权限;未配置时接口返回 503、客户端失败关闭(不推进索引)。
- 缺少按用户/项目的配额与限流(error_reports 有每小时提交上限的先例,本功能没有)。
- 没有界面入口与状态可见性:`read_local_project_snapshot_state` 已注册但未接 UI,失败只写本机日志。

## 不做

- 不做云端下载/恢复、跨设备合并、版本回滚。
- 不改 `/api/external/v1` 与 External OpenAPI,不新增 SpacetimeDB 表。

---------

Co-authored-by: kdletters <61648117+kdletters@users.noreply.github.com>
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/400
2026-09-17 18:34:51 +08:00
kdletters 1c5ff8f852 回填 AGC 更新渠道首次发布证据
Project CI / AI game creator shell Rust smoke (push) Has been cancelled
Project CI / AI game creator shell Rust crates (push) Has been cancelled
Project CI / AI game creator shell Rust shard 2/4 (push) Has been cancelled
Project CI / AI game creator shell Rust shard 3/4 (push) Has been cancelled
Project CI / AI game creator shell Rust shard 4/4 (push) Has been cancelled
Project CI / Backend tests (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
Project CI / Frontend tests (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / AI game creator shell Rust shard 1/4 (push) Has been cancelled
- 记录 Genarrative-Agc-Windows-Build #68 成功发布 dev-win 渠道 0.1.48 与迁移桥
- 记录签名对象与渠道清单逐字一致、安装包尺寸与 SHA-256 与迁移桥登记一致
- 待执行项仅保留客户端真实升级闭环与签名失败拒绝安装
2026-09-17 18:25:26 +08:00
kdletters ce04d8cef4 AGC 发布流水线增加 OSS 演练开关
Project CI / AI game creator shell Rust shard 1/4 (push) Successful in 5m35s
Project CI / AI game creator shell Rust shard 2/4 (push) Has been cancelled
Project CI / AI game creator shell Rust shard 3/4 (push) Has been cancelled
Project CI / AI game creator shell Rust crates (push) Has been cancelled
Project CI / Backend tests (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
Project CI / Frontend tests (push) Has been cancelled
Project CI / AI game creator shell Rust smoke (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / AI game creator shell Rust shard 4/4 (push) Has been cancelled
- Jenkins 增加布尔参数 AGC_RELEASE_DRY_RUN,勾选后只构建并打印上传命令,不写入 OSS
- 参数转换为脚本读取的 AGC_RELEASE_DRY_RUN 环境变量,完成提示区分演练与真发
2026-09-17 18:14:57 +08:00
lhk229 504e26da43 修复策划agent panic死掉问题 (#405)
Project CI / AI game creator shell Rust shard 1/4 (push) Has been cancelled
Project CI / AI game creator shell Rust shard 2/4 (push) Has been cancelled
Project CI / AI game creator shell Rust shard 3/4 (push) Has been cancelled
Project CI / AI game creator shell Rust shard 4/4 (push) Has been cancelled
Project CI / AI game creator shell Rust smoke (push) Has been cancelled
Project CI / AI game creator shell Rust crates (push) Has been cancelled
Project CI / Backend tests (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
Project CI / Frontend tests (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
Reviewed-on: https://git.genarrative.world/git/GenarrativeAI/Genarrative/pulls/405
2026-09-17 18:11:54 +08:00
kdletters fc14190f58 图集切片模式改为必须显式声明并补齐决策要求 (#408)
Project CI / AI game creator shell Rust shard 1/4 (push) Has been cancelled
Project CI / AI game creator shell Rust shard 2/4 (push) Has been cancelled
Project CI / AI game creator shell Rust shard 3/4 (push) Has been cancelled
Project CI / AI game creator shell Rust shard 4/4 (push) Has been cancelled
Project CI / AI game creator shell Rust smoke (push) Has been cancelled
Project CI / AI game creator shell Rust crates (push) Has been cancelled
Project CI / Backend tests (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
Project CI / Frontend tests (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
## 背景

切图新增基于连通域的切分后,LLM 仍倾向显式传 `sliceMode=grid`:参数只存在于部分 LLM 可见面、带默认值、没有任何决策规则,生成结果也不回显生效模式。

## 变更

- 平台:`/api/editor/icon-spritesheets/generations` 与 `/api/external/v1/editor/icon-spritesheets/generations` 把 `sliceMode` 改为必填并移除默认值;缺失、空白或未知取值在引用解析、定价与任何 provider / OSS 副作用之前返回 `400`,错误统一带 `field` 与决策要求。
- 契约:`grid` 必须同时提供 `gridX`/`gridY`,`connected-components` 不接受网格尺寸;`sliceCount` 只约束连通域切分,请求与响应的公开上限统一为 `256`;OpenAPI 去掉默认值并补必填与失败语义。
- AGC:MCP 工具说明去掉默认值并补决策要求,桥接层新增可测试的切分声明校验;原生工具 `canvas.asset_generate` 暴露 `sliceMode/gridX/gridY/sliceCount` 并要求图集显式声明;生成结果回显 `sliceMode/gridX/gridY` 与 `slicePaths`;严格图集在本地提交前校验平台回显与请求声明一致。
- 标准美术包:显式声明 `connected-components` 加 `sliceCount=4`,并在四张 canonical 切片用途映射前校验数量,禁止截断或错位。
- 前端与画板:画板 Agent 工具装配与画板提交计划显式声明连通域切分;前端类型要求显式 `sliceMode` 并在本地校验声明自洽。
- 文档与 Skill:主规范、OpenAPI、AGC Skill、外部编辑器 Skill、里程碑与实施计划、共享决策记录同步更新。
- 测试环境:测试构建对提权 Windows 主机上系统临时目录的所有者偏差做一次性所有者初始化重试,临时目录之外的越权所有者继续失败关闭。

## 兼容性影响

省略 `sliceMode` 的旧调用方(含已发布但未更新的 AGC 客户端与第三方外部 API 调用方)会在图集生成上收到 `400`;这是本次"不允许默认值"的预期结果,仓库内自有调用方已全部改为显式声明。

## 验证

- 平台:`slice_mode_must_be_declared_*` 与 OpenAPI 契约测试通过;全量 `cargo test -p api-server` 1043 通过 / 11 失败(`wallet_refund_outbox` 临时文件 `拒绝访问`,已在改动前基线复现,属本机环境)。
- AGC:`slice` 30、`spritesheet` 21、`direct_tools_mcp` 23、`agent_native_tools` 16、`canvas_generation_tests` 83、提示词上限与桥接门禁各 1 条、`cargo check --tests` 全部通过。
- 前端:182 条定向测试与 `typecheck` 通过。
- 门禁:`cargo fmt --check`(两个 workspace)、`check:encoding`、`check:doc-index`、`git diff --check` 通过。
- 未验证:真实 Provider 与浏览器试玩、确定性 e2e 车道;整机全量 AGC 单进程运行在本机受提权 shell 的所有者与时序问题影响,不作为门禁信号。

---------

Co-authored-by: kdletters <61648117+kdletters@users.noreply.github.com>
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/408
2026-09-17 18:10:34 +08:00
suzmii 7edc452c6a 重构AGC资源画布菜单与卡片入口(#409)
Project CI / AI game creator shell Rust shard 4/4 (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 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 3/4 (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
主菜单保留前五项,其余操作通过向上展开的更多菜单访问
类型与信息入口下沉资源卡片,并复用共享画布角标
补充菜单键盘、滚轮归属、换选及资源操作链路回归
同步方案A规范与待人工验收记录
2026-09-17 18:09:27 +08:00
kdletters 5e4ff54a9d 删除模板工程内置的嵌套 package-lock
Project CI / AI game creator shell Rust shard 1/4 (push) Has been cancelled
Project CI / AI game creator shell Rust shard 2/4 (push) Has been cancelled
Project CI / AI game creator shell Rust shard 3/4 (push) Has been cancelled
Project CI / AI game creator shell Rust shard 4/4 (push) Has been cancelled
Project CI / AI game creator shell Rust smoke (push) Has been cancelled
Project CI / AI game creator shell Rust crates (push) Has been cancelled
Project CI / Backend tests (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
Project CI / Frontend tests (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
- 模板 fixture 内的 package-lock.json 触发 workspace 守卫的「禁止嵌套 lockfile」规则,导致 master 门禁失败
- 其余五个模板都只提交 project 内容与 package.json,删除该文件与它们保持一致
- 模板 zip 由发布脚本现场打包并重新计算大小与哈希,仓库内没有引用该 lock 的脚本或测试
2026-09-17 18:04:21 +08:00
kdletters 1f5b7b250a 修正首页推荐位用例断言到模板库
- 首页「灵感推荐」已被模板库推荐位替换,用例改为断言模板库推荐卡片、已下载徽标与共 N 个模板计数
- 用例改为断言点击推荐位进入模板库页面,且不触发下载或由模板创建项目
- 保留不请求已退役展示流接口的断言
2026-09-17 18:03:15 +08:00
kdletters a5fd25f10a 客户端更新切换到官方更新插件并按渠道分发
- 客户端接入 tauri-plugin-updater:原生侧注册插件,删除自研更新下载命令、下载进度事件与安装器启动逻辑
- 客户端更新服务与更新提示改走官方插件接口,删除自研清单解析、版本比较与下载实现
- 更新能力只授予客户端主窗口,移除只为自研清单放行的 OSS 白名单与 CSP 连接项
- 新增构建期更新检查开关:开发态默认关闭,agc 启动不请求更新清单、不显示更新入口
- 发布脚本按渠道生成官方更新插件清单与签名,universal macOS 产物同时挂两个平台键,缺签名失败关闭
- 发布脚本按渠道上传安装包、签名与渠道清单,并为 dev-win 生成旧协议 sha256 迁移清单
- 构建期按渠道注入更新端点配置,渠道与目标平台不匹配时发布失败关闭
- Jenkins 流水线新增渠道参数与签名凭据注入,归档补充签名与迁移清单
- 新增发布上传 dry-run 开关,只打印 ossutil 命令且不回显凭据
- 更新技术方案与开发运维文档,登记 macOS 渠道落地待办
2026-09-17 17:56:53 +08:00
kdletters 5db407c3dc 新增 AGC 模板库与由模板创建项目链路 (#396)
Project CI / AI game creator shell Rust shard 3/4 (push) Successful in 7m12s
Project CI / AI game creator shell Rust shard 2/4 (push) Successful in 7m18s
Project CI / AI game creator shell Rust shard 1/4 (push) Successful in 7m25s
Project CI / AI game creator shell Rust shard 4/4 (push) Successful in 7m22s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m49s
Project CI / AI game creator shell Rust crates (push) Successful in 2m36s
Project CI / Repository checks (push) Failing after 1m11s
Project CI / Frontend tests (push) Failing after 4m37s
Project CI / AI game creator shell web tests (push) Failing after 4m6s
Project CI / Native shell tests (push) Successful in 9m39s
Project CI / Backend tests (push) Successful in 10m12s
## 交付范围

- OSS `agc-dev` bucket 的 `templates/` 前缀作为 AGC 游戏模板库(**去掉 `agc/` 这一层**;`agc/` 继续只放客户端安装包与更新清单)。
- 模板正文改为 zip(zip 根 == AGC 项目根,如 `game/index.html`);清单补齐 `tags`、封面字段与包大小/摘要,`templateVersion` 用于判断是否需要重下。
- 客户端:Rust 模板库模块、模板库全屏页、首页模板推荐位、左侧导航入口。

## 客户端行为

- `fetch_game_template_library`:读取并校验清单(≤4 MiB),缓存到 `<app_data>/templates/index.json`;网络失败回退本机缓存并标注 `source=cache`。
- `download_game_template`:按清单下载 zip(≤512 MiB),校验字节数与 SHA-256 后解压到 `<app_data>/templates/installed/<id>/<version>/`,最后写 `installed.json` 作为安装完成标记。
- `create_automatic_local_game_project_from_template`:先把模板文件铺进新项目目录,再走既有 `init_local_game_project_at` 补 `.agent` 清单与标准目录;失败删除半成品目录。
- 解压只接受普通文件与目录(拒绝绝对路径、`..`、盘符、符号链接),安装目录名由标识符白名单拼出;远端只信「受信任 OSS 主机 + 对象键」,清单里的地址字段不参与请求。
- UI:搜索(空白分隔多关键词「与」)、标签/运行时筛选、仅看已下载、封面卡片与已下载徽标;「使用模板」在版本落后时先重下再建项。

## 文档与脚本

- 主规范 `docs/technical/【技术方案】AGC模板库与模板建项-2026-09-17.md`;里程碑与实施计划见 `docs/project-memory/plans/`;`decision-log.md` 记录库路径、清单 schema、安装缓存目录与 CSP 约定。
- 发布脚本 `scripts/agc-template-library-publish.mjs`(`--dry-run` 校验 → 上传 → 回读校验)。
- 首页「灵感推荐」替换为模板库推荐位,删除本机灵感图目录与 `InspirationGallery.tsx`;`tauri.conf.json` 的 `img-src` 放行受信任 OSS 主机用于加载封面。

## 验证

- `cargo test --bin genarrative-ai-game-creator-shell template_library`:9 passed;`--ignored` 真连检查 `fetches_the_live_template_library_index` 通过。
- `npx vitest run src/features/template-library`:9 passed。
- `npm run typecheck`、`cargo fmt --check`、`npm run check:encoding`、`node scripts/check-doc-index.mjs`、`git diff --check` 均通过。
- OSS 侧匿名复核:`templates/index.json`、各 `cover.png` 与 `template.zip` 均返回 200。

## 未做 / 待确认

- 本轮未做客户端点击级人工验收(下一步单独验证并把结果补进此 PR)。
- 模板封面目前是占位标题卡,正式封面由后续模板包提供。

---------

Co-authored-by: kdletters <61648117+kdletters@users.noreply.github.com>
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/396
2026-09-17 17:48:06 +08:00
lhk229 de9e8e0c7f 修复运行时默认重试次数的测试断言
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
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 smoke (push) Successful in 2m7s
Project CI / AI game creator shell Rust shard 4/4 (push) Successful in 4m22s
Project CI / AI game creator shell Rust crates (push) Successful in 2m5s
Project CI / Repository checks (push) Successful in 5m27s
Project CI / AI game creator shell Rust shard 1/4 (push) Successful in 7m9s
Project CI / AI game creator shell Rust shard 2/4 (push) Successful in 6m10s
Project CI / AI game creator shell Rust shard 3/4 (push) Successful in 6m27s
Project CI / Frontend tests (push) Successful in 6m34s
Project CI / Native shell tests (push) Successful in 7m57s
Project CI / Backend tests (push) Successful in 10m8s
Project CI / AI game creator shell web tests (push) Has been cancelled
将恢复默认配置的重试次数断言同步为10。
补充默认配置变更时的测试核对规则。
2026-09-17 17:03:45 +08:00
lhk229 c958e1955b Merge branch 'master' into opt/design-llm-call
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
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 2/4 (push) Successful in 6m57s
Project CI / AI game creator shell Rust shard 4/4 (push) Successful in 6m54s
Project CI / AI game creator shell Rust shard 3/4 (push) Successful in 7m18s
Project CI / AI game creator shell Rust shard 1/4 (push) Successful in 7m37s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m55s
Project CI / AI game creator shell Rust crates (push) Successful in 2m17s
Project CI / Frontend tests (push) Failing after 3m52s
Project CI / Repository checks (push) Failing after 3m52s
Project CI / Native shell tests (push) Successful in 8m39s
Project CI / AI game creator shell web tests (push) Failing after 4m17s
Project CI / Backend tests (push) Successful in 9m45s
2026-09-17 16:26:16 +08:00
lhk229 1b579acf47 提高客户端LLM默认重试次数到10
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
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
内置默认值 DEFAULT_GAME_CREATOR_LLM_MAX_RETRIES 由 2 改为 10
随App分发的配置模板 game-creator.config.json 的 maxRetries 同步为 10
设置对话框草稿兜底值 maxRetries 同步为 10
2026-09-17 08:22:52 +00:00
k88936 ff84fa7b04 Merge pull request '修复推理档弹层被裁剪问题,增加 CSS 覆盖声明以确保窄布局下弹层完整显示。' (#401) from fix/effort-panel-overlay into master
Project CI / AI game creator shell Rust shard 3/4 (push) Has been cancelled
Project CI / AI game creator shell Rust smoke (push) Has been cancelled
Project CI / AI game creator shell Rust crates (push) Has been cancelled
Project CI / Backend tests (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
Project CI / Frontend tests (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / AI game creator shell Rust shard 1/4 (push) Has been cancelled
Project CI / AI game creator shell Rust shard 2/4 (push) Has been cancelled
Project CI / AI game creator shell Rust shard 4/4 (push) Has been cancelled
Reviewed-on: #401
2026-09-17 16:21:52 +08:00
k88936 1b56c0a586 Merge remote-tracking branch 'origin/master' into fix/effort-panel-overlay
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Successful in 5m32s
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Successful in 6m18s
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Successful in 4m56s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m5s
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Successful in 4m14s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m58s
Project CI / Repository checks (pull_request) Successful in 4m14s
Project CI / Frontend tests (pull_request) Successful in 5m14s
Project CI / Native shell tests (pull_request) Successful in 8m38s
Project CI / Backend tests (pull_request) Successful in 9m40s
Project CI / AI game creator shell web tests (pull_request) Successful in 4m55s
# Conflicts:
#	docs/project-memory/shared-memory/pitfalls.md
2026-09-17 15:56:56 +08:00
k88936 efdb364a52 修复推理档弹层被裁剪问题,增加 CSS 覆盖声明以确保窄布局下弹层完整显示。
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
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
2026-09-17 15:54:07 +08:00
lhk229 ebc5dfe7db 修复策划工具乱序局部修改导致的中断 (#399)
Project CI / AI game creator shell Rust shard 1/4 (push) Successful in 6m39s
Project CI / AI game creator shell Rust shard 2/4 (push) Successful in 5m11s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m2s
Project CI / AI game creator shell Rust shard 3/4 (push) Successful in 5m29s
Project CI / AI game creator shell Rust shard 4/4 (push) Successful in 4m18s
Project CI / AI game creator shell Rust crates (push) Successful in 2m47s
Project CI / Repository checks (push) Successful in 4m9s
Project CI / Frontend tests (push) Successful in 5m20s
Project CI / Native shell tests (push) Successful in 8m16s
Project CI / Backend tests (push) Successful in 9m49s
Project CI / AI game creator shell web tests (push) Successful in 4m4s
按原文位置排序并顺序拼接补丁,避免替换偏移失效。
新增乱序、中文与长度变化的局部修改回归测试。
同步策划 Agent 批量局部修改技术说明。

Reviewed-on: https://git.genarrative.world/git/GenarrativeAI/Genarrative/pulls/399
2026-09-17 14:58:21 +08:00
kdletters cd9faae9b2 修复 agc_tools 媒体资源提示词上限并按 kind 暴露 (#398)
Project CI / AI game creator shell Rust shard 3/4 (push) Has been cancelled
Project CI / AI game creator shell Rust shard 1/4 (push) Has been cancelled
Project CI / AI game creator shell Rust shard 2/4 (push) Has been cancelled
Project CI / AI game creator shell Rust shard 4/4 (push) Has been cancelled
Project CI / AI game creator shell Rust smoke (push) Has been cancelled
Project CI / AI game creator shell Rust crates (push) Has been cancelled
Project CI / Backend tests (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
Project CI / Frontend tests (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
## 改动

- 提示词上限收敛为 `resource_edit_prompt_max_chars` 单一权威:`agc_tools` MCP 工具层、客户端受控工具桥与提交校验共用同一数字与拒绝文案,不再出现「schema 写 4000、真实上限按 kind 分」的分叉。
- `agc_create_or_derive_resource` 的 schema 逐 kind 声明 `prompt.maxLength`(background-music / sound-effect / video 与 character-animation),`prompt` 描述写明每个数字;`agc_edit_image` 继续用图片口径 32000。
- 工具桥不再用通用 4000 校验 prompt:图片编辑 4000~32000 的提示词不再被误报成「超出安全边界」。
- 源资源未登记时的错误文案补上可执行两步:先用 `agc_list_registered_assets` 选已有 localAssetId;只在项目里的文件先 `agc_list_project_files` 确认 `assetImportable=true`,再用 `agc_import_account_assets.localPaths` 登记后重试。`agc_remove_background` 复用同一条文案。
- skill 包 `agc-client-projection` 的 SKILL.md 与 projection-contract.md 写明四个上限,并说明超限要在本地收敛而不是原样重发;清单指纹同步到 `2026-08-26.18`(已合并 master 的抠图文案)。
- 前端 `resourceEditModel.ts` 补注释指向 Rust 权威函数,数字未动。
- decision-log、pitfalls 与《AI游戏创作智能体App实施计划》记录本轮口径;未改 External v1 契约 / OpenAPI、SpacetimeDB schema 与客户端 UI 行为。

## 问题

| 编号 | 问题 | 本 PR 状态 |
| --- | --- | --- |
| P1 | 背景音乐提示词真实上限 140,但 schema 只写 4000、skill 未写明,agent 写一句正常长度描述必被硬拒 | 已修复:口径单源 + 逐 kind 暴露 + skill 写明 |
| P2 | 音效 1900 与图片编辑 32000 的上限只在 Rust 内部生效,MCP 与工具桥各自硬编码或误报 | 已修复:三处共用同一函数,图片编辑不再误报安全边界 |
| P3 | 源资源未登记时只报「不属于当前项目已登记资源」,模型会原地重试 | 已修复:文案给出 `agc_list_registered_assets` 与登记工具两步动作 |
| P4 | 这两个工具此前没有端到端用例,同类漂移无法被门禁拦住 | 已补:MCP 工具层 → 真实工具桥 → 假平台的契约用例 + 两条按 kind 上限门禁 |

## 验证

- `agent::direct_tools_mcp::tests` 23 passed / 0 failed:含新增的按 kind 上限门禁、图片快速编辑契约(断言 `POST /api/editor/images/edits` 的路径、Bearer、Idempotency-Key、正文且不得回填 assetKind)、背景音乐契约(断言 `POST /api/editor/audios/background-music/generations` 的 `gptDescriptionPrompt` 与 `makeInstrumental`)、超限零桥请求、未登记源资源提示。
- `agent::direct_tool_bridge::tests` 18 passed / 7 failed;`agent::skill_pack` 4 passed;`npm run agc:skill-pack:check` 与 `skill-pack:test` 通过(version `2026-08-26.18`)。
- AGC `typecheck`(tsc + skill-pack check + check-config)、`resourceEditModel` 6 项前端测试、`npm run check:encoding`、`npm run check:doc-index`、`cargo fmt --check`、`git diff --check` 通过。
- 那 7 条(以及 `project::resource_editor` 45 条)失败与本 PR 无关:全部是 `tempfile::tempdir()` 的 `Windows 安全对象不属于当前用户`,已 stash 改动并用基线复跑确认失败集合一致。
- 未跑整包 AGC Rust 全量分片、`npm run lint` 聚合门禁与 CI;未做任何付费生成。工具 schema 与 skill 文案都在应用内,终端用户需重新构建客户端才能看到修复效果。

---------

Co-authored-by: kdletters <61648117+kdletters@users.noreply.github.com>
Reviewed-on: #398
2026-09-17 14:56:56 +08:00
suzmii d85622069d Merge pull request '修复 AGC 画布交互、JSON 识别与对话历史分页' (#390) from fix/agc-canvas-json into master
Project CI / AI game creator shell Rust shard 1/4 (push) Successful in 6m27s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m12s
Project CI / AI game creator shell Rust shard 3/4 (push) Successful in 6m6s
Project CI / AI game creator shell Rust shard 2/4 (push) Successful in 6m48s
Project CI / AI game creator shell Rust shard 4/4 (push) Successful in 6m23s
Project CI / AI game creator shell Rust crates (push) Successful in 3m16s
Project CI / Frontend tests (push) Successful in 4m23s
Project CI / Repository checks (push) Successful in 5m0s
Project CI / Backend tests (push) Successful in 7m48s
Project CI / AI game creator shell web tests (push) Successful in 3m38s
Project CI / Native shell tests (push) Successful in 10m45s
Reviewed-on: #390
Reviewed-by: 孔令弘 <ink29535@proton.me>
2026-09-17 14:02:12 +08:00
suzmii 036395c6c9 修复历史重读后旧消息追加到末尾的乱序
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Successful in 7m9s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m24s
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Successful in 6m26s
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Successful in 6m49s
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Successful in 7m23s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m49s
Project CI / Repository checks (pull_request) Failing after 4m16s
Project CI / Frontend tests (pull_request) Successful in 5m46s
Project CI / Native shell tests (pull_request) Successful in 9m22s
Project CI / Backend tests (pull_request) Successful in 10m6s
Project CI / AI game creator shell web tests (pull_request) Failing after 4m22s
区分历史回读与实时消息来源,保留运行时所有权语义
防止旧页消息在历史刷新后追加到最新回复末尾
增加重新读取历史后再次翻页的顺序和去重回归
同步对话历史规范与实施计划
2026-09-17 13:54:00 +08:00
suzmii d1f53fda4d Merge branch 'master' into fix/agc-canvas-json
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Successful in 6m49s
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Successful in 7m3s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m21s
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Successful in 7m56s
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Successful in 6m50s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 3m1s
Project CI / Frontend tests (pull_request) Successful in 4m38s
Project CI / Repository checks (pull_request) Successful in 3m43s
Project CI / Backend tests (pull_request) Successful in 8m30s
Project CI / AI game creator shell web tests (pull_request) Successful in 4m7s
Project CI / Native shell tests (pull_request) Successful in 25m34s
2026-09-17 13:05:33 +08:00
lhk229 9169ae0dad Merge pull request '修复前端测试状态泄漏与异步断言竞态' (#397) from codex/ci-frontend-stability-20260917 into master
Project CI / AI game creator shell Rust shard 2/4 (push) Successful in 6m15s
Project CI / AI game creator shell Rust shard 4/4 (push) Successful in 6m59s
Project CI / AI game creator shell Rust shard 1/4 (push) Successful in 7m18s
Project CI / AI game creator shell Rust shard 3/4 (push) Successful in 7m46s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m0s
Project CI / AI game creator shell Rust crates (push) Successful in 2m21s
Project CI / Frontend tests (push) Successful in 5m22s
Project CI / Repository checks (push) Successful in 4m26s
Project CI / Backend tests (push) Successful in 9m22s
Project CI / AI game creator shell web tests (push) Successful in 3m53s
Project CI / Native shell tests (push) Successful in 9m49s
Reviewed-on: https://git.genarrative.world/git/GenarrativeAI/Genarrative/pulls/397
2026-09-17 12:29:26 +08:00
lhk229 a68a9621a7 修复前端测试状态泄漏与异步断言竞态
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Successful in 7m4s
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Successful in 6m12s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m43s
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Successful in 7m7s
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Successful in 4m48s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m7s
Project CI / Repository checks (pull_request) Successful in 4m50s
Project CI / Frontend tests (pull_request) Successful in 5m52s
Project CI / Backend tests (pull_request) Successful in 9m13s
Project CI / Native shell tests (pull_request) Successful in 8m3s
Project CI / AI game creator shell web tests (pull_request) Successful in 5m0s
隔离创作主页换签网络请求并使用独立响应

恢复快捷键选择状态、持久化路由和UI编辑页宿主mock

修正虚拟树尺寸与选择时序并纳入换签Hook测试

记录全量与随机顺序测试验证方式
2026-09-17 11:56:17 +08:00
suzmii 9d374a57b1 修正运行不可用提示的过期测试契约
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Successful in 5m28s
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Successful in 5m54s
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Successful in 5m32s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m0s
Project CI / Backend tests (pull_request) Failing after 11s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m17s
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Successful in 5m52s
Project CI / Repository checks (pull_request) Failing after 11s
Project CI / Frontend tests (pull_request) Successful in 5m46s
Project CI / AI game creator shell web tests (pull_request) Successful in 4m15s
Project CI / Native shell tests (pull_request) Successful in 9m21s
恢复运行提示与资源选择解耦的业务逻辑
更新界面源码契约测试,保留资源选中交互回归
补充运行提示及无障碍关联的验收口径
2026-09-17 11:51:14 +08:00
lhk229 d9431b51da 隔离创作主页资源预览测试缓存
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 2/4 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust shard 4/4 (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 3/4 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust shard 2/4 (push) Successful in 7m6s
Project CI / AI game creator shell Rust shard 4/4 (push) Successful in 7m16s
Project CI / AI game creator shell Rust shard 1/4 (push) Successful in 7m38s
Project CI / AI game creator shell Rust shard 3/4 (push) Successful in 7m56s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m6s
Project CI / AI game creator shell Rust crates (push) Successful in 2m36s
Project CI / Frontend tests (push) Failing after 4m59s
Project CI / Repository checks (push) Successful in 4m53s
Project CI / Native shell tests (push) Successful in 9m52s
Project CI / Backend tests (push) Successful in 10m33s
Project CI / AI game creator shell web tests (push) Successful in 4m13s
每个用例前后清理签名资源地址缓存,避免共享调度状态影响活动图片断言
2026-09-17 10:05:22 +08:00
suzmii 7f9dce5f79 修复画布运行不可用提示契约
恢复资源选中状态下运行提示的正确显示条件

使源码契约测试与实际行为保持一致
2026-09-17 09:48:19 +08:00
lhk229 9beb16f203 稳定CI测试并发与工作流 (#393)
Project CI / AI game creator shell Rust shard 2/4 (push) Successful in 7m12s
Project CI / AI game creator shell Rust shard 4/4 (push) Successful in 7m25s
Project CI / AI game creator shell Rust shard 1/4 (push) Successful in 7m46s
Project CI / AI game creator shell Rust shard 3/4 (push) Successful in 8m8s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m51s
Project CI / AI game creator shell Rust crates (push) Successful in 2m8s
Project CI / Frontend tests (push) Failing after 4m23s
Project CI / Repository checks (push) Successful in 4m31s
Project CI / Backend tests (push) Successful in 9m14s
Project CI / Native shell tests (push) Successful in 9m5s
Project CI / AI game creator shell web tests (push) Successful in 5m19s
为Project CI增加同分支并发取消,避免旧运行覆盖新结果

将Vitest默认线程数固定为1,降低异步UI测试竞态

Reviewed-on: #393
Co-authored-by: Linghong <ink29535@proton.me>
Co-committed-by: Linghong <ink29535@proton.me>
2026-09-17 09:18:39 +08:00
lhk229 9b6ed8a4cf 整理抠图测试导入并明确对外说明边界
Project CI / AI game creator shell Rust shard 1/4 (push) Successful in 7m13s
Project CI / AI game creator shell Rust shard 2/4 (push) Successful in 5m52s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m49s
Project CI / AI game creator shell Rust shard 4/4 (push) Successful in 4m50s
Project CI / AI game creator shell Rust shard 3/4 (push) Successful in 6m48s
Project CI / AI game creator shell Rust crates (push) Successful in 2m41s
Project CI / Frontend tests (push) Successful in 5m30s
Project CI / Repository checks (push) Successful in 4m22s
Project CI / Native shell tests (push) Successful in 9m3s
Project CI / Backend tests (push) Successful in 9m19s
Project CI / AI game creator shell web tests (push) Successful in 5m12s
将主站与客户端抠图测试模块的导入统一放到模块顶部
明确 provider 选择与兜底策略仅保留在内部技术方案中
2026-09-17 00:54:28 +08:00
lhk229 16deb0ad61 补齐抠图参数透传与验收
修复flat自动识别门禁并严格校验模式和颜色

保持旧请求幂等指纹并区分客户端抠图意图

同步工具说明和Skill契约并补充定向测试

记录真实BgFilter验证及本地数据库阻塞的待验收项
2026-09-17 00:54:28 +08:00
lhk229 13f56e644d 补充抠图模式调用说明
说明complex语义分割与flat纯色背景抠图

明确纯色背景优先使用flat并移除内部实现术语
2026-09-17 00:54:28 +08:00
lhk229 e08b031761 调整抠图模式参数说明 2026-09-17 00:54:28 +08:00
lhk229 70ad794b28 扩展AGC抠图客户端参数
支持complex与flat模式及auto背景色

保留旧客户端参数调用兼容性
2026-09-17 00:54:28 +08:00
lhk229 ca761e093c 接通抠图模式到BgFilter队列
透传backgroundMode和screenColor到内部worker

保留auto及省略颜色的下游识别语义
2026-09-17 00:54:28 +08:00
lhk229 a17367112f 增加主站抠图参数归一化
缺省模式兼容为complex并校验颜色格式

将auto颜色原样保留给BgFilter
2026-09-17 00:54:28 +08:00
lhk229 d7a0c3cffd 扩展主站抠图请求契约
增加backgroundMode和screenColor可选字段

同步External v1 OpenAPI抠图模式说明
2026-09-17 00:54:28 +08:00
lhk229 fa64819b6e 冻结BgFilter抠图服务契约
记录flat与complex模式及auto背景色行为

补充服务器认证头和当前运行版本
2026-09-17 00:54:28 +08:00
lhk229 f748d36d21 补充AGC抠图模式透传方案
新增主站与BgFilter模式及背景色契约

补充AGC客户端同步任务与兼容性规则

记录联调验收和发布回滚边界
2026-09-17 00:54:28 +08:00
suzmii ecaf1e8cec Merge branch 'master' into fix/agc-canvas-json
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Successful in 4m50s
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Successful in 6m22s
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Successful in 5m19s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m9s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m45s
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Successful in 5m38s
Project CI / Frontend tests (pull_request) Failing after 3m50s
Project CI / Repository checks (pull_request) Failing after 4m18s
Project CI / Native shell tests (pull_request) Successful in 8m2s
Project CI / AI game creator shell web tests (pull_request) Failing after 3m31s
Project CI / Backend tests (pull_request) Successful in 8m50s
2026-09-16 22:58:25 +08:00
lhk229 79b153e3fa 修复Direct活动回合重试类型错误
Project CI / AI game creator shell Rust shard 4/4 (push) Successful in 6m53s
Project CI / AI game creator shell Rust shard 2/4 (push) Successful in 7m5s
Project CI / AI game creator shell Rust shard 3/4 (push) Successful in 7m26s
Project CI / AI game creator shell Rust shard 1/4 (push) Successful in 7m51s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m49s
Project CI / AI game creator shell Rust crates (push) Successful in 2m23s
Project CI / Frontend tests (push) Failing after 4m42s
Project CI / Repository checks (push) Successful in 4m44s
Project CI / Backend tests (push) Successful in 9m27s
Project CI / Native shell tests (push) Successful in 9m17s
Project CI / AI game creator shell web tests (push) Failing after 5m2s
重试等待 Promise 显式声明为 void,修复 shell typecheck 与原生构建失败。

补充卸载后取消读取重试的回归测试。
2026-09-16 21:53:19 +08:00
lhk229 362edcc49d 修复前端测试偶发超时与异步清理
Direct 活动回合读取失败后的重试定时器随组件卸载清理,避免测试环境销毁后访问 window。

后台素材查询大量缩略图测试合并可见性触发,并补充独立超时预算。

创作首页活动图与资源卡预览调度重载用例分别补充独立超时预算。

清单快照测试补齐 Direct 活动回合 IPC mock,避免未预期命令进入重试。
2026-09-16 21:53:19 +08:00
kdletters 1e434e0cb5 文档记录 CI 宿主 CPU 上限:Jenkins 16 核 / Gitea Actions runner 12 核
Project CI / AI game creator shell Rust shard 4/4 (push) Successful in 6m57s
Project CI / AI game creator shell Rust shard 2/4 (push) Successful in 7m10s
Project CI / AI game creator shell Rust shard 3/4 (push) Successful in 7m35s
Project CI / AI game creator shell Rust shard 1/4 (push) Successful in 7m56s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m46s
Project CI / AI game creator shell Rust crates (push) Successful in 1m47s
Project CI / Repository checks (push) Successful in 3m34s
Project CI / Frontend tests (push) Successful in 4m25s
Project CI / Native shell tests (push) Successful in 7m56s
Project CI / AI game creator shell web tests (push) Successful in 4m32s
Project CI / Backend tests (push) Successful in 10m1s
- 在【开发运维】本地开发验证与生产运维新增「CI 宿主 CPU 上限」小节,写明 jenkins.service CPUQuota=1600% 与 gitea-stack runner cpus=12.0 的生效位置、核验命令和回滚方式
- 在 shared-memory/decision-log.md 补记该资源上限决策的背景、边界与验证证据
2026-09-16 21:17:30 +08:00
lhk229 cec971c438 修复局部修改工具的缺陷和偶发锁问题 (#386)
Project CI / AI game creator shell Rust shard 1/4 (push) Successful in 5m49s
Project CI / AI game creator shell Rust shard 2/4 (push) Successful in 4m50s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m53s
Project CI / AI game creator shell Rust shard 3/4 (push) Successful in 5m16s
Project CI / AI game creator shell Rust shard 4/4 (push) Successful in 4m1s
Project CI / AI game creator shell Rust crates (push) Successful in 2m14s
Project CI / Frontend tests (push) Failing after 4m6s
Project CI / Repository checks (push) Successful in 4m33s
Project CI / Native shell tests (push) Successful in 6m33s
Project CI / Backend tests (push) Successful in 8m26s
Project CI / AI game creator shell web tests (push) Successful in 3m43s
Reviewed-on: https://git.genarrative.world/git/GenarrativeAI/Genarrative/pulls/386
Co-authored-by: Linghong <ink29535@proton.me>
Co-committed-by: Linghong <ink29535@proton.me>
2026-09-16 19:53:23 +08:00
suzmii fca3df964c Merge branch 'master' into fix/agc-canvas-json
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Successful in 5m15s
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Successful in 4m31s
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Successful in 4m21s
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Successful in 5m1s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m39s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m48s
Project CI / Frontend tests (pull_request) Failing after 3m36s
Project CI / Repository checks (pull_request) Failing after 3m56s
Project CI / Native shell tests (pull_request) Successful in 6m40s
Project CI / AI game creator shell web tests (pull_request) Failing after 3m18s
Project CI / Backend tests (pull_request) Successful in 8m18s
2026-09-16 19:29:05 +08:00
lhk229 70157673b6 Merge branch 'master' into fix/ci
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
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 3/4 (push) Successful in 5m27s
Project CI / AI game creator shell Rust shard 1/4 (push) Successful in 5m46s
Project CI / AI game creator shell Rust shard 2/4 (push) Successful in 6m12s
Project CI / AI game creator shell Rust shard 4/4 (push) Successful in 6m30s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m41s
Project CI / AI game creator shell Rust crates (push) Successful in 2m48s
Project CI / Frontend tests (push) Successful in 4m49s
Project CI / Repository checks (push) Successful in 3m43s
Project CI / Native shell tests (push) Successful in 6m41s
Project CI / Backend tests (push) Successful in 7m17s
Project CI / AI game creator shell web tests (push) Successful in 3m26s
2026-09-16 19:07:53 +08:00
suzmii ac8a51ca79 同步master最新基线并准备画布修复PR
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
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
合入平台会话与主线测试修复
保持画布交互、JSON识别和对话历史分页修复范围不变
2026-09-16 18:59:32 +08:00
kdletters 492e9e63af 合入 AGC 终止链路 abort 闪退修复
Project CI / AI game creator shell Rust shard 1/4 (push) Successful in 5m20s
Project CI / AI game creator shell Rust crates (push) Has been cancelled
Project CI / Backend tests (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
Project CI / Frontend tests (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / AI game creator shell Rust smoke (push) Has been cancelled
Project CI / AI game creator shell Rust shard 2/4 (push) Has been cancelled
Project CI / AI game creator shell Rust shard 3/4 (push) Has been cancelled
Project CI / AI game creator shell Rust shard 4/4 (push) Has been cancelled
codex_app_server 新增 spawn_codex_app_server_task,统一经 tauri::async_runtime::spawn 派发
终止链路、CodexThreadLease::drop、CodexTurnGuard::drop 三处不再在同步命令线程上 tokio::spawn
新增回归用例 codex_app_server_task_dispatch_needs_no_tokio_runtime_context
补记 tokio::spawn 导致 abort 闪退、cargo test 重写 generated 绑定两条踩坑
2026-09-16 18:58:19 +08:00
lhk229 57fae7037a 修复 Agent 异步测试等待
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Successful in 5m13s
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Successful in 5m24s
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Successful in 5m52s
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Successful in 6m12s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m38s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m42s
Project CI / Frontend tests (pull_request) Successful in 4m28s
Project CI / Repository checks (pull_request) Successful in 3m39s
Project CI / Native shell tests (pull_request) Successful in 6m59s
Project CI / Backend tests (pull_request) Successful in 7m37s
Project CI / AI game creator shell web tests (pull_request) Successful in 3m55s
移除不稳定的项目页文案前置

保留刷新 Agent 与拆解任务按钮就绪检查
2026-09-16 10:52:25 +00:00
suzmii 1b010fb1f8 修复DirectProject对话历史分页卡页
聊天历史按有效消息分页并返回原生游标,保留默认原始切片接口
工具和推理记录不占聊天页名额,逐行过滤避免传回大段工具输出
隔离重新加载和项目切换的迟到响应,补齐单飞、重试与消息去重
补充原生和真实App回归测试,增加人工只读日志重放入口
更新B05状态、规范与PR验收记录,不提交用户原始日志
2026-09-16 18:46:47 +08:00
kdletters 2bcfa10647 修复 AGC 客户端点「终止」整体闪退:同步命令线程改走 Tauri 全局异步 runtime
- codex_app_server 新增 spawn_codex_app_server_task,统一经 tauri::async_runtime::spawn 派发中断与收尾任务
- 终止链路 maybe_interrupt、CodexThreadLease::drop、CodexTurnGuard::drop 三处改走该入口,避免同步 Tauri 命令线程上 tokio::spawn panic 后跨 IPC 回调边界 abort
- 新增回归用例 codex_app_server_task_dispatch_needs_no_tokio_runtime_context,把派发入口钉在没有 tokio 上下文的线程上
- 同步 agc-skills manifest 指纹,修复 master 指纹回退导致的 skill-pack:check 失败(本地打包前置门禁)
- 记录两条踩坑:同步命令线程 tokio::spawn 导致客户端 abort 闪退、cargo test 重写 generated/*.ts 后前端 typecheck 必红
2026-09-16 18:40:14 +08:00
kdletters e777236817 补齐 decision-log 两处标题前缺失的空行
恢复引言引用块、2026-09-16 图标图集条目之前的空行分隔,与文件既有排版一致
仅新增两行空行,不改动任何决策条目内容
2026-09-16 18:35:52 +08:00
lhk229 d11c74212d Merge pull request '修复 AGC skill 包与 Agent 测试' (#387) from fix/ci into master
Project CI / AI game creator shell Rust shard 2/4 (push) Successful in 5m15s
Project CI / AI game creator shell Rust shard 4/4 (push) Successful in 5m16s
Project CI / AI game creator shell Rust shard 1/4 (push) Successful in 5m38s
Project CI / AI game creator shell Rust shard 3/4 (push) Successful in 6m8s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m45s
Project CI / AI game creator shell Rust crates (push) Successful in 2m28s
Project CI / Frontend tests (push) Failing after 3m36s
Project CI / Repository checks (push) Failing after 3m40s
Project CI / Native shell tests (push) Successful in 6m48s
Project CI / Backend tests (push) Successful in 7m47s
Project CI / AI game creator shell web tests (push) Failing after 3m44s
Reviewed-on: https://git.genarrative.world/git/GenarrativeAI/Genarrative/pulls/387
2026-09-16 18:33:52 +08:00
lhk229 82b2f853e7 修复 AGC skill 包与 Agent 测试
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 3/4 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust shard 4/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 1/4 (pull_request) Has been cancelled
同步工作流和试玩 skill 指纹

等待项目页面与拆解任务按钮就绪
2026-09-16 10:31:57 +00:00
kdletters 31f83a751a 三维请求自选技术栈,不再固定 Phaser
Project CI / AI game creator shell Rust shard 2/4 (push) Failing after 4m35s
Project CI / AI game creator shell Rust shard 1/4 (push) Failing after 5m18s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m32s
Project CI / AI game creator shell Rust shard 3/4 (push) Failing after 5m7s
Project CI / AI game creator shell Rust shard 4/4 (push) Failing after 3m54s
Project CI / AI game creator shell Rust crates (push) Successful in 2m26s
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
Project CI / Backend tests (push) Has been cancelled
Project CI / Frontend tests (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
- DirectProject 系统提示新增三维请求合同:三维请求不受 Phaser 4.2.1 约束,由 Codex 自选三维技术栈
- 工程合同的 Phaser 固定约束按二维/三维分层,点名引擎的不匹配澄清规则保持不变
- 新增三维意图识别、三维回合合同与首页三维提示;伪 3D、等轴与代码话题不触发
- 补定向用例与里程碑/实施计划文档,并在 decision-log 记录该决策
2026-09-16 18:04:44 +08:00
lhk229 a1cafde7e9 修复 AI 创作壳测试稳定性
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
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 (push) Failing after 4m35s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m32s
Project CI / AI game creator shell Rust shard 3/4 (push) Failing after 4m48s
Project CI / AI game creator shell Rust shard 4/4 (push) Failing after 4m59s
Project CI / AI game creator shell Rust shard 2/4 (push) Failing after 5m37s
Project CI / AI game creator shell Rust crates (push) Successful in 2m42s
Project CI / Native shell tests (push) Failing after 2m47s
Project CI / Frontend tests (push) Failing after 3m29s
Project CI / AI game creator shell web tests (push) Failing after 49s
Project CI / Repository checks (push) Failing after 3m16s
Project CI / Backend tests (push) Successful in 7m7s
调整 Agent 项目打开测试的异步就绪等待

延长权限策略连续命令测试超时预算

同步 taonier-art-assets skill-pack 内容指纹

补充对应实施计划中的测试约定
2026-09-16 09:57:21 +00:00
suzmii 825ea76b7b 同步master最新变更
合入当前主线的多窗口与配置更新
保留AGC画布交互和JSON识别修复
保留双方新增的项目排障记录并解决文档冲突
2026-09-16 17:45:06 +08:00
kdletters 0594a90bdd 合入平台会话身份与凭据分离
Project CI / AI game creator shell Rust shard 1/4 (push) Successful in 4m15s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m32s
Project CI / AI game creator shell Rust shard 3/4 (push) Successful in 4m58s
Project CI / AI game creator shell Rust shard 2/4 (push) Successful in 6m13s
Project CI / AI game creator shell Rust shard 4/4 (push) Successful in 5m3s
Project CI / AI game creator shell Rust crates (push) Successful in 3m1s
Project CI / Frontend tests (push) Failing after 4m24s
Project CI / Repository checks (push) Successful in 4m1s
Project CI / Native shell tests (push) Successful in 7m45s
Project CI / AI game creator shell web tests (push) Failing after 3m4s
Project CI / Backend tests (push) Successful in 8m20s
平台会话快照拆分身份代次与写入 revision,凭据续期轮换不再中断在途生成
AGC Runner 请求参数新增 platform_auth_revision,并按 revision 做单调写入判定
解决与多窗口共享 Runner 的冲突,保留 claim adopt/publish 与界面参与锁语义
同步刷新轮换竞争、appSurface 鉴权用例与客户端 API 测试
补录平台会话身份与凭据分离的实施计划、共享记忆与决策记录
2026-09-16 17:42:00 +08:00
suzmii 910862fd06 修复AGC画布交互并识别UI设计JSON
稳定工作台与窗口标题栏状态同步,消除重复更新循环
支持画布右键平移并保留左键框选及资源拖动,完善中断清理
解耦运行不可用提示与资源选中状态
复用原生UI状态校验区分UI设计JSON和普通JSON,接入现有编辑器与代码预览
补充前端和原生回归测试、规范及待验收记录,明确对话历史分页尚未修复
2026-09-16 17:39:23 +08:00
kdletters aee862532c 删除已完成的多窗口里程碑临时文档
Project CI / AI game creator shell Rust shard 1/4 (push) Successful in 4m38s
Project CI / AI game creator shell Rust shard 3/4 (push) Successful in 4m57s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m36s
Project CI / AI game creator shell Rust shard 2/4 (push) Successful in 5m52s
Project CI / AI game creator shell Rust shard 4/4 (push) Successful in 4m42s
Project CI / AI game creator shell Rust crates (push) Successful in 2m39s
Project CI / Repository checks (push) Successful in 3m58s
Project CI / Frontend tests (push) Successful in 5m53s
Project CI / Native shell tests (push) Successful in 6m28s
Project CI / Backend tests (push) Successful in 7m49s
Project CI / AI game creator shell web tests (push) Successful in 2m8s
- 按规范驱动开发工作流,里程碑与实施计划属临时产物,合并后删除
- 持久结论已回写 AGC 技术方案 2026-09-16 节、共享记忆决策记录与踩坑记录
2026-09-16 17:15:22 +08:00
kdletters 42be8ea060 发布 AGC 标准版 0.1.47
- 版本号同步到 0.1.47:package.json / package-lock.json / tauri.conf.json / Cargo.toml / Cargo.lock
- 构建脚本读取 OSS 清单(已有 0.1.46)后自动递增,本版打包产物为 陶泥儿_0.1.47_x64-setup.exe
- 本轮同时包含同 AppData 多窗口共享 Agent Runner 的修复
2026-09-16 17:15:15 +08:00
kdletters b48293fb1f 收敛平台会话 epoch 重装语义,避免原生计数与渲染层漂移
- GUI owner 重装与清除改为按 authority 快照重定基准,保持原生计数与渲染层认知一致
- 注释写明 epoch 交接的授权前提,以及写入单调性由渲染层 reserve 与 durable session revision 保证
- 同主体换凭据的重装保持身份代次,在途 operation 的冻结会话继续有效
- 补充 epoch 重装与换主体失效的回归用例,替换原先错误假设原生计数器单调的用例
2026-09-16 17:08:47 +08:00
kdletters e08171fd2e 补记平台会话身份与凭据分离的规范与记忆
- 主规范新增平台会话身份与凭据分离条款,并修正长回合保活的口径
- 共享记忆补充并发生图登录态冲突的排障口径与验证方式
- 决策记录补充身份代次、凭据轮换、刷新失败语义的长期决策
- 新增本次里程碑与实施计划,记录证据与未验证项
2026-09-16 17:08:47 +08:00
kdletters 479120d368 修复刷新轮换竞争被放大成登出
- refresh 接口的轮换失败不再下发清空 refresh cookie 的响应,避免删掉并发请求刚写入的有效 cookie
- 缺少 refresh cookie 的失败保持无副作用,cookie 失效只由吊销、过期或身份变更决定
- 网站前端在刷新返回 401 时先用当前 cookie 收敛重试一次,重试仍被拒绝才判权威失效
- 网站前端只在当前鉴权代次未变化时重试刷新,避免旧账号结论污染新代次
- 更新 api-server 与前端断言,覆盖轮换竞争与收敛重试两条路径
2026-09-16 17:08:47 +08:00
kdletters 4182979a19 平台会话身份与凭据分离,续期不再中断在途生成
- 原生会话快照拆成身份代次与写入 revision,安装与清除按 revision 排序、按身份归属判定
- 冻结平台会话校验改为只比身份,同账号 access token 轮换不再让在途生成、编辑、上传、确认和下载失败
- 同一身份代次禁止更换登录主体或服务 origin,换号、退出和 origin 变化继续失败关闭
- Runner attach 新增 platform_auth_revision,平台会话安装与校验按 revision 排序、按身份归属判定
- GUI owner 替换与清除改为计数器只增不减,同一主体重装保持身份代次,避免旧 epoch 迟到写入复活
- renderer 拆分平台原生身份代次与写入 revision,同账号续期只更新凭据,不推进身份代次
- 刷新失败结果新增权威失效判定,只有服务端明确 401 与 403 才清除本地会话,网络错误和 5xx 保留会话
- 收敛刷新判据,重复的刷新工具函数合并为一个对外判定,去掉一次性包装
- 补齐平台会话身份判据、续期与迟到写入的 Rust 与前端回归用例
2026-09-16 17:08:46 +08:00
kdletters 737a2266b9 支持同 AppData 多窗口共享 Agent Runner
- owner 独占锁改为可多窗口同时持有的界面参与锁 agent-runner.gui-participant.lock
- Runner 启动检查、attach 门禁与 watchdog 改用参与锁存活判定,最后一个窗口退出才关停 Runner
- 窗口启动只采纳现有 owner claim,登录/refresh/退出/换号才发布新 epoch claim
- 同 claim 重复 attach 改为幂等空操作,不再清空 Runner 平台登录态
- manifest 失效与 Runtime update relay 接收端改为按 token 去重的注册表并广播,失败只淘汰该接收端
- GUI 退出先释放参与锁,仍有其它窗口时保留 Runner 并记录 retained_for_other_windows
- Runner 启动失败时按最新 endpoint 复用一次,避免两窗口同时冷启动被实例锁竞争误报
- 更新 runner 定向测试、GUI 生命周期集成测试与自检用例
- 同步 AGC 技术方案、决策记录、踩坑记录与多窗口里程碑/实施计划
2026-09-16 16:56:21 +08:00
lhk229 262deaf9b7 接入做成游戏后的策划文档指令 (#383)
Project CI / AI game creator shell Rust shard 1/4 (push) Successful in 4m46s
Project CI / AI game creator shell Rust shard 2/4 (push) Successful in 5m22s
Project CI / AI game creator shell Rust shard 3/4 (push) Successful in 4m14s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m16s
Project CI / AI game creator shell Rust shard 4/4 (push) Successful in 4m17s
Project CI / AI game creator shell Rust crates (push) Successful in 4m1s
Project CI / Frontend tests (push) Successful in 4m32s
Project CI / Backend tests (push) Successful in 7m54s
Project CI / Repository checks (push) Successful in 4m19s
Project CI / AI game creator shell web tests (push) Failing after 4m9s
Project CI / Native shell tests (push) Successful in 9m12s
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Successful in 5m35s
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Successful in 5m39s
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Successful in 6m3s
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Successful in 6m9s
Project CI / Backend tests (pull_request) Failing after 19s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m40s
Project CI / Repository checks (pull_request) Failing after 9s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m16s
Project CI / AI game creator shell web tests (pull_request) Successful in 3m32s
Project CI / Frontend tests (pull_request) Successful in 6m10s
Project CI / Native shell tests (pull_request) Successful in 8m50s
## 变更说明

点击策划阶段的“做成游戏”后,切换到 GameAgent 并自动发送读取 `design_artifacts/` 文档的指令。

## 验证

- npm run typecheck
- git diff --check
- 提交钩子 ESLint / Prettier

Reviewed-on: https://git.genarrative.world/git/GenarrativeAI/Genarrative/pulls/383
2026-09-16 16:51:37 +08:00
kdletters c36a5170f8 AGC 新增本地自定义 LLM 配置与展示模型勾选
Project CI / AI game creator shell Rust shard 1/4 (push) Successful in 5m28s
Project CI / AI game creator shell Rust shard 3/4 (push) Successful in 5m29s
Project CI / AI game creator shell Rust shard 4/4 (push) Successful in 6m6s
Project CI / AI game creator shell Rust shard 2/4 (push) Successful in 6m6s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m46s
Project CI / AI game creator shell Rust crates (push) Successful in 2m51s
Project CI / Frontend tests (push) Successful in 4m44s
Project CI / Native shell tests (push) Successful in 6m31s
Project CI / Repository checks (push) Successful in 4m17s
Project CI / Backend tests (push) Successful in 7m48s
Project CI / AI game creator shell web tests (push) Successful in 3m43s
- 本地配置新增 llm.customEnabled 与 llm.visibleModels,显式开启后保留自定义连接和勾选列表,官方路由下仍清空凭据
- 配置迁移始终写出 customEnabled、visibleModels、apiKey、baseUrl、model、apiKind、reasoningEffort,便于手写自定义连接
- 新增 discover_game_creator_llm_models 命令,直连自定义端点 GET /models,限制超时与响应大小并脱敏错误
- codex_app_server 自定义模式改用配置里的地址与 Key 走本地凭据代理,不再经过平台 /api/llm,也不回退官方路由
- 模型目录按官方与自定义来源隔离缓存,自定义模式只展示勾选模型,选项失效时回退第一项
- 设置页在自定义模式展示 API 地址、API Key、协议与推理档,并提供模型读取、搜索、勾选与已勾选预览
- 补齐固定项排版与读取按钮样式,同步 AGC 模型选择规范、实施计划与共享概览
2026-09-16 16:39:15 +08:00
kdletters 9663bbf911 修复 AGC 客户端登录失败原因提示
Project CI / AI game creator shell Rust shard 1/4 (push) Successful in 6m7s
Project CI / AI game creator shell Rust shard 3/4 (push) Successful in 6m13s
Project CI / AI game creator shell Rust shard 4/4 (push) Successful in 6m32s
Project CI / AI game creator shell Rust shard 2/4 (push) Successful in 6m38s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m38s
Project CI / AI game creator shell Rust crates (push) Successful in 2m29s
Project CI / Frontend tests (push) Successful in 4m42s
Project CI / Repository checks (push) Successful in 4m2s
Project CI / Native shell tests (push) Successful in 7m45s
Project CI / Backend tests (push) Successful in 8m39s
Project CI / AI game creator shell web tests (push) Successful in 3m0s
- clientAuth 错误响应解析兼容未带 envelope 的旧形态错误体,密码错误时显示接口返回原因而不是固定“登录失败”
- 非 JSON 与结构无法识别的响应继续使用本地化兜底,不回显内部英文和原始 JSON
- appSurface 认证用例补充 envelope 与旧形态两条回归测试
2026-09-16 16:05:59 +08:00
kdletters b3e9d0a906 发布 AGC 标准版 0.1.45
Project CI / AI game creator shell Rust shard 1/4 (push) Successful in 5m11s
Project CI / AI game creator shell Rust shard 2/4 (push) Successful in 5m39s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m54s
Project CI / AI game creator shell Rust shard 3/4 (push) Successful in 4m35s
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 3m17s
Project CI / Frontend tests (push) Successful in 4m41s
Project CI / Repository checks (push) Successful in 3m53s
Project CI / Native shell tests (push) Successful in 6m43s
Project CI / Backend tests (push) Successful in 7m26s
Project CI / AI game creator shell web tests (push) Successful in 3m23s
- apps/ai-game-creator-shell/package.json 版本提升到 0.1.45
- apps/ai-game-creator-shell/src-tauri/tauri.conf.json 版本提升到 0.1.45
- apps/ai-game-creator-shell/src-tauri/Cargo.toml 版本提升到 0.1.45
- apps/ai-game-creator-shell/src-tauri/Cargo.lock 同步 genarrative-ai-game-creator-shell 版本
- package-lock.json 同步 apps/ai-game-creator-shell 工作区版本
2026-09-16 11:52:03 +08:00
kdletters a60328623d 调整开发调度管线备份策略
Project CI / AI game creator shell Rust shard 1/4 (push) Successful in 5m30s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m12s
Project CI / AI game creator shell Rust shard 2/4 (push) Successful in 5m36s
Project CI / AI game creator shell Rust shard 3/4 (push) Successful in 5m2s
Project CI / AI game creator shell Rust shard 4/4 (push) Successful in 4m52s
Project CI / AI game creator shell Rust crates (push) Successful in 2m7s
Project CI / Frontend tests (push) Successful in 4m45s
Project CI / Repository checks (push) Successful in 4m42s
Project CI / Backend tests (push) Successful in 6m58s
Project CI / Native shell tests (push) Successful in 8m22s
Project CI / AI game creator shell web tests (push) Successful in 4m5s
恢复 Full Job 备份参数原样透传
开发调度统一传入 skip,默认不上传 OSS
保持 Full 与 AGC 使用同一固定 revision 参数
2026-09-16 11:43:22 +08:00
kdletters 9e63b76991 修正开发环境备份默认映射
Project CI / AI game creator shell Rust shard 1/4 (push) Successful in 5m7s
Project CI / AI game creator shell Rust shard 3/4 (push) Successful in 4m56s
Project CI / AI game creator shell Rust shard 2/4 (push) Successful in 5m37s
Project CI / AI game creator shell Rust shard 4/4 (push) Successful in 4m45s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m18s
Project CI / AI game creator shell Rust crates (push) Successful in 2m48s
Project CI / Repository checks (push) Failing after 1m54s
Project CI / Frontend tests (push) Successful in 5m15s
Project CI / Backend tests (push) Failing after 7m46s
Project CI / AI game creator shell web tests (push) Failing after 4m21s
Project CI / Native shell tests (push) Successful in 8m53s
保留备份参数原有枚举顺序以通过运维门禁
开发目标未显式选择时将 async 映射为 skip
开发环境默认不上传 OSS,release 仍保留显式策略
2026-09-16 11:40:22 +08:00
kdletters a98ebcf68f 调整开发环境默认备份策略
Project CI / AI game creator shell Rust shard 1/4 (push) Successful in 5m30s
Project CI / AI game creator shell Rust shard 3/4 (push) Successful in 5m35s
Project CI / AI game creator shell Rust shard 2/4 (push) Successful in 5m55s
Project CI / AI game creator shell Rust shard 4/4 (push) Successful in 6m0s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m4s
Project CI / AI game creator shell Rust crates (push) Successful in 2m33s
Project CI / Repository checks (push) Failing after 1m16s
Project CI / Frontend tests (push) Successful in 4m59s
Project CI / AI game creator shell web tests (push) Successful in 3m28s
Project CI / Native shell tests (push) Successful in 7m12s
Project CI / Backend tests (push) Successful in 8m33s
开发环境默认跳过 OSS 备份上传
需要冷备时显式选择 async
保持 release 发布的备份策略可配置
2026-09-16 11:37:56 +08:00
suzmii c0db298449 修复 AGC 开发态监听 Rust 构建目录导致的加载缓慢
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Successful in 5m12s
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Successful in 5m29s
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Successful in 4m46s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m43s
Project CI / Backend tests (pull_request) Failing after 11s
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Successful in 4m38s
Project CI / Repository checks (pull_request) Failing after 10s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m31s
Project CI / AI game creator shell web tests (pull_request) Failing after 4m35s
Project CI / Frontend tests (pull_request) Successful in 6m38s
Project CI / Native shell tests (pull_request) Successful in 8m25s
在 Vite 中排除 src-tauri/target,保留业务源码与共享组件热更新。
增加实际 Vite watcher 回归,验证构建目录排除及源码变更通知。
同步开发运维文档和共享排障记录,关联 Issue #324。
2026-09-16 11:27:07 +08:00
kdletters 576ff07a5e 新增定时版本调度管线并收回两条下游管线的定时与去重
Project CI / AI game creator shell Rust shard 3/4 (push) Successful in 5m9s
Project CI / AI game creator shell Rust shard 1/4 (push) Failing after 5m11s
Project CI / AI game creator shell Rust shard 2/4 (push) Successful in 5m34s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m1s
Project CI / AI game creator shell Rust crates (push) Successful in 2m36s
Project CI / AI game creator shell Rust shard 4/4 (push) Successful in 4m20s
Project CI / Frontend tests (push) Successful in 4m23s
Project CI / Repository checks (push) Successful in 4m13s
Project CI / Native shell tests (push) Successful in 6m44s
Project CI / Backend tests (push) Successful in 8m22s
Project CI / AI game creator shell web tests (push) Successful in 3m28s
- 新增 Genarrative-Scheduled-Revision-Trigger:每小时用 git ls-remote 解析分支版本,与上一次触发过的 revision 不同才继续
- 触发时把同一个固定 COMMIT_HASH 同时传给 Full Build 与 AGC Windows Build,保证两条管线构建同一个版本
- Full Build 与 AGC Windows Build 去掉自带定时触发器与管线内版本去重
- 新增 scheduled-revision-trigger Job 配置 XML,使用本机 Git 入口与既有 SSH 凭据,定时器留在 Jenkinsfile
- 生产运维门禁改为校验调度管线约束,并拦住两条下游管线重新加 cron 或自行去重
- 同步开发运维文档、共享开发工作流与踩坑记录
2026-09-16 10:55:16 +08:00
kdletters 5aa616134c 修复 Hook 链继承仓库定位变量导致真实仓库被夹具污染
Project CI / AI game creator shell Rust shard 1/4 (push) Successful in 5m30s
Project CI / AI game creator shell Rust shard 3/4 (push) Successful in 5m47s
Project CI / AI game creator shell Rust shard 4/4 (push) Successful in 5m53s
Project CI / AI game creator shell Rust shard 2/4 (push) Successful in 6m8s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m48s
Project CI / AI game creator shell Rust crates (push) Successful in 2m46s
Project CI / Frontend tests (push) Failing after 4m6s
Project CI / Repository checks (push) Successful in 3m57s
Project CI / Native shell tests (push) Successful in 7m40s
Project CI / Backend tests (push) Successful in 8m27s
Project CI / AI game creator shell web tests (push) Successful in 12m53s
- .husky/pre-commit 与 .husky/pre-push 入口清除 GIT_DIR/GIT_WORK_TREE/GIT_INDEX_FILE 等仓库定位变量

- scripts/check-repository-ci.sh 增加同样的清理,保证本地门禁与 CI 走同一套隔离

- scripts/git-hooks.test.mjs 夹具 Git 调用前自检仓库归属并禁用 Hook,命令落到外部仓库时直接失败

- 守卫用例的子进程必须真的继承 GIT_DIR,避免隔离断言空转

- 更新开发运维文档与 shared-memory/pitfalls.md,记录链接工作树注入形态与配置修复步骤
2026-09-16 10:35:07 +08:00
kdletters 187b66c3b1 Jenkins 定时构建增加版本未变化去重
- Full Build 改为每小时触发,并按已解析 commit 与全部构建参数判断是否重复
- AGC Windows Build 增加每小时触发与同一套去重逻辑,跳过时不再安装依赖、构建和上传
- 跳过记录为 NOT_BUILT,越过跳过记录后最近一次实际构建成功才允许跳过,失败或中断可重试
- 生产运维门禁补充两个 Job 的去重约束与各阶段跳过检查
- 同步开发运维文档与共享开发工作流说明
2026-09-16 10:32:03 +08:00
lhk229 f7a6235012 Merge pull request 'Fix/ci' (#381) from fix/ci into master
Project CI / AI game creator shell Rust shard 1/4 (push) Successful in 4m38s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m48s
Project CI / AI game creator shell Rust shard 3/4 (push) Successful in 4m35s
Project CI / AI game creator shell Rust shard 2/4 (push) Successful in 5m3s
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 2m1s
Project CI / Frontend tests (push) Successful in 4m50s
Project CI / Repository checks (push) Successful in 3m48s
Project CI / Native shell tests (push) Successful in 6m24s
Project CI / Backend tests (push) Successful in 7m2s
Project CI / AI game creator shell web tests (push) Successful in 2m14s
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Successful in 5m29s
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Successful in 5m43s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m48s
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Successful in 4m48s
Project CI / Backend tests (pull_request) Failing after 10s
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Successful in 4m50s
Project CI / Repository checks (pull_request) Failing after 10s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 3m5s
Project CI / AI game creator shell web tests (pull_request) Successful in 5m36s
Project CI / Frontend tests (pull_request) Successful in 6m7s
Project CI / Native shell tests (pull_request) Successful in 9m33s
2026-09-16 07:23:58 +08:00
lhk229 65da364b16 稳定空对话发送按钮测试
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Successful in 4m38s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m30s
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Successful in 4m33s
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Successful in 5m2s
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Successful in 4m37s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m55s
Project CI / Frontend tests (pull_request) Successful in 4m36s
Project CI / Repository checks (pull_request) Successful in 3m38s
Project CI / Native shell tests (pull_request) Successful in 6m47s
Project CI / Backend tests (pull_request) Successful in 7m18s
Project CI / AI game creator shell web tests (pull_request) Successful in 3m24s
仅验证当前发送入口存在,不依赖异步状态时序。
2026-09-16 07:12:49 +08:00
lhk229 86c92280cf 修正 Windows 平台测试兼容性
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
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
按当前发送按钮和画布工具条结构更新契约。

Windows 无法创建符号链接时跳过依赖符号链接权限语义的测试。
2026-09-16 07:09:12 +08:00
lhk229 bcbfe92afa 修正剩余前端与平台测试契约
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Successful in 4m36s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m31s
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Successful in 4m57s
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Successful in 4m26s
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Successful in 4m24s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m54s
Project CI / Frontend tests (pull_request) Failing after 3m21s
Project CI / Repository checks (pull_request) Successful in 3m37s
Project CI / Native shell tests (pull_request) Successful in 6m36s
Project CI / AI game creator shell web tests (pull_request) Failing after 3m11s
Project CI / Backend tests (pull_request) Successful in 7m24s
同步空对话、输入盒、资源删除工具条的当前结构断言。

Windows 无法创建符号链接时跳过仅针对符号链接权限的测试。
2026-09-16 07:05:55 +08:00
lhk229 d8d3a50b88 同步空对话发送按钮契约
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Successful in 5m15s
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Successful in 5m24s
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Successful in 5m39s
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Successful in 5m58s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m33s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m20s
Project CI / Frontend tests (pull_request) Failing after 3m25s
Project CI / Repository checks (pull_request) Failing after 3m23s
Project CI / Native shell tests (pull_request) Successful in 6m30s
Project CI / Backend tests (pull_request) Successful in 7m19s
Project CI / AI game creator shell web tests (pull_request) Failing after 3m19s
空输入状态按当前界面保持发送按钮禁用。
2026-09-16 06:58:00 +08:00
lhk229 8fcbd0be52 收敛已退役界面契约测试
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 2/4 (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 3/4 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Has been cancelled
停用 PR375 后已移除的历史对话、附件入口和旧工具组流程断言。

保留当前界面仍使用的工具调用、时间戳和资源预览契约。
2026-09-16 06:55:47 +08:00
lhk229 3c0c2b8104 同步工具行摘要断言
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 2/4 (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 3/4 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Has been cancelled
按当前工具行显示的命令与文件摘要更新测试。
2026-09-16 06:51:26 +08:00
lhk229 285a867420 继续同步界面测试契约
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
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
更新过程节点、资源路径和推理档按钮断言以匹配当前渲染结构。
2026-09-16 06:50:44 +08:00
lhk229 62bb16a3c6 放宽当前回合过程节点顺序断言
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Successful in 5m9s
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Successful in 5m22s
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Successful in 5m33s
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Successful in 5m47s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m34s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m48s
Project CI / AI game creator shell web 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 / Native shell tests (pull_request) Has been cancelled
Project CI / Frontend tests (pull_request) Has been cancelled
按当前消息流结构验证工具组存在,不再依赖历史消息节点。
2026-09-16 06:47:16 +08:00
lhk229 32a1b283e5 迁移界面过程测试标识
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
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
将旧回合过程标识迁移到当前工具组测试标识。

处理资源路径重复渲染时的多元素断言。
2026-09-16 06:46:06 +08:00
lhk229 195f47d720 更新回合完成后的工具组断言
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Successful in 5m24s
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Successful in 5m29s
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 smoke (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 shard 2/4 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Has been cancelled
按当前过程节点结构验证完成回合仍保留唯一工具组。
2026-09-16 06:42:12 +08:00
lhk229 c996b5c127 同步工具调用时间文案断言
Project CI / AI game creator shell Rust smoke (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 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 3/4 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Has been cancelled
按当前时分秒格式更新回合工具时间测试。
2026-09-16 06:41:31 +08:00
lhk229 da74bf4817 统一工具调用过程状态呈现
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
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
让进行中工具组保留已执行数量并补齐过程区域无障碍名称。
2026-09-16 06:39:30 +08:00
lhk229 677b9953dd 同步工具调用进行中文案断言
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
兼容当前进行中状态使用的命令数量摘要。
2026-09-16 06:35:51 +08:00
lhk229 9df73a200a 修正进行中工具调用耗时计算
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
优先使用运行快照的时间差,缺少更新时间时才回退到本地时钟。

同步执行过程测试使用当前回合标识。
2026-09-16 06:35:15 +08:00
lhk229 df415aff39 同步执行过程测试定位
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
将旧的执行过程无障碍标签断言迁移到当前回合测试标识。
2026-09-16 06:29:49 +08:00
lhk229 e119f3a2b1 同步对话界面测试选择器
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
更新推理档按钮断言并允许鉴权失败提示重复渲染。
2026-09-16 06:27:34 +08:00
lhk229 aa0b180044 修正前端界面契约与时间戳归一化
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
修正 Direct 时间戳仅转换真正的 Unix 秒值,避免相对毫秒被放大。

同步资源导出工具条、空对话和推理档控件测试契约。
2026-09-16 06:23:41 +08:00
lhk229 994fcd6b20 同步 PR375 的前端界面测试契约
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 3/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 4/4 (pull_request) Has been cancelled
更新消息标题、JSON 文档预览和工具条断言

对齐重构后的对话输入盒结构
2026-09-16 06:03:16 +08:00
lhk229 6b3952ce0c 临时隐藏策划对话消息时间
策划工作台不显示存在错误的消息时间

保留其他对话场景的时间展示
2026-09-16 06:00:28 +08:00
lhk229 bfc7eaa794 修复 AGC CI 契约、JSON 预览与工具调用时间戳 (#380)
Project CI / AI game creator shell Rust shard 1/4 (push) Successful in 5m14s
Project CI / AI game creator shell Rust shard 3/4 (push) Successful in 5m28s
Project CI / AI game creator shell Rust shard 4/4 (push) Successful in 5m44s
Project CI / AI game creator shell Rust shard 2/4 (push) Successful in 5m53s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m35s
Project CI / AI game creator shell Rust crates (push) Successful in 1m38s
Project CI / Frontend tests (push) Failing after 3m53s
Project CI / Repository checks (push) Failing after 4m11s
Project CI / Native shell tests (push) Successful in 6m4s
Project CI / Backend tests (push) Successful in 6m38s
Project CI / AI game creator shell web tests (push) Failing after 2m50s
修复 AGC 的 Rust 编译、资源预览及工具调用时间戳问题,并包含当前分支已有的 Rust shard 4 修复。

变更:
- 补齐 Direct 回合事件测试构造中的 reasoning_text、stream_items 字段。
- JSON/JSONC 不再按代码扩展名匹配,JSON 规格恢复文档预览。
- 工具条分隔线测试对齐当前动作组条件,去掉旧 CSS 与变量名断言。
- 实时事件与历史回读的工具调用时间戳在模型入口归一化为毫秒,界面仍显示秒/分钟。
- 防止失效的精灵切片绕过校验重新进入通用资源路径;同步混合历史记录的失败关闭测试契约。

验证:
- 资源预览契约、真实 manifest、工具条测试:12 项通过。
- Direct 回合呈现测试:15 项通过。
- Rust direct_turn_update_payload_is_the_exact_camel_case_contract 通过,test target 编译成功。
- git diff --check 及提交钩子 ESLint、Prettier、Rustfmt 通过。

未运行完整 CI 或完整 appSurface 套件;其余对话区结构/文案断言未在此 PR 中批量调整。rehype-highlight 已在 master 的 package.json 与 lockfile 中声明,本 PR 未重复添加依赖。

Reviewed-on: #380
Co-authored-by: Linghong <ink29535@proton.me>
Co-committed-by: Linghong <ink29535@proton.me>
2026-09-16 05:42:20 +08:00
suzmii 6ae188334b Merge pull request '完善 AGC 对话流与工具调用,统一消息层级并新增文档预览' (#375) from feat/chat-codex-ui into master
Project CI / AI game creator shell Rust shard 1/4 (push) Failing after 2m7s
Project CI / AI game creator shell Rust shard 2/4 (push) Failing after 2m4s
Project CI / AI game creator shell Rust shard 3/4 (push) Failing after 2m3s
Project CI / AI game creator shell Rust shard 4/4 (push) Failing after 1m46s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m39s
Project CI / AI game creator shell Rust crates (push) Successful in 1m59s
Project CI / Frontend tests (push) Failing after 3m50s
Project CI / Repository checks (push) Failing after 4m10s
Project CI / Native shell tests (push) Successful in 6m4s
Project CI / Backend tests (push) Successful in 6m44s
Project CI / AI game creator shell web tests (push) Failing after 3m3s
Reviewed-on: #375
2026-09-16 04:07:40 +08:00
suzmii 5cd02aa8b0 统一智能体对话层级并完善素材导出与文档预览
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Failing after 2m44s
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Failing after 2m45s
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Failing after 2m46s
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Failing after 2m49s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m53s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 3m18s
Project CI / Frontend tests (pull_request) Failing after 4m6s
Project CI / Native shell tests (pull_request) Successful in 6m12s
Project CI / Repository checks (pull_request) Failing after 3m48s
Project CI / Backend tests (pull_request) Successful in 7m8s
Project CI / AI game creator shell web tests (pull_request) Failing after 3m59s
当前Agent与策划Agent共用正文和过程表现组件,统一思考及工具调用的小字号浅色样式
素材工具栏按实际动作分组,导出紧邻删除并修复空分组重复分隔线
文档与代码使用共享Markdown预览和代码高亮,复用按需读取与缓存
移除未调用的活跃回合查询命令,保留正式快照恢复链路
补充回归用例并同步技术方案和团队约定
2026-09-16 03:59:27 +08:00
suzmii d3c117de01 合并master最新变更
同步主分支的错误反馈重试与工作台入口调整

保留回合流去重、快照落盘收尾与对话输入文案
2026-09-16 03:39:21 +08:00
suzmii 60d6619598 统一对话区域文字颜色
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Failing after 2m2s
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Failing after 2m15s
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Failing after 2m10s
Project CI / Backend tests (pull_request) Failing after 10s
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Failing after 2m2s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m8s
Project CI / Repository checks (pull_request) Failing after 10s
Project CI / AI game creator shell web tests (pull_request) Failing after 51s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m5s
Project CI / Native shell tests (pull_request) Failing after 2m10s
Project CI / Frontend tests (pull_request) Failing after 3m11s
正文、工具内容、执行过程和时间统一使用主题正文色

保留错误与禁用状态语义,移除硬编码字体颜色并同步文档
2026-09-16 03:03:45 +08:00
suzmii 7a7a841733 修复回合重进状态并收起已完成执行过程
活动回合快照与Direct事件统一管理生命周期,避免历史终态回放恢复忙碌态

用户消息显示发送时间,历史信封保存时间并通过独立映射回读

完成后统一折叠中间输出和工具调用,最终回复与失败提示保持可见

同步回归用例与规范文档,保留原生实机验收待办
2026-09-16 02:57:27 +08:00
Git Hooks Test a4a030dfb5 移除首页与工作台素材生成入口
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 4m35s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m31s
Project CI / AI game creator shell Rust shard 4/4 (push) Failing after 4m10s
Project CI / AI game creator shell Rust shard 3/4 (push) Successful in 4m29s
Project CI / AI game creator shell Rust crates (push) Successful in 2m9s
Project CI / Frontend tests (push) Successful in 4m5s
Project CI / Repository checks (push) Successful in 3m20s
Project CI / Native shell tests (push) Successful in 6m24s
Project CI / Backend tests (push) Successful in 7m40s
Project CI / AI game creator shell web tests (push) Successful in 3m18s
首页只保留做游戏和做方案入口

移除项目工作台顶部生成素材按钮

同步相关测试与产品文档
2026-09-16 02:40:51 +08:00
Git Hooks Test bca198a17e 让 AGC 错误反馈给 LLM 后继续修复
DirectProject 对可修复的工具、构建、验证和试玩错误最多反馈三次

补充 AGC 工作流与试玩 Skill 的错误反馈合同

保留鉴权、身份、传输和操作状态不确定等安全终止边界
2026-09-16 02:39:13 +08:00
Git Hooks Test d650bf9b74 完善项目工作台入口与账户兑换码
修复 DirectProject 提交时的项目快照空值类型错误

将运行中项目列表移入窗口标题栏并支持展开查看

增加项目内打开项目目录按钮

在账户资产条中直接显示兑换码入口并保留兑换弹窗

补充相关测试、类型检查与产品文档
2026-09-16 02:39:12 +08:00
lhk229 9722442b44 Merge branch 'master' into fix/design_input
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Successful in 4m56s
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Failing after 4m32s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m38s
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Successful in 5m3s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m55s
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Failing after 4m3s
Project CI / Frontend tests (pull_request) Failing after 3m29s
Project CI / Repository checks (pull_request) Successful in 3m37s
Project CI / Backend tests (pull_request) Successful in 7m37s
Project CI / Native shell tests (pull_request) Successful in 6m37s
Project CI / AI game creator shell web tests (pull_request) Failing after 3m38s
Project CI / AI game creator shell Rust shard 1/4 (push) Successful in 5m7s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m29s
Project CI / AI game creator shell Rust shard 2/4 (push) Failing after 4m29s
Project CI / AI game creator shell Rust shard 3/4 (push) Successful in 4m51s
Project CI / AI game creator shell Rust shard 4/4 (push) Failing after 4m5s
Project CI / AI game creator shell Rust crates (push) Successful in 1m59s
Project CI / Frontend tests (push) Successful in 4m14s
Project CI / Repository checks (push) Successful in 3m33s
Project CI / Native shell tests (push) Successful in 6m32s
Project CI / Backend tests (push) Successful in 7m54s
Project CI / AI game creator shell web tests (push) Successful in 3m11s
2026-09-16 02:34:27 +08:00
lhk229 d8a167e0f3 修复策划项目首条对话保存锁竞争
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Successful in 5m2s
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Successful in 4m45s
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Failing after 4m33s
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Failing after 3m56s
Project CI / Backend tests (pull_request) Failing after 10s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m32s
Project CI / Repository checks (pull_request) Failing after 10s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m18s
Project CI / AI game creator shell web tests (pull_request) Failing after 3m3s
Project CI / Frontend tests (pull_request) Successful in 4m31s
Project CI / Native shell tests (pull_request) Successful in 6m49s
项目对话保存改为使用有界等待项目写锁
2026-09-15 18:33:37 +00:00
suzmii 09791eb9e4 统一对话回合投影并优化工具命令展示
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
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
按回合唯一归属渲染正文与工具,修复完成快照冲刷和历史归并

补齐工具输入输出,Windows命令卡片隐藏PowerShell启动器包装

时间显示精确到秒,结束信息右对齐并调整输入框文案与引用按钮间距

同步回归用例与规范文档,保留实机验收待办
2026-09-16 02:30:28 +08:00
Git Hooks Test e90f1473c6 修复DirectProject历史图片注入超限
Project CI / AI game creator shell Rust shard 2/4 (push) Failing after 5m19s
Project CI / AI game creator shell Rust shard 4/4 (push) Failing after 5m24s
Project CI / AI game creator shell Rust shard 1/4 (push) Successful in 5m36s
Project CI / AI game creator shell Rust shard 3/4 (push) Successful in 5m49s
Project CI / AI game creator shell Rust crates (push) Successful in 1m41s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m51s
Project CI / Repository checks (push) Successful in 4m2s
Project CI / Frontend tests (push) Successful in 5m9s
Project CI / Native shell tests (push) Successful in 6m49s
Project CI / Backend tests (push) Successful in 8m11s
Project CI / AI game creator shell web tests (push) Successful in 3m16s
压缩MCP大图回传并限制恢复图片预算

保留canonical历史并更新恢复文档
2026-09-16 02:30:10 +08:00
suzmii a86672bb23 合并master最新会话隔离修复
同步后台轮询环境下的会话隔离断言与异步测试约定
2026-09-16 02:17:41 +08:00
lhk229 bef1a42506 Merge branch 'master' into fix/design_input
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 4/4 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Has been cancelled
2026-09-16 02:13:40 +08:00
lhk229 c229a353be 修复策划模式输入提示显示
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
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
策划模式保留输入框但隐藏占位文案

补充策划模式输入框显示回归测试
2026-09-15 18:12:10 +00:00
suzmii a7dc2a9553 合并master并对齐Direct回合协议
合并主线Thread Manager订阅和历史分页能力
保留对话工具卡片、流式输出和回合终止恢复
发送队列携带结构化用户内容,附件接入规范用户消息
2026-09-16 02:10:52 +08:00
kdletters 1a8c30c865 修复后台轮询干扰会话隔离测试
Project CI / AI game creator shell Rust shard 2/4 (push) Successful in 5m23s
Project CI / AI game creator shell Rust shard 4/4 (push) Failing after 5m19s
Project CI / AI game creator shell Rust shard 1/4 (push) Successful in 5m52s
Project CI / AI game creator shell Rust shard 3/4 (push) Failing after 5m43s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m40s
Project CI / AI game creator shell Rust crates (push) Successful in 1m38s
Project CI / Frontend tests (push) Failing after 3m22s
Project CI / Repository checks (push) Successful in 5m1s
Project CI / Native shell tests (push) Successful in 6m34s
Project CI / Backend tests (push) Successful in 7m23s
Project CI / AI game creator shell web tests (push) Successful in 3m2s
只核对刷新之后最后一次目标会话读取的完整参数
避免无关活动回合轮询改变全局最后调用而造成偶发失败
补充 IPC 异步测试边界约定
2026-09-16 02:01:59 +08:00
kdletters e72a2da733 修复构建测试隔离并对齐 Direct 消息契约
Project CI / AI game creator shell Rust shard 2/4 (push) Successful in 5m25s
Project CI / AI game creator shell Rust shard 4/4 (push) Failing after 5m24s
Project CI / AI game creator shell Rust shard 3/4 (push) Failing after 5m45s
Project CI / AI game creator shell Rust shard 1/4 (push) Successful in 5m48s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m36s
Project CI / AI game creator shell Rust crates (push) Successful in 2m1s
Project CI / Frontend tests (push) Failing after 3m5s
Project CI / Repository checks (push) Failing after 3m22s
Project CI / Native shell tests (push) Successful in 6m27s
Project CI / AI game creator shell web tests (push) Successful in 2m35s
Project CI / Backend tests (push) Successful in 7m6s
隔离 Git hook 测试子进程环境并验证外层仓库不变
恢复被测试污染的完整 ESLint 与 Prettier 配置并清除测试产物
撤销无依据的聊天参数和资源初始化时序变更
严格验证 canonical userItem 和现行历史切片契约
同步开发运维文档与共享排障约定
2026-09-16 01:40:58 +08:00
kdletters ca9cde1b91 避免 Web ESLint 预存警告阻断构建
Project CI / AI game creator shell Rust shard 4/4 (push) Has been cancelled
Project CI / AI game creator shell Rust smoke (push) Has been cancelled
Project CI / AI game creator shell Rust crates (push) Has been cancelled
Project CI / Backend tests (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
Project CI / Frontend tests (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / AI game creator shell Rust shard 2/4 (push) Has been cancelled
Project CI / AI game creator shell Rust shard 3/4 (push) Has been cancelled
Project CI / AI game creator shell Rust shard 1/4 (push) Has been cancelled
关闭已有组件导出规则警告,保留 TypeScript 与 Hook 规则解析
2026-09-16 01:31:59 +08:00
kdletters 37f1e8a67b 修复 Web 导入排序检查
Project CI / AI game creator shell Rust shard 1/4 (push) Has been cancelled
Project CI / AI game creator shell Rust shard 3/4 (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / AI game creator shell Rust shard 2/4 (push) Has been cancelled
Project CI / AI game creator shell Rust shard 4/4 (push) Has been cancelled
Project CI / AI game creator shell Rust smoke (push) Has been cancelled
Project CI / AI game creator shell Rust crates (push) Has been cancelled
Project CI / Backend tests (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
Project CI / Frontend tests (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
整理生成类型与示例文件的导入顺序
2026-09-16 01:26:18 +08:00
kdletters 69b3b016b5 补齐 Web ESLint 插件配置
Project CI / AI game creator shell Rust shard 1/4 (push) Has been cancelled
Project CI / AI game creator shell Rust shard 2/4 (push) Has been cancelled
Project CI / AI game creator shell Rust shard 3/4 (push) Has been cancelled
Project CI / AI game creator shell Rust shard 4/4 (push) Has been cancelled
Project CI / AI game creator shell Rust smoke (push) Has been cancelled
Project CI / AI game creator shell Rust crates (push) Has been cancelled
Project CI / Backend tests (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
Project CI / Frontend tests (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
启用仓库已有 react-hooks 与 react-refresh 规则插件
2026-09-16 01:20:22 +08:00
kdletters fe02a99f62 修复 Web ESLint TypeScript 解析配置
Project CI / AI game creator shell Rust shard 3/4 (push) Has been cancelled
Project CI / AI game creator shell Rust shard 4/4 (push) Has been cancelled
Project CI / AI game creator shell Rust smoke (push) Has been cancelled
Project CI / AI game creator shell Rust crates (push) Has been cancelled
Project CI / Backend tests (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
Project CI / Frontend tests (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / AI game creator shell Rust shard 2/4 (push) Has been cancelled
Project CI / AI game creator shell Rust shard 1/4 (push) Has been cancelled
使用仓库已有 TypeScript parser,避免 CI 将 TS 文件全部判为语法错误
2026-09-16 01:16:38 +08:00
kdletters 5da6ff46a1 补齐资源任务 Hook 依赖
Project CI / AI game creator shell Rust shard 3/4 (push) Has been cancelled
Project CI / AI game creator shell Rust shard 4/4 (push) Has been cancelled
Project CI / AI game creator shell Rust smoke (push) Has been cancelled
Project CI / AI game creator shell Rust crates (push) Has been cancelled
Project CI / Backend tests (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
Project CI / Frontend tests (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / AI game creator shell Rust shard 1/4 (push) Has been cancelled
Project CI / AI game creator shell Rust shard 2/4 (push) Has been cancelled
声明资源初始化开关依赖
2026-09-16 01:14:28 +08:00
suzmii 3f558bc1c1 修历史回合工具卡片与回合流被整批过滤掉
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
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
- 根因:App 侧 visibleTurnIds 用 directCodexTurnIdFromAssistantMessageId 解析消息 id,该函数要求 direct-codex: 前缀且 :assistant 结尾;实际数据里用户消息是 :user 结尾、assistant 消息是 Codex 原始 id(08ca3ef7-…),一个都解不出来 → visibleToolCalls / visibleTurnStreamItems 双双被过滤为空 → 视图拿不到工具与流(实机:groups=0,重进会话后工具消失)
- 修法一:新增 directCodexTurnIdFromConversationMessageId,:user / :assistant 两种后缀都认
- 修法二:一个回合都解不出来时(老历史)不过滤,交给视图的位置配对与兜底渲染决定位置
- 已删除诊断用的 window.__AGC_DEBUG 临时钩子
- tsc 0 错误
2026-09-16 01:07:50 +08:00
Git Hooks Test ab7ffded2f baseline
Project CI / AI game creator shell Rust shard 1/4 (push) Has been cancelled
Project CI / AI game creator shell Rust shard 2/4 (push) Has been cancelled
Project CI / AI game creator shell Rust shard 3/4 (push) Has been cancelled
Project CI / AI game creator shell Rust shard 4/4 (push) Has been cancelled
Project CI / AI game creator shell Rust smoke (push) Has been cancelled
Project CI / AI game creator shell Rust crates (push) Has been cancelled
Project CI / Backend tests (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
Project CI / Frontend tests (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
2026-09-16 01:07:42 +08:00
Git Hooks Test ce6dcea018 baseline 2026-09-16 01:07:41 +08:00
Git Hooks Test 0ce5eb35b0 提升图集切片上限并保留原始告警
图标图集自动、手动和网格切片上限统一提高到 256。

同步 SpacetimeDB 批次与生成结果 item 上限,覆盖 256/257 边界。

严格图集提交校验透传 sliceWarning 原始原因,避免通用文案覆盖根因。

补充 Rust 定向测试、文档和共享决策记录。
2026-09-16 01:06:34 +08:00
suzmii f4890d02b5 修历史回合不渲染流:消息与回合按位置配对
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
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
- 根因:流的 key 是 turnId,而持久化历史消息的 id 是 Codex 原始 id(如 a0e105c1-…),前端用 direct-codex:<turnId>:assistant 合成 id 配对永远失败 → 有流的回合既不渲染流也不渲染工具(实机 DOM:groups=0,只有 user+assistant×2)
- 修法:回合按首次出现时间排序后与用户消息按位置配对(第 N 个回合 ↔ 第 N 个用户消息);流序列渲染在该用户消息之后,该回合的 assistant 消息交给流(避免文本重复);没配上用户消息的回合兜底渲染在列表末尾
- 保护:若流的文本明显短于持久化 assistant 原文(老数据被截断过),流只渲染工具块(toolsOnly),正文仍由消息渲染,避免丢内容
- tsc 0 错误
2026-09-16 01:02:14 +08:00
suzmii 08eb475845 修重载对话后工具卡片消失(老项目回退路径)
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
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
- 根因:没有 turn-stream.jsonl 的回合走回退路径,靠 direct-codex:<turnId>:assistant 合成 id 找锚点;老项目持久化的 assistant 消息 id 是 Codex 原始 id(如 0cef4af7-…),锚不上,工具调用被丢弃
- 修法:锚不上的工具按回合收集,渲染在消息列表末尾(按首个 startedAt 排序),绝不丢失
- 一并包含:文本段按"更长优先"合并(前后端两侧),修正文只剩前缀的问题
- tsc 0 错误、cargo build 0 error
2026-09-16 00:53:38 +08:00
kdletters 792530ad24 修复资源任务延迟调用错误
Project CI / AI game creator shell Rust shard 4/4 (push) Has been cancelled
Project CI / AI game creator shell Rust smoke (push) Has been cancelled
Project CI / AI game creator shell Rust crates (push) Has been cancelled
Project CI / Backend tests (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
Project CI / Frontend tests (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / AI game creator shell Rust shard 1/4 (push) Has been cancelled
Project CI / AI game creator shell Rust shard 3/4 (push) Has been cancelled
Project CI / AI game creator shell Rust shard 2/4 (push) Has been cancelled
正确结束延迟 Promise 链,避免组件挂载时 TypeError
2026-09-16 00:51:32 +08:00
suzmii cae6006a96 修文本段被截断:同一 item 的文本按更长优先合并
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Failing after 1m47s
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Failing after 2m1s
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Failing after 2m24s
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Failing after 2m23s
Project CI / Backend tests (pull_request) Failing after 11s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m0s
Project CI / Repository checks (pull_request) Failing after 11s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m59s
Project CI / Frontend tests (pull_request) Failing after 3m54s
Project CI / AI game creator shell web tests (pull_request) Failing after 3m52s
Project CI / Native shell tests (pull_request) Has been cancelled
- 现象:回合正文只剩前缀(如"我来"),后面的完整文本没进对话流
- 根因:文本段快照的 updatedAt 未必单调递增,而合并规则只在 updatedAt 更新(或同刻)时才替换,后到的更长文本被判为"更旧"而丢弃
- Rust(direct_turn_stream.rs):kind=text 时更长文本优先;合并后 updated_at 取两者最大值,不回退顺序元数据
- 前端(App.tsx mergeTurnStreamItems):同规则改为更长优先
- 验证:cargo build 0 error、tsc 0 错误
2026-09-16 00:51:05 +08:00
suzmii f1632533df 去掉默认问候与对话内重复的进行中耗时
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Failing after 1m48s
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Failing after 1m54s
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Failing after 1m54s
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Failing after 1m53s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m40s
Project CI / Backend tests (pull_request) Failing after 10s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m34s
Project CI / Frontend tests (pull_request) Failing after 3m11s
Project CI / Repository checks (pull_request) Failing after 10s
Project CI / Native shell tests (pull_request) Successful in 5m18s
Project CI / AI game creator shell web tests (pull_request) Failing after 3m41s
- createDefaultChatMessages 不再插入「想做什么游戏?」占位消息(对话记录里没有信息量,且会出现在用户消息之后)
- 空对话改为按回读结果替换(新增 isEmptyConversation 判断),历史加载不受影响
- renderTurnUsage:回合进行中不再在对话里显示「本轮进行中 · 用时」,进行中的耗时由输入框上方的过程卡负责显示,避免重复;回合结束后仍显示「本轮结束于 … · 耗时 …」
- tsc 0 错误
2026-09-16 00:47:16 +08:00
suzmii 5519f9e3a7 合并 feat/turn-stream-order:按 item 分段的对话流
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Failing after 1m29s
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Failing after 1m27s
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Failing after 1m44s
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Failing after 1m41s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m30s
Project CI / Backend tests (pull_request) Failing after 10s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m11s
Project CI / Frontend tests (pull_request) Failing after 2m40s
Project CI / Repository checks (pull_request) Failing after 10s
Project CI / Native shell tests (pull_request) Successful in 5m18s
Project CI / AI game creator shell web tests (pull_request) Failing after 2m40s
- 冲突文件 ProjectSupervisorView.tsx 取新功能侧(它取代了按长度/标点/时间窗的启发式切分)
- 其余文件自动合并(Rust 流记录、读取命令、前端状态与渲染)
2026-09-16 00:44:27 +08:00
suzmii 44786066b0 按 item 分段实现文本与工具交替的对话流
- Rust:item 事件保留 itemId,文本段按 (turnId,itemId) 幂等落盘;工具项按 callId 落位置项
- 新增 .agent/conversations/turn-stream.jsonl(schema agc-turn-stream.v1):seq 为位置真相,首次分配后不回退;updatedAt 单调、同刻取更长文本;脱敏/上限/坏行跳过沿用工具卡片口径
- 发射器新增 emit_with_stream_items(不改 emit 现有签名),事件新增可选 streamItems
- 新增读取命令 read_direct_turn_stream(权限 conversation.read)
- 前端:打开项目读取历史流,实时按事件合并(同 id 幂等);按流渲染 text 块与工具块,相邻工具合并、夹文本则分块;回合末渲染结束时间与总耗时
- 回退:该回合没有流项(老项目/缺文件/读取失败)时沿用原渲染,不白屏不丢内容
- 删除长度切点/标点吸附/1 秒时间窗三套启发式
- cargo build 通过、tsc 无新增错误、编码检查通过;未跑测试
2026-09-16 00:40:53 +08:00
kdletters 2e2ff552f7 调整项目资源初始化时序
Project CI / AI game creator shell Rust shard 1/4 (push) Successful in 4m45s
Project CI / AI game creator shell Rust shard 2/4 (push) Successful in 4m55s
Project CI / AI game creator shell Rust shard 3/4 (push) Failing after 4m14s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m40s
Project CI / AI game creator shell Rust shard 4/4 (push) Successful in 4m24s
Project CI / AI game creator shell Rust crates (push) Successful in 2m26s
Project CI / Native shell tests (push) Failing after 2m2s
Project CI / AI game creator shell web tests (push) Failing after 47s
Project CI / Backend tests (push) Successful in 6m34s
Project CI / Frontend tests (push) Failing after 25m51s
Project CI / Repository checks (push) Failing after 26m1s
延后资源读取调用,避免阻塞 Direct Codex 首回合
2026-09-16 00:28:58 +08:00
suzmii b4e6f7e07e 实时交替渲染的切分点吸附到句子边界,避免把文本切碎
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Failing after 2m11s
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Failing after 2m12s
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Failing after 2m38s
Project CI / Backend tests (pull_request) Failing after 10s
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Failing after 2m32s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m39s
Project CI / Repository checks (pull_request) Failing after 11s
Project CI / AI game creator shell web tests (pull_request) Failing after 53s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m1s
Project CI / Native shell tests (pull_request) Failing after 2m50s
Project CI / Frontend tests (pull_request) Failing after 3m35s
- renderLiveStream:工具切分点向后吸附到最近的句末标点或换行(最多前探 200 字符)
- 同一条句子里的多个工具因此落到同一切点,自动合并成一个块(不再出现 轻|量|的 这种碎片)
- 找不到边界或已到文本末尾时保留原位置,不丢内容
2026-09-16 00:23:13 +08:00
suzmii 67126a981e 实时回合按顺序交替渲染正文与工具块
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Failing after 1m40s
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Failing after 2m25s
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Failing after 2m26s
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Failing after 2m22s
Project CI / Backend tests (pull_request) Failing after 11s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m57s
Project CI / Repository checks (pull_request) Failing after 10s
Project CI / Frontend tests (pull_request) Failing after 3m14s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 3m29s
Project CI / AI game creator shell web tests (pull_request) Failing after 3m14s
Project CI / Native shell tests (pull_request) Successful in 7m29s
- App.tsx:记录"每个工具首次出现时已生成正文的长度"(切分点)并在收尾/清空对话时重置
- ProjectSupervisorView:新增 renderLiveStream,按切分点把流式正文切成若干段,工具块就地插在对应位置;同一切分点的工具合并成一个块
- 有正文时不再重复渲染独立实时工具组(避免同一批工具出现两次)
- 历史回合没有切分点:退化为"正文 → 工具块 → 轮次统计",老项目与旧数据不受影响
- tsc 通过;未跑测试
2026-09-16 00:21:03 +08:00
kdletters 2a9035ce20 补齐 Direct Codex 项目标识
Project CI / AI game creator shell Rust shard 1/4 (push) Successful in 4m38s
Project CI / AI game creator shell Rust shard 2/4 (push) Successful in 4m48s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m45s
Project CI / AI game creator shell Rust shard 3/4 (push) Failing after 4m42s
Project CI / AI game creator shell Rust crates (push) Successful in 2m21s
Project CI / AI game creator shell Rust shard 4/4 (push) Successful in 4m35s
Project CI / Native shell tests (push) Failing after 1m59s
Project CI / AI game creator shell web tests (push) Failing after 53s
Project CI / Frontend tests (push) Failing after 3m2s
Project CI / Repository checks (push) Failing after 3m5s
Project CI / Backend tests (push) Successful in 7m23s
发送直接回合时携带 manifest projectId,匹配 Rust 契约与测试断言
2026-09-16 00:20:37 +08:00
suzmii 7d5916aa62 工具块改为排在文本之后(修正锚定遗留:先前从消息前移除但未插回)
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Failing after 2m4s
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Failing after 2m36s
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Failing after 2m38s
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Failing after 2m35s
Project CI / Backend tests (pull_request) Failing after 10s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m50s
Project CI / Repository checks (pull_request) Failing after 12s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m8s
Project CI / Frontend tests (pull_request) Failing after 3m17s
Project CI / AI game creator shell web tests (pull_request) Failing after 3m11s
Project CI / Native shell tests (pull_request) Successful in 7m12s
- ProjectSupervisorView:该回合的工具组渲染在 assistant 消息之后、轮次统计之前,不再压在同回合文本上面
- 实时回合的工具组改到流式正文之后,顺序与落定回合一致
- 修掉上一次改动把工具组从消息前移除却没插回、导致工具卡片不显示的问题
2026-09-16 00:19:09 +08:00
suzmii 9b7f7f110c 提交对话区样式收尾(含另一路未提交的 Markdown 间距修正)
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Failing after 2m11s
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Failing after 2m44s
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Failing after 2m39s
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Failing after 2m42s
Project CI / Backend tests (pull_request) Failing after 10s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m43s
Project CI / Repository checks (pull_request) Failing after 10s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m59s
Project CI / Frontend tests (pull_request) Failing after 3m36s
Project CI / AI game creator shell web tests (pull_request) Failing after 3m33s
Project CI / Native shell tests (pull_request) Successful in 7m15s
- styles.css:移除 .message 的 white-space: pre-wrap(Markdown 块之间的换行文本节点会被渲染成真实空行,列表项之间出现大段空白)
- styles.css:对话正文行高统一并钉死 1.5(面板里存在更长的选择器链,普通 .message p 会被压过去)
- styles.css:列表 ul/ol 的默认块间距显式清零,避免与 p 的 margin 叠加成"假空行"
- styles.css:流式思考过程折叠块样式(pre-wrap 换行、1.5 行高、无横向滚动条)
- 说明:本文件里同时包含另一路会话未提交的 Markdown 间距改动,一并提交以免丢失
2026-09-16 00:12:36 +08:00
kdletters eeb0206164 修复 Stdb 发布临时目录权限
Project CI / AI game creator shell Rust shard 1/4 (push) Successful in 5m14s
Project CI / AI game creator shell Rust shard 2/4 (push) Successful in 5m31s
Project CI / AI game creator shell Rust shard 3/4 (push) Failing after 4m38s
Project CI / AI game creator shell Rust shard 4/4 (push) Successful in 4m26s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m41s
Project CI / AI game creator shell Rust crates (push) Successful in 2m33s
Project CI / Frontend tests (push) Failing after 3m51s
Project CI / Repository checks (push) Failing after 3m27s
Project CI / Backend tests (push) Successful in 7m37s
Project CI / Native shell tests (push) Successful in 7m7s
Project CI / AI game creator shell web tests (push) Failing after 3m15s
将以服务用户执行的 WASM 发布临时目录移到 /var/tmp
2026-09-16 00:03:22 +08:00
lhk229 ab8e744ae7 Merge pull request '修复策划输入框光标跳动' (#378) from fix/enter into master
Project CI / AI game creator shell Rust shard 1/4 (push) Successful in 5m33s
Project CI / AI game creator shell Rust shard 2/4 (push) Successful in 5m38s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m55s
Project CI / AI game creator shell Rust shard 3/4 (push) Failing after 5m28s
Project CI / AI game creator shell Rust shard 4/4 (push) Successful in 4m30s
Project CI / AI game creator shell Rust crates (push) Successful in 2m29s
Project CI / Frontend tests (push) Failing after 3m17s
Project CI / Backend tests (push) Failing after 5m59s
Project CI / Repository checks (push) Failing after 3m53s
Project CI / Native shell tests (push) Successful in 7m17s
Project CI / AI game creator shell web tests (push) Failing after 3m43s
Reviewed-on: https://git.genarrative.world/git/GenarrativeAI/Genarrative/pulls/378
2026-09-15 23:57:36 +08:00
lhk229 c85e8afea8 修复策划输入框光标跳动
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
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
移除受控草稿判等中无法由父组件同步的 content 字段

避免每次输入都重建 Lexical 内容并将光标移到末尾
2026-09-15 15:56:21 +00:00
suzmii 656dd2be2a 降低对话消息行高
修复助手回复视觉空隙过大的问题
2026-09-15 23:48:15 +08:00
suzmii 8b5d0e9200 修复 Markdown 换行归一化
先统一 CRLF 与 LF,再压缩正文中的多余空行
2026-09-15 23:46:16 +08:00
kdletters 7043e8db5c Merge pull request 'DirectProject聊天状态从webview移入rust' (#367) from fix/chat-state into master
Project CI / AI game creator shell Rust shard 3/4 (push) Failing after 5m24s
Project CI / AI game creator shell Rust shard 1/4 (push) Successful in 5m48s
Project CI / AI game creator shell Rust shard 2/4 (push) Successful in 6m0s
Project CI / AI game creator shell Rust shard 4/4 (push) Successful in 6m5s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m12s
Project CI / AI game creator shell Rust crates (push) Successful in 3m4s
Project CI / Native shell tests (push) Successful in 6m29s
Project CI / Repository checks (push) Failing after 5m20s
Project CI / Frontend tests (push) Failing after 7m9s
Project CI / AI game creator shell web tests (push) Failing after 7m7s
Project CI / Backend tests (push) Successful in 16m54s
Reviewed-on: #367
2026-09-15 23:43:01 +08:00
suzmii a40b7b31ee 处理 Markdown 空白行格式
兼容带空格的连续空行,保留 Markdown 段落分隔语义
2026-09-15 23:41:30 +08:00
suzmii a8559597ca 去除 Markdown 多余空行
保留两个换行表示的正常空行,仅压缩普通正文中的连续多余换行
2026-09-15 23:37:53 +08:00
suzmii 5508456d3e 收紧对话 Markdown 间距
减少段落和列表之间的空白,避免回复出现过多空行
2026-09-15 23:34:02 +08:00
suzmii 96f1889164 Merge remote-tracking branch 'origin/master' into feat/chat-codex-ui
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
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
2026-09-15 23:29:08 +08:00
suzmii 7970bc68bd Merge remote-tracking branch 'origin/master' into feat/chat-codex-ui
# Conflicts:
#	apps/ai-game-creator-shell/src/App.tsx
2026-09-15 23:26:00 +08:00
suzmii 1b8053de15 固定运行状态卡片高度
避免回复流式生成期间状态卡片随内容变化而收缩
2026-09-15 23:15:40 +08:00
suzmii d6420c8db5 移除运行中重复耗时
运行中的回合只保留状态卡片耗时,历史回合继续显示会话耗时
2026-09-15 23:11:40 +08:00
suzmii e39714e17d 删除对话空状态提示
移除工作台会话区域中的引导 hint
2026-09-15 23:07:53 +08:00
suzmii 05b4f9bc87 修复智能创作对话展示与工具调用
修复流式回复、运行状态卡片和回合耗时展示

保留创建项目时的初始提示词并调整输入区按钮

展示工具调用输入输出并清理命令输出中的 ANSI 编码
2026-09-15 23:00:45 +08:00
suzmii d7f20a2f4d 补注册 read_agent_runtime_error_detail 到 Tauri handler 列表(合并时被 checkout 覆盖)
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Failing after 5m8s
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Successful in 5m38s
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Successful in 5m53s
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Successful in 5m58s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m50s
Project CI / Repository checks (pull_request) Has been cancelled
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 / AI game creator shell Rust crates (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-15 20:55:53 +08:00
suzmii 1b8e159153 同步 skill-pack 内容指纹(taonier-art-assets,version=2026-08-26.15)
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Failing after 5m21s
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Successful in 5m37s
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Successful in 4m37s
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Successful in 3m52s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m27s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m39s
Project CI / AI game creator shell web tests (pull_request) Has been cancelled
Project CI / Backend tests (pull_request) Has been cancelled
Project CI / Frontend 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
2026-09-15 20:54:27 +08:00
suzmii 1c1009c1d1 合并 origin/master(真合并:AGC 统一错误诊断 / 图集连通域切分)
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Failing after 5m31s
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Failing after 5m19s
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Failing after 5m44s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m54s
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Failing after 4m13s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m18s
Project CI / Native shell tests (pull_request) Failing after 2m14s
Project CI / Repository checks (pull_request) Failing after 1m17s
Project CI / AI game creator shell web tests (pull_request) Failing after 51s
Project CI / Frontend tests (pull_request) Failing after 3m26s
Project CI / Backend tests (pull_request) Successful in 7m9s
- canvas_generation.rs:接入 master 新增的 slice_mode / grid_x / grid_y 结构体字段
- commands.rs:master 的 read_agent_runtime_error_detail 命令与本分支 read_direct_tool_calls 并存(两侧都保留)
- main.rs:两条命令都注册
- 冲突按"两侧语义都保住"处理;未跑测试
2026-09-15 20:51:19 +08:00
suzmii b35f3efd55 Merge branch 'fix/resume-running-direct-turn' into feat/chat-codex-ui 2026-09-15 20:47:46 +08:00
suzmii a3cedb5d50 合并 origin/master(AGC 统一错误诊断 / 图集连通域切分)
- commands.rs:接入 master 新增的 read_agent_runtime_error_detail 命令,并补上 prepare_local_project_asset_generation 里新增的 slice_mode / grid_x / grid_y 三个字段
- main.rs:注册 read_agent_runtime_error_detail
- 保留我们这边的 read_direct_tool_calls 等命令,两侧新增全部保留
- 冲突原为纯追加,按"两侧语义都保住"处理;未跑测试
2026-09-15 20:47:45 +08:00
suzmii 7161e934e0 历史回读保留尚未落盘的运行时消息;过程卡不再渲染流式正文
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Successful in 5m8s
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Successful in 5m38s
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Successful in 4m53s
Project CI / Backend tests (pull_request) Failing after 11s
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Successful in 4m0s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m44s
Project CI / Repository checks (pull_request) Failing after 11s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 3m14s
Project CI / AI game creator shell web tests (pull_request) Failing after 3m14s
Project CI / Frontend tests (pull_request) Failing after 3m29s
Project CI / Native shell tests (pull_request) Successful in 7m10s
2026-09-15 20:39:36 +08:00
suzmii e788bf0fea 修复重进会话被堵死:前端打开项目时接管仍在运行的 Direct 回合
打开项目读项目对话之后调用 read_direct_codex_active_turn,返回回合时把它设回 activeDirectCodexTurnRef(字段与既有两处赋值同形),并置 directCodexStatus=running、chatAgentBusy=true,让过程卡、"任务执行中"与输入盒的终止按钮都出现
只读探测失败或没有回合等于没有回合,不影响打开项目;同一项目已接管时不重复接管,避免 /history 之类重读把 lastSequence 归零
恢复出来的回合挂 15 秒看门狗:窗口内一条本回合事件都没有,就在过程卡与输入盒提示"该回合已无响应,可在输入盒点「终止」结束它以继续";收到真实事件立刻撤掉提示与看门狗
终止按 cancel_direct_codex_turn 的返回值分流:outcome=released 说明守卫已被后端兜底释放、没有回合 promise 会回来复位,界面自己复位并展示后端可读原因;interrupted 仍等回合自身收尾
发消息若仍被"已有另一条 Direct 客户端回合正在运行"拒绝,延时接管那条回合并把出口写进提示(不与同 clientTurnId 的既有分类混用,新增独立判定)
新增 DirectActiveTurnView / DirectTurnCancelView 两个命令返回类型
2026-09-15 20:33:25 +08:00
suzmii d833ca9d32 修复重进会话被堵死:终止可兜底释放残留守卫,并把拒绝文案改成可操作
cancel_direct_codex_turn 返回值改为 DirectTurnCancelView{outcome, message, clientTurnId},界面能区分"已发中断"与"守卫已被兜底释放"
cancel_direct_codex_turn_at 在拿不到可中断的活句柄(执行进程已退出 / 从没进执行器)时释放本地守卫,返回可读原因;"正在跑的是另一轮"仍保持原拒绝语义,什么都不释放
新增 release_stale_direct_taonier_active_invocation:释放条件写进注释——登记存在、clientTurnId 一致、调用方已确认执行器没有活句柄、"从没进执行器"时登记年龄还要超过 60 秒启动窗口
DirectTaonierStaleGuardReason 给出两种兜底原因与可读文案;DirectCodexActiveTurnTable 增加 registered_client_turn_id,另一轮拒绝文案提成共用常量
把"已有另一条 Direct 客户端回合正在运行"补成可操作文案:可在输入盒点终止,或等它结束后再发送(不改错误分类与前缀语义)
新增用例:同项目第二次进入仍被拒、clientTurnId 不匹配不释放、启动窗口内不释放、老过窗口释放后可再次进入、原守卫 Drop 不影响后来登记的回合
2026-09-15 20:33:01 +08:00
suzmii 48b482afaf 修复重进会话无法恢复运行中的 Direct 回合:Rust 增加活跃回合只读探测
新增 read_direct_codex_active_turn 只读命令:返回当前登记的 { clientTurnId, startedAt },供前端重进会话时接管正在跑的回合
DirectTaonierActiveInvocation 增加 started_at_ms 登记时刻,供只读探测与后续兜底释放判断这一轮的年龄
不改守卫互斥语义与 Drop 释放时机:探测既不进入也不抢占
把命令注册进 main.rs 的 invoke_handler
新增用例:登记中的回合能被只读探测看到、探测本身不占有不释放、Drop 之后回到 None
2026-09-15 20:32:29 +08:00
suzmii 52f1d7f08b 撤回思考过程块上移:恢复 master 的原始位置(消息自带的 reasoningText 折叠块本来就在消息里,设计链 entries 追加在消息之后)
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Successful in 5m0s
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Successful in 4m23s
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Successful in 4m46s
Project CI / Backend tests (pull_request) Failing after 10s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m42s
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Successful in 4m2s
Project CI / Repository checks (pull_request) Failing after 11s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m47s
Project CI / Frontend tests (pull_request) Failing after 3m35s
Project CI / AI game creator shell web tests (pull_request) Failing after 3m27s
Project CI / Native shell tests (pull_request) Successful in 7m46s
2026-09-15 20:17:26 +08:00
suzmii aab1c5c4e0 思考过程移到消息流上方;修 latch 路径不匹配时占用初始消息导致首页输入被丢
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
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
2026-09-15 20:05:58 +08:00
suzmii 33a7205750 消息列表相邻元素补回 14px 间距:块级列表不生效 gap,导致消息与工具块贴在一起
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
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
2026-09-15 20:02:45 +08:00
suzmii b665cf6691 Merge branch 'feat/doc-card-preview' into feat/chat-codex-ui
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
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
2026-09-15 19:59:13 +08:00
suzmii 80a806aa02 修复从首页打开已有项目时丢掉首页输入:initialPrompt 不再写死空串,首页草稿文案随打开动作进入首轮与对话历史 2026-09-15 19:59:07 +08:00
suzmii 608c3e8790 资源卡文档分区:Markdown/纯文本显示前几行,代码文件改画代码图标
- index.tsx:卡面据 projectResourceCardPreviewVariant 分流,代码卡分支只渲染 lucide 代码图标 + 扩展名标签,不再显示文件内容
- index.tsx:文档卡改用 projectResourceDocumentPreviewText 取前 3 行,并带上 data-document-preview-variant 便于排障与验收
- index.tsx:引入 FileCode2 图标
- ResourcePreviewMedia.tsx:弹窗宿主里代码文件同样改画代码图标,避免看起来像"读不出来的图片"
- styles.css:文档卡预览保留换行并限制 3 行(white-space: pre-line + -webkit-line-clamp: 3)
- styles.css:新增 .game-resource-card-code-visual / .game-resource-card-code-label,复用现有卡片色板与居中排布口径
2026-09-15 19:58:25 +08:00
suzmii 2c80aab621 文档卡片按文件类型分流:新增类型识别与代码卡免读取门禁
- resourceCardPreviewModel:新增 Markdown / 代码 / 纯文本三支扩展名口径,`.json`/`.yaml`/`.toml`/`.xml`/`.html`/`.css`/`.sql` 按用户口径归入代码
- resourceCardPreviewModel:新增 projectResourceCardPreviewVariant 给出卡面分流结论,projectResourceCodeTypeLabel 给出代码卡类型标签
- resourceCardPreviewModel:纯文本(`.txt`/`.csv`/`.log` 等)在上游无类型结论时兜底为文档,改走文本预览而不是占位图标
- resourceCardPreviewModel:用按行截断的 projectResourceDocumentPreviewText 替换压成一行的 summarizeProjectResourceDocument
- resourceCardPreviewModel:Markdown 轻量清理只去标记符号并保留换行,不引入完整渲染器
- useProjectResourceCardPreviews:代码卡在 requestPreview 入队门禁直接返回,不再读取文件内容(判据与卡面分流同源)
- useProjectResourceCardPreviews:收窄 readPreview 的文档/代码双分支为文档单分支,去掉已不可达的代码读取路径
2026-09-15 19:58:21 +08:00
suzmii 1427ce31af 合并 origin/master:解 4 处冲突并接入 master 的真思考过程
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Successful in 4m42s
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Successful in 4m57s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m6s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m51s
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Successful in 4m52s
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Successful in 4m31s
Project CI / Frontend tests (pull_request) Failing after 3m38s
Project CI / Native shell 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 / Backend tests (pull_request) Has been cancelled
- 合并 origin/master(领先 355+ 提交),冲突 3 文件 4 块,全部按"两侧语义都保住"处理:
- useHomeProjectCreation.ts:保留我们抽出的 uploadLocalFilesAsAttachments(首页与输入盒共用上传链路),同时接入 master 的建项兜底期限(HOME_CREATION_DEADLINE_MS / resolveRecoverableHomeProjectPath)
- ProjectSupervisorView.tsx(属性):接入 master 新增的 designReasoningEntries 属性
- ProjectSupervisorView.tsx(渲染):把我们的工具调用折叠块(按回合锚定、实时兜底到列表末尾)与 master 的每消息思考过程(message.reasoningText 折叠块 + designReasoningEntries 兜底)合并,两者同时生效
- view/project-development/index.tsx:接入 master 新增的图标 import(Settings2 / Shapes)
- 类型检查通过(0 错),未跑测试
2026-09-15 19:56:35 +08:00
suzmii 426fb9b728 工具调用折叠块块头拆成两行
Project CI / Repository checks (pull_request) Failing after 10s
Project CI / Backend tests (pull_request) Failing after 11s
Project CI / Frontend tests (pull_request) Failing after 2m21s
Project CI / Native shell tests (pull_request) Failing after 5m26s
- ToolCallGroup:状态/时间与用时包进 agent-tool-call-group-meta
- styles.css:块头改两行网格(图标 + 汇总一行,状态/用时一行,箭头右侧跨两行),汇总超长省略,避免窄面板里被截断且进行中折行
2026-09-15 19:53:16 +08:00
suzmii 82ac6c160f 工具调用行去掉动词前缀,状态列改为执行中/已执行/失败
Project CI / Repository checks (pull_request) Failing after 13s
Project CI / Backend tests (pull_request) Failing after 12s
Project CI / Frontend tests (pull_request) Failing after 2m14s
Project CI / Native shell tests (pull_request) Failing after 6m15s
- toolCallGroupPresentation:行文案不再拼 已运行/已编辑/已调用 前缀,只留工具摘要(状态由行尾状态列表达,避免重复)
- toolCallGroupPresentation:汇总文案在回合进行中只说数量(如 2 个命令),落定后才加 已执行
- ToolCallGroup:行尾状态固定显示 执行中(仅正在跑的回合)/ 已执行 / 失败,不再出现空状态
2026-09-15 19:52:39 +08:00
suzmii 0d2010168e 移除伪思考过程块:拿不到真思考过程就不显示
Project CI / Repository checks (pull_request) Failing after 15s
Project CI / Backend tests (pull_request) Failing after 15s
Project CI / Frontend tests (pull_request) Failing after 2m21s
Project CI / Native shell tests (pull_request) Failing after 5m17s
2026-09-15 19:43:41 +08:00
suzmii 24c8631869 思考过程不再按回合清空,保留在会话里 2026-09-15 19:38:35 +08:00
suzmii 35b26ea3ef 对话面板:新增默认折叠的「思考过程」块
- App.tsx:直连回合按回合累积过程/步骤行(相邻重复去重、最多 40 行),每次回合更新时收集,新回合开始时清空
- App.tsx:把累积结果作为 processSteps 传给对话面板
- ProjectSupervisorView:新增可选属性 processSteps;在消息流里渲染默认折叠的「思考过程」块(details 默认收起,data-testid=agent-thinking)
- styles.css:思考过程块与步骤列表的最小样式(左右与消息内容对齐 16px)
- 说明(限制):Codex app-server 0.147/0.149 只推结构性 item、不推 reasoning 文本(codex_app_server.rs 对 reasoning 类型是明确忽略并有单测钉住),所以这里展示的是我们真实能拿到的过程行(正在思考中 / 正在执行命令:x / 正在写入文件:y),不是模型内部推理原文;策划/设计链原有的 designReasoning 折叠块不受影响
2026-09-15 19:37:16 +08:00
suzmii 802114e14b 修复对话面板过程卡与工具调用块的展示问题
- ProjectSupervisorView:把「任务执行中 / 正在思考中」过程卡从消息列表内部移到列表外,紧贴输入盒上方(固定在输入框上面,不随消息滚走)
- styles.css:过程卡离开列表后补回左右 16px 内缩,与消息内容、输入盒对齐(并补回底部间距)
- ToolCallGroup:未结束时不再显示「结束于 HH:mm」——只有全部工具落定后才显示块尾那行
- ToolCallGroup:进行中改为「现在 - 最早开始时间」并每秒重算,用时数字会实时跳动(此前只在新事件到达时变)
- ToolCallGroup:只有正在跑的回合才显示「进行中 / 执行中」;已结束回合里残留的 running 快照不再让用户看到永远停在「执行中」
- ProjectSupervisorView:给实时回合的折叠块传 active,历史回合的块不传(默认按已结束渲染)
- ComposerControls:推理档从原生 select 换成与模型选择器同一套观感的浮层(复用 conversation-model-* 触发钮与菜单样式,带选中勾选),不再出现操作系统原生下拉
2026-09-15 19:35:57 +08:00
suzmii cf7e4775b9 合并 feat/chat-composer-controls:输入盒对标 Codex 的 5 项能力
- 合并分支:feat/chat-composer-controls(基线 a60c04b53,4 笔提交)
- 冲突文件 apps/ai-game-creator-shell/tests/appSurface.test.ts:两条分支各自注册了自己的新用例集(工具调用折叠块 / 输入盒能力),属纯追加,两侧都保留
- 内容:文件上传(+ 弹层:上传本地文件 / 引用项目素材,走既有 upload_local_asset + 回合附件)、终止(新增 cancel_direct_codex_turn + 前端停止钮)、队列(纯前端 FIFO,含取消)、语音输入(无 SpeechRecognition 时禁用降级)、推理档下移到输入盒并从设置面板移除(新增 select_game_creator_reasoning_effort)
2026-09-15 19:06:41 +08:00
suzmii 5728e64742 Merge branch 'feat/chat-toolcall-hardening' into feat/chat-codex-ui 2026-09-15 18:57:52 +08:00
suzmii f1da01111e Merge branch 'feat/chat-toolcall-group' into feat/chat-codex-ui 2026-09-15 18:56:04 +08:00
suzmii 19c3703027 同步 markdown 列表渲染后的既有断言
- appSurface/project-commands.suite.ts:去掉期望文本里手写的前缀短横线(列表项目符号改由 CSS 绘制)
- appSurface/project-commands.suite.ts:把路径匹配限定到 LI 元素(去掉前缀后 li 与内部 p 文本相同,getByText 会命中两个元素)
- appSurface/project-assets.suite.ts、supervisor-runtime.suite.ts、preview-shortcuts:同步去掉期望文本里的手写短横线
- 背景:a60c04b53 把无序列表从手写短横线文本改成真正的 list-disc 标记,9 条既有断言因此失败,本笔把它们对齐到新契约
2026-09-15 18:54:13 +08:00
suzmii 3169baa2eb 补充项目内路径形状用例(/ 写法与大小写变体)
- direct_tool_calls.rs:新增单测 tool_call_paths_normalize_separators_and_case,
  覆盖 relativize_project_root_paths 的 `/` 分隔符分支与大小写不敏感分支
  (Codex 上报的路径分隔符与盘符大小写不受我们控制,这两条分支此前没有用例覆盖)
2026-09-15 18:36:18 +08:00
suzmii b395185580 补记工具调用卡片契约(脱敏范围、路径形状、状态单调、200 条上限语义)
- docs/technical/【技术方案】GameAgent对话工具调用卡片-2026-09-14.md:
  写明同一 id 的快照按 updatedAt 单调合并(旧快照不得把 completed / failed 打回 running,
  并发来源是逐条快照落盘与回合末整批落盘两条路径)
- 写明 detail.changes[].path 用项目相对路径(分隔符统一成 /)、项目外绝对路径用 <absolute-path> 占位
- 写明必须脱敏的具体函数链路(sanitize_detail_text:路径归一化 → redact_absolute_path_tokens →
  redact_secret_tokens → sanitize_error_context),含敏感 CLI 标志的行整行 fail-closed
  (--password 后面即使只是 $VAR 占位符也整行替换),且脱敏必须幂等
- 写明 200 条上限语义是"按时间保留最新 200 条",超出时更早回合的卡片会被静默丢弃(老回合卡片会消失),
  不做分页与历史回填(行为不变,只补文档)
- 写明单行损坏(含非法 UTF-8)逐行读取跳过继续,黏连形态只丢那一行
- 新增单测:tool_call_cap_drops_oldest_turn_cards(超出后保留最新 N 条 + 按时间正序)
2026-09-15 18:22:53 +08:00
suzmii 885f2f10f3 修复工具调用坏行读取截断后续记录(P2)
- direct_tool_calls.rs:read_tool_call_lines 由 BufReader::lines() + let Ok(line) = line else { break }
  改成按行读字节(read_until)+ 逐行 from_utf8 解码:非法 UTF-8 行只跳过该行并继续读后续行,
  不再把这一行之后的所有记录一起丢掉;只有读 I/O 错误才停止读取
- 契约「单行损坏跳过该行继续」在"损坏行缺换行、与下一行黏成一行"时也成立:丢掉的只是黏连的那一行
- 新增单测:tool_call_read_skips_invalid_utf8_line(合法行 + 非法字节行 + 合法行 → 读回 2 条;
  以及损坏行缺换行的黏连形态)
2026-09-15 18:21:12 +08:00
suzmii 1f13412dde 切项目时清空输入盒待发附件与消息队列
待发附件的 localPath 是项目相对路径、队列也属于刚结束的那条对话;切项目后不清空会把上一个项目的附件路径带进下一个回合。

只新增一个跟随 localProject.projectPath 的 effect,其余输入盒状态与后端协议不变。
2026-09-15 18:21:01 +08:00
suzmii bc89bf45c3 修复工具调用项目内路径形状与死代码(P2)
- direct_tool_calls.rs:新增 project_relative_path_segment 与 relativize_project_root_paths,
  在 redact_absolute_path_tokens 之前把项目根目录前缀换成项目相对路径(game/src/x.ts),
  Windows 的 \ 与 / 两种写法都匹配、大小写不敏感、分隔符统一成 /
- 项目外绝对路径继续落成 <absolute-path> 占位;只写了项目根目录本身时也按占位处理
- 删掉永远匹配不到的死代码 without_secret.replace(root, "<project-root>")
  (redact_absolute_path_tokens 已经把项目根目录换成 <absolute-path>,契约里的"项目相对路径"在绝对路径场景不成立)
- 新增单测:tool_call_paths_become_project_relative(项目内相对路径 + 项目外占位 + 落盘不残留项目根目录)
2026-09-15 18:19:33 +08:00
suzmii abaae50c43 推理档从设置面板移除,改由输入盒控制
RuntimeConfigDialog 删掉「推理档」下拉:该档位已下移到对话输入盒的模型选择器旁;其余设置字段不变。

runtime-settings.suite 同步调整三处断言:设置面板不再有推理档,Escape 用例改用联网检索控件,恢复默认用例改为断言设置里查不到推理档。
2026-09-15 18:18:43 +08:00
suzmii a766ff9634 输入盒对标 Codex 补齐上传、终止、队列、语音与推理档
文件上传:+ 改成添加入口(上传本地文件 / 引用项目素材),上传走既有 upload_local_asset 链路并落成 DirectCodexTurnAttachment,随下次提交进入回合 attachments,提交后清空。

终止:回合运行中发送钮位置显示终止方块,调用新增 cancel_direct_codex_turn;中断回流被识别为主动终止,回合 finally 复位输入盒,不再写运行错误与诊断。

队列:回合运行中再次发送进本地 FIFO 队列并在输入盒上方以 chip 展示、可单条取消,回合结束后按序自动发出;输入区在 direct-codex 回合运行中保持可编辑(其余面板维持原行为)。

语音:用 SpeechRecognition/webkitSpeechRecognition,缺失时按钮禁用并直接给出不支持提示;录音态有 is-recording 视觉反馈,识别文本追加进草稿(ResourceReferenceInput 新增 insertText)。

推理档:移到模型选择器旁,读 read_game_creator_app_config、写 select_game_creator_reasoning_effort,只影响后续回合。

新增 tests/appSurface/chat-composer.suite.ts(10 条:队列 FIFO/取消、终止复位、上传后附件进提交、推理档写入回读、语音降级与录音态、追加不覆盖)并更新 + 与推理档相关的既有断言。
2026-09-15 18:18:23 +08:00
suzmii a0efd92192 修复工具调用落盘状态无单调性(P1)
- direct_tool_calls.rs:把 preserve_started_at(只管 startedAt)换成 merge_tool_call_snapshot,
  同一 id 的多条快照按 updatedAt 单调合并:updatedAt 更旧的快照不得覆盖更新的 status 与 updatedAt,
  updatedAt 相同时终态优先,startedAt 仍取最早的非零值
- upsert_direct_tool_call_once(逐条快照落盘)与 persist_direct_tool_calls_at(回合末整批落盘)
  两条竞争路径共用同一合并函数,后到的旧快照不再把 completed / failed 打回 running
- normalize_tool_calls(回读归并)同 id 的重复行同样按 updatedAt 合并,磁盘上留下的旧快照不得回退状态
- 新增单测:tool_call_persist_keeps_newest_snapshot_per_item(单条 + 整批两条路径)、
  tool_call_read_merges_duplicate_rows_monotonically(回读重复行)
2026-09-15 18:17:54 +08:00
suzmii 1a2331bdb1 新增 direct-codex 回合终止与推理档写入命令
新增 cancel_direct_codex_turn:按项目登记正在运行的 direct-codex 回合句柄,终止时复用 CodexTurnStartCancellation 只发 turn/interrupt;无活动回合、clientTurnId 不匹配、进程已退出都返回可读原因。

新增 select_game_creator_reasoning_effort:按 select_game_creator_model 的既有配置写入模式,只改 llm.reasoningEffort 后落盘,读接口语义不变。

codex_app_server.rs 追加 DirectCodexActiveTurnTable 注册表与回合登记/注销 guard,并补 2 个单测(选中/注销哪一轮、注册键归一化);既有事件与命令语义不动。
2026-09-15 18:17:46 +08:00
suzmii b8ff3cfb56 修复工具调用卡片五类凭据脱敏覆盖不足(P0)
- direct_tool_calls.rs:detail.command / detail.output / detail.changes[].path 不再只走
  redact_absolute_path_tokens + redact_secret_tokens(后者只认 sk-/tnr_sk_/ghp_/AKIA/eyJ 固定前缀),
  改为追加既有 sanitize_error_context(= redact_secret_tokens + redact_error_sensitive_assignments
  + redact_error_bearer_values + redact_error_config_names 的既有组合用法),
  覆盖 Authorization: Bearer <token>、Cookie: session=<v>、api_key=<v>、client_secret=<v> 四类键值凭据
- 含 --password / --token / --secret / --api-key 这类敏感 CLI 标志的行沿用既有 fail-closed 约定,
  整行替换成 [redacted sensitive context](与 sanitize_agent_runtime_text 行为一致)
- summary 的 tool 兜底来源同样先脱敏(同一条落盘链路上的残留未脱敏文本)
- 新增单测:tool_call_redacts_extended_credential_shapes(五类凭据在投影与落盘行都不含原始值)、
  tool_call_redaction_keeps_normal_text_and_is_idempotent(裸 password 词不误伤、脱敏幂等、sk- 前缀不回退)
2026-09-15 18:14:15 +08:00
suzmii 1b40822421 补空对话首轮的工具调用块用例
- 新增用例:历史为空、消息列表里只有没有 messageId 的默认问候时,当前回合的工具块在回合进行中就直接渲染在消息列表末尾
- 同一用例断言回合结束后块只有一份、并回到该回合 assistant 消息之前(末尾兜底不留重复块)
- 断言块内每行为按钮、行数 = 工具数、data-duration-ms 与行耗时文案
2026-09-15 17:58:37 +08:00
suzmii 89e842d077 工具调用折叠块样式:整行浅底块头 + 右对齐耗时
- styles.css 工具调用区块重写:块头做成一整行浅底圆角条目(图标 / 汇总 / 结束时间 / 总用时 / 折角),只用现有 --platform-* 变量
- 展开态每行一条:行内不换行、超长命令 text-overflow: ellipsis,耗时 margin-left: auto 右对齐、tabular-nums 对齐数字
- 行二级明细改用 agent-tool-call-row-command / -output / -changes 样式,命令与输出沿用中性底 + 细边框
- 补 [hidden] 显式 display: none,避免折叠态被 display: grid 顶掉后仍占位
- 展开箭头只做 rotate 过渡,不引入布局跳动;failed 行用 --platform-button-danger-text
- 删除旧 agent-tool-call-* 卡片样式;输入盒 / 面板留白 / 顶栏相关规则未动
2026-09-15 17:44:04 +08:00
suzmii 9f7aed0b2d 工具调用折叠块补齐耗时与时间
- 新增 toolCallGroupPresentation.ts 的耗时 / 时间纯函数:toolCallDurationMs、formatToolCallDuration(0.4s / 12.3s / 2m 5s)、turnToolCallDurationMs、formatTurnDuration(42秒 / 4分钟 / 5分钟 45秒)、formatClockTime、turnToolCallTimeLabel
- ToolCallGroup:块头右侧显示总用时(min(startedAt) → max(updatedAt))与该回合结束时间(拿得到同回合用户消息时间时显示 发送 → 结束)
- ToolCallGroup:展开态每行右侧显示该工具自己的耗时;startedAt 为 0 或时间倒序时不显示耗时(不出现 0s / 负数),running 行显示 执行中
- ToolCallGroup:块与行都带 data-duration-ms(无法计算时为空串),块尾补一行 结束于 HH:mm
- ProjectSupervisorView:按回合把用户消息的 updatedAt 传给块,用于 发送 → 结束 时间显示
- 用例:耗时格式化边界(0 / <1s / 整秒 / ≥60s / 时间倒序)、总用时、每行耗时、无时间戳不渲染耗时
- 技术方案文档补耗时 / 时间 / data-* 契约
2026-09-15 17:37:12 +08:00
suzmii 35a46e9a44 工具调用改成「一回合一个折叠块」:结构与锚点
- 新增 ToolCallGroup.tsx:块头一行汇总(按 kind 固定顺序计数拼接),展开态每行一条工具,行可二级展开看命令 / 文件变更 / 输出
- 新增 toolCallGroupPresentation.ts:汇总与行文案纯函数(组件文件不导出非组件值)
- 删除 ToolCallCard.tsx:一回合多卡片的旧形态不再使用
- ProjectSupervisorView:工具调用块插到该回合 assistant 消息之前;实时回合还没有 assistant 消息时先落在消息流末尾
- 汇总 / 行文案按契约固定:已执行 N 个命令、… / 已运行、已编辑、已调用、已搜索、已整理上下文、已执行
- appSurface 用例改为断言折叠块:默认折叠、行数 = 工具数、回读历史插在 assistant 消息之前
- 新增 tool-call-group.suite.ts:汇总文案、行文案、默认折叠、行二级展开、空集合不渲染
- 技术方案文档同步第 4 节:一回合一个折叠块的 DOM 与文案契约
2026-09-15 17:29:36 +08:00
suzmii a60c04b53d 修复对话 markdown 无序列表渲染
- ChatMarkdownMessage:无序列表改用真正的列表标记(list-disc + pl-4),不再手写 '- ' 文本前缀
- ChatMarkdownMessage:删除列表项里手写的短横线,换行后的第二行恢复悬挂缩进,同时恢复列表语义
- ChatMarkdownMessage:移除随之无用的 ListKindContext
- ChatMarkdownMessage.test.tsx:用例改为断言 list-disc/pl-4 与「列表项文本不含手写短横线」
- 实测:真实面板注入同 class 标记后 list-style-type=disc、li 为 list-item、换行行与首行文字左边缘对齐
2026-09-15 15:29:53 +08:00
suzmii 99fd319607 修复输入框 hint 与光标不对齐
- styles.css:字号从输入区/编辑器各自声明下沉到共同父级 .resource-reference-input(13px/1.6),hint 不再继承面板的 16px 而比实际输入文字大一圈
- styles.css:编辑器内 Lexical 段落清零外边距,去掉全局 p 规则的 8px 顶边距,光标不再比 hint 低 8px
- 实测:hint 首字符与打字后首字符位置完全重合(948/640.5)
2026-09-15 15:07:11 +08:00
suzmii 58f6eceb69 修复输入盒四边留白与文字/控件对齐
- styles.css:direct-codex 面板自身 padding 归 0,四边留白由子节点声明为 16px(实测 16/16/16/16)
- styles.css:盒内内边距 12px(文字左内缩 = 上内缩 = 右内缩 = 13px,实测)
- styles.css:输入区改单块布局,「AI 润色」按钮浮到右下角,不再占掉文字右边缘 36px(这是文字左右内缩不一致的根因)
- styles.css:左侧控件组左移 12px,使 + 图标墨迹与文字左边缘同线(实测同为 x=950)
- styles.css:去掉画在输入区上的内层焦点环,焦点环改画在整只输入盒外侧,不再出现第二层框
- styles.css:删除 direct-codex 输入盒旧几何规则(1fr 82px 网格 / z-index 2 / padding-top 8px)与窄屏 8px 12px 12px 的不对称外边距
- 测试:宽屏断言四边留白恒等 + 文字三边内缩相等;窄屏断言四边 16px;高度算式同步
2026-09-15 12:14:34 +08:00
suzmii abbf1465e2 GameAgent 工具调用卡片:回读合并、折叠卡片与无障碍
- app/types.ts:新增 GameCreatorDirectToolCall / Detail / Change 类型,并给
  GameCreatorDirectTurnUpdateEvent 增加可选 toolCalls 字段(老事件 undefined 走原路径)
- App.tsx:订阅 game-creator-direct-turn-update 时按 id 归并工具调用增量(completed 覆盖
  running、startedAt 取最早),打开项目时整表替换为 read_direct_tool_calls 的回读结果
- App.tsx:只把「对话里已有该回合」或「当前正在跑的回合」的工具调用交给面板,避免旧卡片漂尾
- ProjectSupervisorView.tsx:新增 toolCalls / activeTurnId 属性,按回合把卡片插在
  **同一回合最后一条 assistant 消息之后**,同回合内按 startedAt 升序;当前回合在 assistant
  消息落盘前锚到最后一条 assistant 消息
- ToolCallCard.tsx(新增):Codex 风格可折叠卡片,`<button aria-expanded aria-controls>` +
  `hidden` 控制展开,键盘可达,aria-label 为「执行命令:npm run build」
- ToolCallCard.tsx:折叠态显示图标/标题/摘要/进行中状态点/状态文案;展开态显示命令、
  文件路径 + 变更类型、输出
- styles.css:新增工具调用卡片样式区块,running 状态点与 failed 配色都用现有 --platform-* 变量
- tests/appSurface/project-development.suite.ts:新增两条用例 —— 实时回合卡片从 running 走到
  completed 并在回合结束后仍挂在同一回合消息之后;打开项目时调用 read_direct_tool_calls
2026-09-14 15:00:46 +08:00
suzmii 6ba86f5061 GameAgent 工具调用:采集、独立文件持久化、事件字段与回读命令
- 新增 agent/direct_tool_calls.rs:把 Codex item 投影成结构化 DirectToolCall(command / file_change /
  mcp_tool / web_search / context_compaction / other),标题按 kind 固定(`编辑 N 个文件` 按去重路径数)
- 新增 agent/direct_tool_calls.rs:独立文件 `.agent/conversations/tool-calls.jsonl` 的幂等 upsert
  (同 id 只落一行、completed 覆盖 started、startedAt 取最早非零值)与 200 条上限裁剪
- 新增 agent/direct_tool_calls.rs:command/output 截断 4000 字符、summary 截断 120 字符,
  先抹绝对路径再抹密钥(复用 redact_absolute_path_tokens / redact_secret_tokens)
- 新增 agent/direct_tool_calls.rs:回读按时间正序、单行损坏跳过、文件缺失返回空数组
- 新增 agent/direct_tool_calls.rs 单测 8 条:幂等 upsert、非 0 退出码判 failed、截断、脱敏、
  坏行跳过、上限裁剪与排序、file_change 标题与摘要、非工具 item 不产卡片
- agent/codex_app_server.rs:DirectCodexTurnObservation 增加 ToolCall 变体;item/started 与
  item/completed 各采一次,turnId 沿用 AGC 客户端回合 id
- agent/direct_runtime.rs:观察者采集到工具调用时增量下发,回合结束整批落盘(一次锁、一次重写)
- agent/direct_runtime.rs:单项落盘走阻塞线程池,落盘失败不影响回合结果
- agent/runtime_driver/entrypoints.rs:DirectGameCreatorTurnUpdateEmitter::emit 增加可选
  toolCalls 参数
- main.rs:GameCreatorDirectTurnUpdateEvent 增加可选 toolCalls 字段,skip_serializing_if 保证
  老事件序列化结果不变
- commands.rs / main.rs:新增 read_direct_tool_calls(projectPath) 命令并注册到 invoke_handler
2026-09-14 15:00:32 +08:00
suzmii 7adabea656 新增工具调用卡片技术方案(契约冻结)
- docs/technical:【技术方案】GameAgent对话工具调用卡片-2026-09-14.md:工具调用条目形状、独立历史文件 tool-calls.jsonl、事件新增 toolCalls 字段、read_direct_tool_calls 回读命令、卡片 DOM 与无障碍要求、验收判据与不做项
- docs/README.md:把该方案登记进「AI 游戏创作与 Agent Runtime」索引
- 方案明确不改 project.jsonl 既有格式与 Codex 上下文注入路径,避免污染模型上下文
2026-09-14 14:19:57 +08:00
suzmii bc796c1db4 删除对话输入盒内的项目信息标签行
- ProjectSupervisorView:移除输入盒内「项目名 · 本地」信息标签行,删除随之无用的 projectDisplayName 辅助函数
- styles.css:输入盒网格从三行改回两行(文本区 / 控制排),删除信息标签行及其胶囊样式规则
- chatDialogFrameLayout.test.ts:把「表单子树含信息标签行」的断言反转成不再包含,并删除相关 CSS 常量与取值
- project-development.suite.ts:输入盒断言从「含项目名/本地标签」改为「不再渲染该标签行」,网格行数断言同步为两行
2026-09-14 14:17:20 +08:00
suzmii 8410426d12 补充对话面板纵向几何的回归断言
- chatDialogFrameLayout.test.ts:新增用例锁定面板必须跨满对话列全部 grid 行、height 100%、且不得叠加 flex 简写
- chatDialogFrameLayout.test.ts:新增断言锁定 direct-codex 面板把消息列表 min-height 从 96px 解除到 0
- 说明这次断言对应的一次真实渲染事故:新会话只有一条欢迎消息时,消息列表塌成 54px、输入盒被拉伸到 212px
2026-09-14 12:49:37 +08:00
suzmii cd816078a3 修复右侧对话面板纵向几何:消息列表塌陷与输入盒被顶出面板
- styles.css:为 .game-workbench-chat .project-supervisor-surface 补 grid-row: 1 / -1,并就近说明原因
- styles.css:说明该几何必须靠 height: 100% 撑满轨道,不能再叠加 flex 简写
- styles.css:文件末尾新增实测修复区块,解除 direct-codex 消息列表的 340px 最小高度下限
- styles.css:新增实测修复区块,把 direct-codex 的 surface / conversation 固定为纵向链
2026-09-14 12:48:22 +08:00
suzmii 92db1e7065 右侧对话面板改为 Codex 桌面客户端界面语言
- ProjectSupervisorView:direct-codex 面板改成三段式(顶部极简条 / 唯一滚动区消息列表 / 文档流输入盒)
- ProjectSupervisorView:顶部只留状态点 + 状态文案(aria-live=polite)+ 设置齿轮,移除头像、标题、副标题、审批按钮与泥点钱包槽
- ProjectSupervisorView:新增 direct-codex 空态(线稿图标 + 主标题「你想让陶泥儿做什么游戏?」+ 短指令副标题),整体在消息区垂直水平居中
- ProjectSupervisorView:输入盒改成三行结构(`项目名` · `本地` 信息标签 / ResourceReferenceInput 文本区 / 控制排)
- ProjectSupervisorView:控制排左为 `+` 附件钮与 `@` 引用钮(都复用 composerRef.openPicker),右为模型下拉与圆形主色发送钮
- ProjectSupervisorView:新增 walletEntry 可选属性,透传到设置浮层的「泥点」行
- ProjectSupervisorSettingsDialog(新增):设置齿轮打开的独立浮层(role=dialog + aria-modal + Esc 关闭 + 点遮罩关闭),承载运行配置入口、操作权限入口与泥点
- approvalMode(新增):把「严格 / 风险 / 无」审批模式选项与文案抽成可复用模块
- ApprovalModeDialog(新增):审批模式对话框改成可复用组件,index.tsx 改为复用它
- project-development/index.tsx:`!uiEditorRoute` 的 game-workbench-chat 头部精简掉标题/审批按钮/钱包槽,并用 cloneElement 把 walletEntry 透传给 supervisor 元素
- project-development/index.tsx:`planningStartMode` 分支保持原样
- ConversationModelSelect:触发按钮只显示已选模型 displayName,未加载完时显示「模型」占位(菜单内加载提示保留)
- styles.css:消息列表去掉绝对定位与 196px/256px 底边留白,改成唯一滚动区
- styles.css:输入盒去掉绝对定位,改成文档流三行网格,成为唯一有边框的容器(1px 边框、14px 圆角)
- styles.css:助手消息去掉整块底色,用户消息保留右对齐浅底气泡 + 主色描边
- styles.css:新增顶栏、空态、设置浮层与暖色执行过程卡的样式区块,颜色全部取自现有 platform 变量
- styles.css:窄屏(760px/1000px 断点)下输入盒留在文档流并保留四周边距
- chatDialogFrameLayout.test.ts:把「输入区浮在消息列表之上」的旧契约改写成「输入盒在消息列表下方、文档流、列表无浮层留白」的新契约
- project-development.suite.ts:同步更新表单布局、提交按钮尺寸与钱包槽的断言,并新增空态 + 设置浮层用例
2026-09-14 12:32:54 +08:00
418 changed files with 43394 additions and 5397 deletions
@@ -32,7 +32,7 @@ Prefer `scripts/genarrative_external_api.py` for runnable REST calls. It uses on
- Use stable references such as `objectKey`, project resource ID, or asset ID where each operation permits them. Image edit/redraw is stricter: `sourceReferenceId` accepts only a registered project resource ID or asset ID; upload confirmation alone is not enough. Use `/assets/read-url` only for temporary preview/download access.
- Preserve both warning channels after completion. A general `warning` can coexist with `sliceWarning`; do not discard either.
- Do not invent missing derivatives. A source-preserved warning means the main source remains usable but requested post-processing failed. A slice warning means the complete transparent sheet is usable but individual slices are absent.
- Icon spritesheet generation accepts `sliceMode="connected-components"` (default alpha-connectivity detection) or `sliceMode="grid"`. Grid mode requires `gridX` and `gridY` (1-32); use `sliceCount` only to constrain connected-component output.
- Icon spritesheet generation requires an explicit `sliceMode` and has no default. Use `sliceMode="grid"` with the `gridX` and `gridY` the requirement actually names (1-32 each) only for equal grid cells or fixed slots; use `sliceMode="connected-components"` for free-form sheets or an open number of subjects, and constrain the count with `sliceCount` instead of inventing grid dimensions. `connected-components` must not carry `gridX`/`gridY`; an omitted, contradictory, or misapplied declaration returns 400 before billing.
- For successful `style="pixelArt"`, treat completed-result and nested resource/asset dimensions as the final logical-grid PNG dimensions. They may differ from `size`, `imageSize`, the provider image, and `canvasCompletion.placeholder`; do not rescale or reject the artifact to match those inputs.
- Keep generated artifacts in the canvas and asset library together. Character animation accepts `assetFolderId` and `assetLabel`; its completed result directly returns the final `assetKind="character-animation"` resource and asset with formal sequence fields. Do not create a duplicate first-frame record.
@@ -94,7 +94,7 @@ For image edit/redraw, confirming an upload is not sufficient: create a project
The icon-spritesheet primary `referenceId` is intentionally stricter than ordinary image references: it accepts only a current-owner project resource ID or asset ID whose authoritative `assetKind` is `icon-spec`. It does not accept an `objectKey`, URL, Data URL, or Blob URL.
`sliceMode` controls atlas splitting. Use `"connected-components"` (default) to detect independent opaque regions by alpha connectivity, or `"grid"` with positive `gridX` and `gridY` values (maximum 32 each). `sliceCount` optionally constrains the connected-component result.
`sliceMode` is required and has no default, so every request must state it. Use `"connected-components"` to detect independent opaque regions by alpha connectivity, or `"grid"` with positive `gridX` and `gridY` values (maximum 32 each) only when the requirement names equal grid cells or fixed slots; the dimensions must come from that requirement. `connected-components` must not carry `gridX`/`gridY`, and `sliceCount` constrains the connected-component result instead of expressing a grid. Omitting `sliceMode`, or contradicting the declared mode with grid dimensions, returns 400 before pricing, enqueueing, or any provider call.
## Common Values
@@ -79,9 +79,9 @@ Keep the existing autonomous-build task graph. Do not add a parallel task system
1. `art-director` generates `assets/art-spec.png` with image generation, `kind: "spec"`, then registers it as `assetKind: "icon-spec"`. This image is the authoritative visual spec; `generationInputs.artSpec` is supporting structured context.
2. `design-foundation` generates `assets/ui-prototype.png` with `kind: "ui-design"`, using the registered art-spec resource ID in `referenceImageSrcs`.
3. `art-asset-plan` generates transparent `assets/art-spritesheet.png` through icon spritesheet generation, using the same registered art-spec resource ID as `referenceId` plus concrete `iconDescriptions`. For a fixed four-category game contract it may send `sliceMode: "grid"`; for free-form assets use `sliceMode: "connected-components"` (the default).
3. `art-asset-plan` generates transparent `assets/art-spritesheet.png` through icon spritesheet generation, using the same registered art-spec resource ID as `referenceId` plus concrete `iconDescriptions`. `sliceMode` is required and has no default: send `sliceMode: "grid"` with `gridX`/`gridY` only when the requirement itself fixes the slots or names the column/row count, and otherwise send `sliceMode: "connected-components"` (with `sliceCount` when a subject count must be constrained); never invent a grid to express "kinds of assets", and never send `gridX`/`gridY` with `connected-components`.
For a playable Canvas game, do not stop at generation. Make `code-prototype` depend on `art-asset-plan` and consume the persisted `iconImageSrcs` slices for core players, blocks or targets, scene obstacles, and feedback. When using the fixed four-category contract, require response `sliceMode: "grid"` and exactly four slices before registering the local runtime sheet; both fewer and extra components fail closed. Treat `art-spec.png` as reference-only. A full-sheet `<img>`, CSS background, path-only mention, guessed equal-grid crop, or code-drawn replacement for core entities is not runtime asset use. If slicing produces `sliceWarning`, keep the complete transparent sheet as a valid editor artifact, but fail the playable game asset gate until real slice files or verified atlas coordinates exist; never invent coordinates or replace the icon-spritesheet route with ordinary image generation.
For a playable Canvas game, do not stop at generation. Make `code-prototype` depend on `art-asset-plan` and consume the persisted `iconImageSrcs` slices for core players, blocks or targets, scene obstacles, and feedback. When the requirement fixes grid slots, require the response `sliceMode` to match the declared `grid` request and exactly `gridX × gridY` slices before registering the local runtime sheet; a connected-components request is instead judged by its own `sliceCount` or by the requirement, and both fewer and extra components fail closed. Treat `art-spec.png` as reference-only. A full-sheet `<img>`, CSS background, path-only mention, guessed equal-grid crop, or code-drawn replacement for core entities is not runtime asset use. If slicing produces `sliceWarning`, keep the complete transparent sheet as a valid editor artifact, but fail the playable game asset gate until real slice files or verified atlas coordinates exist; never invent coordinates or replace the icon-spritesheet route with ordinary image generation.
Never use `assets/ui-prototype.png` as the spritesheet visual-spec reference. UI extraction is outside this canonical DAG.
@@ -617,6 +617,7 @@ class GenarrativeExternalClient:
self,
reference_id: str,
icon_descriptions: list[str],
slice_mode: str,
**fields: Any,
) -> Any:
reference_id = normalize_optional_text(reference_id)
@@ -625,6 +626,20 @@ class GenarrativeExternalClient:
descriptions = [item.strip() for item in icon_descriptions if item.strip()]
if not descriptions:
raise GenarrativeApiError("icon_descriptions must contain at least one non-empty item")
slice_mode = normalize_optional_text(slice_mode)
if slice_mode not in ("connected-components", "grid"):
raise GenarrativeApiError(
"slice_mode must be declared explicitly as 'connected-components' or 'grid'; the API has no default"
)
grid_x = fields.get("gridX")
grid_y = fields.get("gridY")
if slice_mode == "grid":
if grid_x is None or grid_y is None:
raise GenarrativeApiError("slice_mode='grid' requires both gridX and gridY")
elif grid_x is not None or grid_y is not None:
raise GenarrativeApiError(
"slice_mode='connected-components' must not carry gridX/gridY"
)
label = fields.get("assetLabel", "图标图集")
self._apply_canvas_session_fields(fields, label, 1024, 1024)
fields.setdefault("screenColor", "auto")
@@ -635,6 +650,7 @@ class GenarrativeExternalClient:
**fields,
"referenceId": reference_id,
"iconDescriptions": descriptions,
"sliceMode": slice_mode,
},
idempotency_key=idempotency_key,
)
@@ -879,9 +895,9 @@ def _self_test() -> None:
client.generate_icon_spritesheet(
"editor-resource-spec",
["蛇头向上", "蛇身直线", "转角", "尾部", "四类食物"],
"connected-components",
canvasSession=session,
assetLabel="贪吃蛇透明图集",
sliceMode="connected-components",
referenceId="must-not-override-explicit-reference",
iconDescriptions=["不得覆盖显式图标描述"],
)
+9
View File
@@ -158,6 +158,15 @@ ALIYUN_OSS_POST_EXPIRE_SECONDS="600"
ALIYUN_OSS_POST_MAX_SIZE_BYTES="20971520"
ALIYUN_OSS_SUCCESS_ACTION_STATUS="200"
# AGC 项目定时快照上传目标。对象只落在服务端私有前缀
# `agc/project-snapshots/v1/{user}/{project}/` 下,客户端直传票据不覆盖该前缀。
# bucket 与凭据可以与资源 bucket 分离;凭据未设置时回退使用 ALIYUN_OSS_ACCESS_KEY_*
# 但 bucket / endpoint 默认指向 AGC 发行 bucket,需要该凭据具备目标 bucket 的 PutObject 权限。
GENARRATIVE_AGC_PROJECT_SNAPSHOT_OSS_BUCKET="agc-dev"
GENARRATIVE_AGC_PROJECT_SNAPSHOT_OSS_ENDPOINT="oss-rg-china-mainland.aliyuncs.com"
GENARRATIVE_AGC_PROJECT_SNAPSHOT_OSS_ACCESS_KEY_ID=""
GENARRATIVE_AGC_PROJECT_SNAPSHOT_OSS_ACCESS_KEY_SECRET=""
# BgFilter 受限资源 worker。父 api-server / external-generation-worker 与唯一的
# `GENARRATIVE_PROCESS_ROLE=bgfilter-worker` 进程必须使用同一个内部 Token。
# `npm run dev` 与 `npm run dev:api-server` 都会自动带起并验活唯一 worker,不要再开第二个终端重复启动。
+4
View File
@@ -7,6 +7,10 @@ on:
pull_request:
workflow_dispatch:
concurrency:
group: project-ci-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
permissions:
contents: read
+3
View File
@@ -1 +1,4 @@
# Git 在链接工作树里执行 Hook 时会注入 GIT_DIR 等仓库定位变量,优先级高于 cwd;
# 子进程(npm、lint-staged、测试夹具)会继承它们并写到真实仓库,故在入口统一清除。
unset GIT_DIR GIT_WORK_TREE GIT_INDEX_FILE GIT_COMMON_DIR GIT_PREFIX GIT_CONFIG_PARAMETERS GIT_CEILING_DIRECTORIES
npm run format:staged
+3
View File
@@ -1 +1,4 @@
# Git 在链接工作树里执行 Hook 时会注入 GIT_DIR 等仓库定位变量,优先级高于 cwd;
# 钩子链(npm → check:repository-ci → 测试夹具)会继承它们并写到真实仓库,故在入口统一清除。
unset GIT_DIR GIT_WORK_TREE GIT_INDEX_FILE GIT_COMMON_DIR GIT_PREFIX GIT_CONFIG_PARAMETERS GIT_CEILING_DIRECTORIES
npm run check:pre-push-master -- "$@"
+16
View File
@@ -172,6 +172,20 @@ _Avoid_: 多步骤向导、完整规则编辑器、拖拽编辑器
Bark Battle 平台作品闭环按契约与领域规则、后端存储/API、最小前端纵切、投影体验、收口验证的顺序推进。
_Avoid_: mock 先行堆积、前后端各自发散、先做排行榜 UI
## 项目开发对话(DirectProject
**项目对话历史**:
AGC 本地项目内 Codex 原始对话条目的持久集合,是聊天展示、工具卡片和线程恢复注入的唯一持久事实源。
_Avoid_: 会话缓存、展示态历史、按 UI 需要另存的对话副本
**运行态事件**:
Thread Manager 向订阅者推送的当前回合原始事件流,只服务运行期间与短期断线恢复,不替代项目对话历史。
_Avoid_: 进度通知、快照轮询、第二套历史
**聊天投影**:
把项目对话历史条目与运行态事件转换成消息气泡和工具卡片的读取期转换;不持久化,也不构成事实源。
_Avoid_: 投影缓存文件、已脱敏卡片库、第二套 reducer
## Relationships
- 一个 **汪汪声浪大作战** 单局包含多个 **有效声浪触发**
@@ -206,3 +220,5 @@ _Avoid_: mock 先行堆积、前后端各自发散、先做排行榜 UI
- “入口闭环”曾可能只指内部 demo 或单个详情 CTA;已解析为 **正式作品入口闭环**,不新增独立专区或活动页。
- “创作编辑”曾可能指多步骤向导或完整编辑器;已解析为 **轻配置编辑流程**,使用单页表单 + 预览卡片完成保存草稿、发布和发布后跳转作品详情。
- “实施顺序”曾可能按 UI 或功能并行发散;已解析为契约/领域规则先行,再做后端存储/API,随后打通最小前端纵切,最后补投影体验与收口验证。
- “回合进度事件”曾同时指 Direct turn update 与 Thread Manager 运行态事件;已解析为 AGC 项目开发对话只保留 **运行态事件**
- “哪些消息可显示”曾可能由后端历史分页判断;已解析为可见性判断属于 **聊天投影**,后端只按原始条目分页,前端负责跳过不可显示条目并推进分页锚点。
@@ -38,6 +38,7 @@ vi.mock('../api/adminApiClient', () => ({
interface MockIntersectionObserverController {
enter: (target: Element) => void;
enterAll: (targets: Element[]) => void;
isObserved: (target: Element) => boolean;
}
@@ -106,6 +107,25 @@ function installIntersectionObserverMock(): MockIntersectionObserverController {
);
});
},
enterAll(targets) {
act(() => {
for (const target of targets) {
const record = observed.get(target);
if (!record) {
throw new Error('目标缩略图尚未进入 IntersectionObserver');
}
record.callback(
[
{
isIntersecting: true,
target,
} as IntersectionObserverEntry,
],
record.observer,
);
}
});
},
isObserved(target) {
return observed.has(target);
},
@@ -753,10 +773,10 @@ test('后台素材查询为大量同时可见的缩略图持续错峰换签', as
const thumbnails = entries.map((entry) =>
thumbnailElementForLabel(entry.label),
);
thumbnails.forEach((thumbnail) => {
for (const thumbnail of thumbnails) {
expect(observer.isObserved(thumbnail)).toBe(true);
observer.enter(thumbnail);
});
}
observer.enterAll(thumbnails);
await act(async () => {
await Promise.resolve();
});
@@ -776,7 +796,7 @@ test('后台素材查询为大量同时可见的缩略图持续错峰换签', as
await vi.advanceTimersByTimeAsync(200);
});
expect(getAdminAssetReadUrl).toHaveBeenCalledTimes(105);
});
}, 10_000);
test('后台素材查询读取更多后为新进入可视区域的素材换签', async () => {
const observer = installIntersectionObserverMock();
@@ -2,6 +2,8 @@
"schemaVersion": "game-creator-config.v2",
"agentMode": "codex_app_server",
"llm": {
"customEnabled": false,
"visibleModels": [],
"apiKey": "",
"baseUrl": "https://dev.genarrative.world/gpt/v1",
"model": "gpt-6-astra",
@@ -13,7 +15,7 @@
"autoCompactTokenLimit": 64000,
"toolOutputTokenLimit": 12000,
"requestTimeoutMs": 180000,
"maxRetries": 2,
"maxRetries": 10,
"retryBackoffMs": 500
},
"agentLlm": {}
+7 -1
View File
@@ -1,7 +1,7 @@
{
"name": "@genarrative/ai-game-creator-shell",
"private": true,
"version": "0.1.29",
"version": "0.1.47",
"type": "module",
"scripts": {
"dev": "node scripts/start-tauri-dev.mjs",
@@ -47,6 +47,7 @@
"@tauri-apps/plugin-dialog": "^2.7.2",
"@tauri-apps/plugin-http": "^2.5.9",
"@tauri-apps/plugin-opener": "~2",
"@tauri-apps/plugin-updater": "2.11.0",
"@vitejs/plugin-react": "^5.0.4",
"focus-trap-react": "^12.0.3",
"lexical": "^0.47.0",
@@ -57,7 +58,10 @@
"react-colorful": "^5.8.0",
"react-dom": "^19.0.0",
"react-markdown": "^10.1.0",
"react-window": "^1.8.11",
"rehype-highlight": "^7.0.2",
"remark-gfm": "^4.0.1",
"three": "^0.184.0",
"vite": "^6.2.0",
"zustand": "^5.0.14"
},
@@ -69,6 +73,8 @@
"@testing-library/user-event": "^14.6.1",
"@types/react": "^19.2.14",
"@types/react-dom": "^19.2.3",
"@types/three": "^0.184.1",
"@types/react-window": "^1.8.8",
"tailwindcss": "^4.1.14",
"typescript": "~5.8.2",
"vitest": "^0.34.6"
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -121,6 +121,10 @@ const allowedUncalledTauriCommands = [
'open_game_creator_launcher_window',
'open_game_creator_workspace_window',
'read_direct_project_conversation',
// 项目定时快照上传只在 Rust 侧触发(周期定时器 / 工作区窗口关闭)与排障调用;
// 按产品口径不做客户端可见界面,因此同 `open_game_creator_*_window` 一样按 native-only 登记。
'read_local_project_snapshot_state',
'sync_local_project_snapshot',
'reset_design_agent_session',
'stop_local_game_preview_if_matches',
'start_game_creator_external_mcp',
@@ -724,6 +724,7 @@ function canvasAssetCall(agentId) {
assetKind: 'art-spritesheet',
assetLabel: '游戏首版核心美术素材',
replaceExisting: false,
sliceMode: 'connected-components',
});
}
@@ -2691,7 +2692,7 @@ function createDeterministicCanvasFixture(apiKey) {
'deterministic spritesheet fixture',
model: 'deterministic-canvas-v1',
provider: 'deterministic-loopback',
sliceLayout: 'grid-2x2',
sliceMode: 'connected-components',
spritesheetResource: {
resourceId,
projectId,
@@ -0,0 +1,20 @@
/**
* `agc` 开发启动下发给 Vite 的客户端特性开关默认值。
*
* 开发态默认关闭客户端更新检查:`npm run agc` / `agc:serve` 启动的客户端不请求 OSS
* 更新清单,也不显示更新入口。需要联调更新流程时显式传
* `VITE_AGC_ENABLE_APP_UPDATE_CHECK=1`;此处不覆盖已经显式配置的取值。
*/
const agcAppUpdateCheckEnvKey = 'VITE_AGC_ENABLE_APP_UPDATE_CHECK';
function withAgcDevFeatureFlags(env = process.env) {
if (String(env[agcAppUpdateCheckEnvKey] ?? '').trim()) {
return env;
}
return {
...env,
[agcAppUpdateCheckEnvKey]: '0',
};
}
export { agcAppUpdateCheckEnvKey, withAgcDevFeatureFlags };
@@ -0,0 +1,27 @@
/**
* 发布上传的 OSS 命令行整理:把 ossutil 参数与凭据整理成可执行或可打印的形式,
* 便于在 dry-run 下核对将要执行的上传,同时保证任何输出都不回显凭据明文。
*/
const redactedCredential = '<redacted>';
export function readReleaseDryRun(env = process.env) {
const value = env.AGC_RELEASE_DRY_RUN?.trim().toLowerCase();
return value === '1' || value === 'true';
}
function quoteArgument(value) {
return /[\s"']/u.test(value) ? JSON.stringify(value) : value;
}
export function formatOssutilCommand({ binary, args, endpoint, credentials }) {
const parts = [binary, ...args, '--endpoint', endpoint];
if (credentials) {
parts.push(
'--access-key-id',
redactedCredential,
'--access-key-secret',
redactedCredential,
);
}
return parts.map(quoteArgument).join(' ');
}
@@ -0,0 +1,44 @@
import assert from 'node:assert/strict';
import { readFileSync } from 'node:fs';
import { test } from 'node:test';
import { formatOssutilCommand, readReleaseDryRun } from './release-oss.mjs';
test('dry run only accepts explicit truthy values', () => {
assert.equal(readReleaseDryRun({}), false);
assert.equal(readReleaseDryRun({ AGC_RELEASE_DRY_RUN: '1' }), true);
assert.equal(readReleaseDryRun({ AGC_RELEASE_DRY_RUN: ' true ' }), true);
assert.equal(readReleaseDryRun({ AGC_RELEASE_DRY_RUN: '0' }), false);
assert.equal(readReleaseDryRun({ AGC_RELEASE_DRY_RUN: '' }), false);
});
test('printed upload command keeps arguments and hides credentials', () => {
const command = formatOssutilCommand({
binary: 'ossutil',
args: [
'cp',
'--force',
'陶泥儿 0.1.48.exe',
'oss://agc-dev/agc/dev-win/x.exe',
],
endpoint: 'oss-rg-china-mainland.aliyuncs.com',
credentials: true,
});
assert.match(command, /^ossutil cp --force /u);
assert.match(command, /"陶泥儿 0\.1\.48\.exe"/u);
assert.match(command, /oss:\/\/agc-dev\/agc\/dev-win\/x\.exe/u);
assert.match(
command,
/--access-key-id <redacted> --access-key-secret <redacted>/u,
);
});
test('uploader gates every ossutil call behind the dry run switch', () => {
const source = readFileSync(
new URL('./release-upload.mjs', import.meta.url),
'utf8',
);
assert.match(source, /const dryRun = readReleaseDryRun\(\);/u);
assert.match(source, /if \(dryRun\) \{/u);
assert.match(source, /dry-run:未写入任何 OSS 对象/u);
});
@@ -1,6 +1,8 @@
import { spawnSync } from 'node:child_process';
import path from 'node:path';
import { formatOssutilCommand, readReleaseDryRun } from './release-oss.mjs';
const bucket = process.env.AGC_OSS_BUCKET?.trim() || 'agc-dev';
const endpoint =
process.env.AGC_OSS_ENDPOINT?.trim() || 'oss-rg-china-mainland.aliyuncs.com';
@@ -8,6 +10,7 @@ if (!/^[a-z0-9][a-z0-9.-]{1,62}$/u.test(bucket) || /[\r\n\0]/u.test(endpoint)) {
throw new Error('OSS bucket 或 endpoint 配置无效');
}
process.env.AGC_UPDATE_OSS_BASE_URL ||= `https://${bucket}.${endpoint}/agc`;
const dryRun = readReleaseDryRun();
const { generateUpdateManifest, prepareReleaseVersion, runTauriBuild } =
await import('./build-release.mjs');
@@ -19,6 +22,18 @@ function runOssutil(args) {
if (Boolean(accessKeyId) !== Boolean(accessKeySecret)) {
throw new Error('OSS AccessKey ID 和 Secret 必须同时提供');
}
if (dryRun) {
// 演练:只打印将要执行的上传,凭据以占位符呈现,不写入 OSS。
console.log(
`[dry-run] ${formatOssutilCommand({
binary,
args,
endpoint,
credentials: Boolean(accessKeyId),
})}`,
);
return;
}
const credentialArgs = accessKeyId
? ['--access-key-id', accessKeyId, '--access-key-secret', accessKeySecret]
: [];
@@ -38,11 +53,40 @@ function runOssutil(args) {
await prepareReleaseVersion();
runTauriBuild([]);
const { artifact, manifestPath, manifest } = generateUpdateManifest();
const artifactKey = `agc/${manifest.version}/${path.basename(artifact)}`;
const { artifact, channel, legacyManifestPath, manifest, manifestPath } =
await generateUpdateManifest();
const artifactKey = `agc/${channel}/${manifest.version}/${path.basename(artifact)}`;
// Jenkins/ossutil 默认会在目标对象已存在时交互询问并按默认值跳过;
// 发布清单是固定的 latest 指针,必须显式覆盖,否则流水线会误报成功但远端仍保留旧版本。
runOssutil(['cp', '--force', artifact, `oss://${bucket}/${artifactKey}`]);
runOssutil(['cp', '--force', manifestPath, `oss://${bucket}/agc/latest.json`]);
runOssutil([
'cp',
'--force',
`${artifact}.sig`,
`oss://${bucket}/${artifactKey}.sig`,
]);
runOssutil([
'cp',
'--force',
manifestPath,
`oss://${bucket}/agc/${channel}/latest.json`,
]);
console.log(`[ai-game-creator-shell] 已上传 oss://${bucket}/${artifactKey}`);
console.log(`[ai-game-creator-shell] 已上传 oss://${bucket}/agc/latest.json`);
console.log(
`[ai-game-creator-shell] 已上传 oss://${bucket}/agc/${channel}/latest.json`,
);
if (legacyManifestPath) {
// 迁移桥:让仍走旧 sha256 清单的已发布客户端升级到新协议,一个版本周期后删除。
runOssutil([
'cp',
'--force',
legacyManifestPath,
`oss://${bucket}/agc/latest.json`,
]);
console.log(
`[ai-game-creator-shell] 已上传迁移指针 oss://${bucket}/agc/latest.json`,
);
}
if (dryRun) {
console.log('[ai-game-creator-shell] dry-run:未写入任何 OSS 对象');
}
@@ -3,6 +3,7 @@ import http from 'node:http';
import net from 'node:net';
import { fileURLToPath } from 'node:url';
import { withAgcDevFeatureFlags } from './dev-feature-flags.mjs';
import { resolveAgcDevEndpoint, withAgcDevEndpointEnv } from './dev-port.mjs';
const appRoot = fileURLToPath(new URL('..', import.meta.url));
@@ -104,7 +105,7 @@ const child = spawn(
],
{
cwd: appRoot,
env: withAgcDevEndpointEnv(endpoint),
env: withAgcDevFeatureFlags(withAgcDevEndpointEnv(endpoint)),
stdio: 'inherit',
// Node 18.20+/20+/24 on Windows rejects spawning .cmd (npm.cmd) without a shell (EINVAL).
shell: true,
@@ -11,6 +11,7 @@ import {
stopWindowsProcessTree,
stopWindowsWorktreeProcesses,
} from '../../../scripts/dev-windows-process.mjs';
import { withAgcDevFeatureFlags } from './dev-feature-flags.mjs';
import {
agcVitePortEnvKey,
readAgcDevEndpoint,
@@ -978,7 +979,10 @@ async function startVite(apiTarget, endpoint = readAgcDevEndpoint()) {
'--port',
String(endpoint.port),
],
{ cwd: appRoot, env: withAgcDevEndpointEnv(endpoint) },
{
cwd: appRoot,
env: withAgcDevFeatureFlags(withAgcDevEndpointEnv(endpoint)),
},
);
}
@@ -0,0 +1,113 @@
import assert from 'node:assert/strict';
import { mkdir, mkdtemp, rm, writeFile } from 'node:fs/promises';
import { tmpdir } from 'node:os';
import { dirname, join } from 'node:path';
import { test } from 'node:test';
import { setTimeout as delay } from 'node:timers/promises';
import { fileURLToPath } from 'node:url';
import { createServer, loadConfigFromFile, normalizePath } from 'vite';
test(
'AGC 排除 Rust 构建目录且保留源码与共享组件监听',
{ timeout: 30_000 },
async () => {
const loaded = await loadConfigFromFile(
{ command: 'serve', mode: 'development' },
fileURLToPath(new URL('../vite.config.ts', import.meta.url)),
);
assert.ok(loaded);
assert.notEqual(loaded.config.server?.watch, null);
assert.notEqual(loaded.config.server?.hmr, false);
assert.ok(
[loaded.config.server?.watch?.ignored]
.flat()
.includes('**/src-tauri/target/**'),
);
const fixture = await mkdtemp(join(tmpdir(), 'agc-vite-watch-'));
const root = join(fixture, 'apps', 'ai-game-creator-shell');
const source = join(root, 'src', 'main.js');
const css = join(root, 'src', 'styles.css');
const shared = join(fixture, 'packages', 'shared', 'src', 'component.js');
const target = join(root, 'src-tauri', 'target');
const artifact = join(target, 'debug', 'incremental', 'cache.bin');
let server;
try {
for (const file of [source, css, shared, artifact]) {
await mkdir(dirname(file), { recursive: true });
await writeFile(
file,
file === css ? 'body { color: red; }' : 'export default 1;',
);
}
// 使用真实 Vite watcher 和实际配置,仅将扫描根替换为小型夹具;
// 不加载业务插件、后端或原生窗口,也不扫描开发机上的大型 target。
server = await createServer({
configFile: false,
envFile: false,
root,
logLevel: 'silent',
server: {
watch: loaded.config.server?.watch,
middlewareMode: true,
hmr: false,
fs: { allow: [fixture] },
},
optimizeDeps: { noDiscovery: true, include: [] },
});
const waitForWatchedFile = async (file) => {
const normalized = normalizePath(file);
for (let attempt = 0; attempt < 100; attempt += 1) {
if (
Object.entries(server.watcher.getWatched()).some(
([directory, names]) =>
names.some(
(name) => normalizePath(join(directory, name)) === normalized,
),
)
)
return;
await delay(50);
}
assert.fail(`源码必须仍被监听:${normalized}`);
};
await waitForWatchedFile(source);
// 真实模块转换应将 root 外的共享源码加入监听。
await server.transformRequest(`/@fs/${normalizePath(shared)}`);
for (const file of [source, css, shared]) {
const normalized = normalizePath(file);
await waitForWatchedFile(file);
const changed = new Promise((resolve, reject) => {
const timer = setTimeout(() => {
server.watcher.off('change', onChange);
reject(new Error(`未收到源码变更:${normalized}`));
}, 5_000);
function onChange(path) {
if (normalizePath(path) !== normalized) return;
clearTimeout(timer);
server.watcher.off('change', onChange);
resolve();
}
server.watcher.on('change', onChange);
});
await writeFile(
file,
file === css ? 'body { color: blue; }' : 'export default 2;',
);
await changed;
}
const targetPath = normalizePath(target);
const targetDirectories = Object.keys(server.watcher.getWatched())
.map(normalizePath)
.filter(
(path) => path === targetPath || path.startsWith(`${targetPath}/`),
);
assert.deepEqual(targetDirectories, [], 'Rust target 不应创建目录监听器');
} finally {
await server?.close();
await rm(fixture, { recursive: true, force: true });
}
},
);
+240 -12
View File
@@ -814,6 +814,16 @@ dependencies = [
"url",
]
[[package]]
name = "core-foundation"
version = "0.9.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f"
dependencies = [
"core-foundation-sys",
"libc",
]
[[package]]
name = "core-foundation"
version = "0.10.1"
@@ -837,7 +847,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "064badf302c3194842cf2c5d61f56cc88e54a759313879cdf03abdd27d0c3b97"
dependencies = [
"bitflags 2.13.0",
"core-foundation",
"core-foundation 0.10.1",
"core-graphics-types",
"foreign-types 0.5.0",
"libc",
@@ -850,7 +860,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3d44a101f213f6c4cdc1853d4b78aef6db6bdfa3468798cc1d9912f4735013eb"
dependencies = [
"bitflags 2.13.0",
"core-foundation",
"core-foundation 0.10.1",
"libc",
]
@@ -1405,6 +1415,16 @@ dependencies = [
"winapi",
]
[[package]]
name = "filetime"
version = "0.2.29"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5c287a33c7f0a620c38e641e7f60827713987b3c0f26e8ddc9462cc69cf75759"
dependencies = [
"cfg-if",
"libc",
]
[[package]]
name = "find-msvc-tools"
version = "0.1.9"
@@ -1725,7 +1745,7 @@ dependencies = [
[[package]]
name = "genarrative-ai-game-creator-shell"
version = "0.1.29"
version = "0.1.47"
dependencies = [
"agent-runtime-core",
"axum",
@@ -1747,7 +1767,6 @@ dependencies = [
"oxc_parser",
"oxc_semantic",
"oxc_span",
"percent-encoding",
"platform-agent",
"platform-llm",
"portable-pty",
@@ -1766,6 +1785,7 @@ dependencies = [
"tauri-plugin-dialog",
"tauri-plugin-http",
"tauri-plugin-opener",
"tauri-plugin-updater",
"tempfile",
"tokio",
"toml 0.8.2",
@@ -1776,7 +1796,7 @@ dependencies = [
"url",
"uuid",
"windows-sys 0.61.2",
"zip",
"zip 2.4.2",
]
[[package]]
@@ -2220,9 +2240,11 @@ dependencies = [
"percent-encoding",
"pin-project-lite",
"socket2",
"system-configuration",
"tokio",
"tower-service",
"tracing",
"windows-registry",
]
[[package]]
@@ -2506,6 +2528,36 @@ dependencies = [
"windows-sys 0.45.0",
]
[[package]]
name = "jni"
version = "0.22.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5efd9a482cf3a427f00d6b35f14332adc7902ce91efb778580e180ff90fa3498"
dependencies = [
"cfg-if",
"combine",
"jni-macros",
"jni-sys 0.4.1",
"log",
"simd_cesu8",
"thiserror 2.0.18",
"walkdir",
"windows-link 0.2.1",
]
[[package]]
name = "jni-macros"
version = "0.22.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a00109accc170f0bdb141fed3e393c565b6f5e072365c3bd58f5b062591560a3"
dependencies = [
"proc-macro2",
"quote",
"rustc_version",
"simd_cesu8",
"syn 2.0.118",
]
[[package]]
name = "jni-sys"
version = "0.3.1"
@@ -2819,6 +2871,12 @@ dependencies = [
"unicase",
]
[[package]]
name = "minisign-verify"
version = "0.2.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "22f9645cb765ea72b8111f36c522475d2daa0d22c957a9826437e97534bc4e9e"
[[package]]
name = "miniz_oxide"
version = "0.8.9"
@@ -3234,6 +3292,18 @@ dependencies = [
"objc2-core-foundation",
]
[[package]]
name = "objc2-osa-kit"
version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f112d1746737b0da274ef79a23aac283376f335f4095a083a267a082f21db0c0"
dependencies = [
"bitflags 2.13.0",
"objc2",
"objc2-app-kit",
"objc2-foundation",
]
[[package]]
name = "objc2-quartz-core"
version = "0.3.2"
@@ -3378,6 +3448,20 @@ dependencies = [
"windows-sys 0.61.2",
]
[[package]]
name = "osakit"
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "732c71caeaa72c065bb69d7ea08717bd3f4863a4f451402fc9513e29dbd5261b"
dependencies = [
"objc2",
"objc2-foundation",
"objc2-osa-kit",
"serde",
"serde_json",
"thiserror 2.0.18",
]
[[package]]
name = "outref"
version = "0.5.2"
@@ -4360,15 +4444,20 @@ dependencies = [
"http-body",
"http-body-util",
"hyper",
"hyper-rustls",
"hyper-util",
"js-sys",
"log",
"percent-encoding",
"pin-project-lite",
"rustls",
"rustls-pki-types",
"rustls-platform-verifier",
"serde",
"serde_json",
"sync_wrapper",
"tokio",
"tokio-rustls",
"tokio-util",
"tower",
"tower-http",
@@ -4482,6 +4571,33 @@ dependencies = [
"zeroize",
]
[[package]]
name = "rustls-platform-verifier"
version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "26d1e2536ce4f35f4846aa13bff16bd0ff40157cdb14cc056c7b14ba41233ba0"
dependencies = [
"core-foundation 0.10.1",
"core-foundation-sys",
"jni 0.22.4",
"log",
"once_cell",
"rustls",
"rustls-native-certs",
"rustls-platform-verifier-android",
"rustls-webpki",
"security-framework",
"security-framework-sys",
"webpki-root-certs",
"windows-sys 0.61.2",
]
[[package]]
name = "rustls-platform-verifier-android"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f"
[[package]]
name = "rustls-webpki"
version = "0.103.13"
@@ -4609,7 +4725,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b7f4bc775c73d9a02cde8bf7b2ec4c9d12743edf609006c7facc23998404cd1d"
dependencies = [
"bitflags 2.13.0",
"core-foundation",
"core-foundation 0.10.1",
"core-foundation-sys",
"libc",
"security-framework-sys",
@@ -4952,6 +5068,22 @@ version = "0.3.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "703d5c7ef118737c72f1af64ad2f6f8c5e1921f818cdcb97b8fe6fc69bf66214"
[[package]]
name = "simd_cesu8"
version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "11031e251abf8611c80f460e19dbdeb54a66db918e49c65a7065b46ac7aec520"
dependencies = [
"rustc_version",
"simdutf8",
]
[[package]]
name = "simdutf8"
version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e"
[[package]]
name = "similar"
version = "2.7.0"
@@ -5175,6 +5307,27 @@ dependencies = [
"syn 2.0.118",
]
[[package]]
name = "system-configuration"
version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a13f3d0daba03132c0aa9767f98351b3488edc2c100cda2d2ec2b04f3d8d3c8b"
dependencies = [
"bitflags 2.13.0",
"core-foundation 0.9.4",
"system-configuration-sys",
]
[[package]]
name = "system-configuration-sys"
version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4"
dependencies = [
"core-foundation-sys",
"libc",
]
[[package]]
name = "system-deps"
version = "6.2.2"
@@ -5196,7 +5349,7 @@ checksum = "d1c93047acf68669466a34690ac58cca7010bd1b201e1ec86f1fd0a75d3dd4a9"
dependencies = [
"bitflags 2.13.0",
"block2",
"core-foundation",
"core-foundation 0.10.1",
"core-graphics",
"crossbeam-channel",
"dbus",
@@ -5206,7 +5359,7 @@ dependencies = [
"gdkwayland-sys",
"gdkx11-sys",
"gtk",
"jni",
"jni 0.21.1",
"libc",
"log",
"ndk",
@@ -5239,6 +5392,17 @@ dependencies = [
"syn 2.0.118",
]
[[package]]
name = "tar"
version = "0.4.46"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3f6221d9a6003c78398e3b239969f352578258df48c8eb051caadae0015bc840"
dependencies = [
"filetime",
"libc",
"xattr",
]
[[package]]
name = "target-lexicon"
version = "0.12.16"
@@ -5262,7 +5426,7 @@ dependencies = [
"gtk",
"heck 0.5.0",
"http",
"jni",
"jni 0.21.1",
"libc",
"log",
"mime",
@@ -5477,6 +5641,39 @@ dependencies = [
"zbus",
]
[[package]]
name = "tauri-plugin-updater"
version = "2.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b28d8cabdeb0564f03ae261963de4bc3d98321cd3d213e76a81b7d344e5df606"
dependencies = [
"base64 0.22.1",
"dirs",
"flate2",
"futures-util",
"http",
"infer",
"log",
"minisign-verify",
"osakit",
"percent-encoding",
"reqwest 0.13.4",
"rustls",
"semver",
"serde",
"serde_json",
"tar",
"tauri",
"tauri-plugin",
"tempfile",
"thiserror 2.0.18",
"time",
"tokio",
"url",
"windows-sys 0.60.2",
"zip 4.6.1",
]
[[package]]
name = "tauri-runtime"
version = "2.11.3"
@@ -5487,7 +5684,7 @@ dependencies = [
"dpi",
"gtk",
"http",
"jni",
"jni 0.21.1",
"objc2",
"objc2-ui-kit",
"objc2-web-kit",
@@ -5510,7 +5707,7 @@ checksum = "fe41e015bf8fc4d6477ff4926a0ef769dc64ff34c7b0038b6f7cacae892acb5c"
dependencies = [
"gtk",
"http",
"jni",
"jni 0.21.1",
"log",
"objc2",
"objc2-app-kit",
@@ -6586,6 +6783,15 @@ dependencies = [
"system-deps",
]
[[package]]
name = "webpki-root-certs"
version = "1.0.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b96554aa2acc8ccdb7e1c9a58a7a68dd5d13bccc69cd124cb09406db612a1c9b"
dependencies = [
"rustls-pki-types",
]
[[package]]
name = "webpki-roots"
version = "1.0.9"
@@ -7192,7 +7398,7 @@ dependencies = [
"gtk",
"http",
"javascriptcore-rs",
"jni",
"jni 0.21.1",
"libc",
"ndk",
"objc2",
@@ -7256,6 +7462,16 @@ version = "0.13.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ea6fc2961e4ef194dcbfe56bb845534d0dc8098940c7e5c012a258bfec6701bd"
[[package]]
name = "xattr"
version = "1.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "32e45ad4206f6d2479085147f02bc2ef834ac85886624a23575ae137c8aa8156"
dependencies = [
"libc",
"rustix",
]
[[package]]
name = "yoke"
version = "0.8.3"
@@ -7437,6 +7653,18 @@ dependencies = [
"zopfli",
]
[[package]]
name = "zip"
version = "4.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "caa8cd6af31c3b31c6631b8f483848b91589021b28fffe50adada48d4f4d2ed1"
dependencies = [
"arbitrary",
"crc32fast",
"indexmap 2.14.0",
"memchr",
]
[[package]]
name = "zmij"
version = "1.0.21"
@@ -1,11 +1,14 @@
[package]
name = "genarrative-ai-game-creator-shell"
version = "0.1.29"
version = "0.1.47"
edition = "2021"
publish = false
[features]
default = []
# 模板库假数据注入(仅本地页面压测/演示用):只有显式开启该 feature 才会编译并在读取清单后
# 把条目循环补齐成假数据;计数由 AGC_TEMPLATE_LIBRARY_SYNTHETIC_COUNT 控制(默认 1000)。
template-library-fixtures = []
cocos-editor = ["cocos-editor-bridge/process-discovery"]
cocos-editor-execute = ["cocos-editor", "cocos-editor-bridge/windows-bootstrap"]
cocos-editor-injection = ["cocos-editor-execute", "cocos-editor-bridge/windows-injection"]
@@ -30,7 +33,11 @@ chromiumoxide = "0.9.1"
futures = "0.3"
getrandom = "0.3"
http = "1"
image = { version = "0.25", default-features = false, features = ["jpeg", "png", "webp"] }
# `tga` / `tiff` / `hdr` 只服务资源画布的只读预览:引擎图像容器(Cocos 的
# .tga/.tif/.hdr 等)在浏览器里没有解码器,必须先在原生侧转码成 PNG 再送给前端。
# 刻意不开 `exr`:它要求 `exr ^1.74.0`,当前依赖源只能到 1.73,打不开就先让
# `.exr` 走「类型卡」而不是留一半解不出来的预览分支。
image = { version = "0.25", default-features = false, features = ["jpeg", "png", "webp", "tga", "tiff", "hdr"] }
jsonschema = { version = "0.49.3", default-features = false }
oxc_allocator = "0.143.0"
oxc_ast = "0.143.0"
@@ -47,7 +54,6 @@ similar = "2.7"
platform-llm = { path = "../../../server-rs/crates/platform-llm" }
platform-agent = { path = "../../../server-rs/crates/platform-agent" }
portable-pty = "0.9"
percent-encoding = "2"
reqwest = { version = "0.12", default-features = false, features = ["json", "multipart", "native-tls", "stream"] }
regex = "1"
shared-contracts = { path = "../../../server-rs/crates/shared-contracts", default-features = false }
@@ -55,6 +61,7 @@ tauri = { version = "2.11.2", features = [] }
tauri-plugin-dialog = "2.7.1"
tauri-plugin-http = { version = "2.5.9", default-features = false, features = ["charset", "cookies", "http2", "rustls-tls"] }
tauri-plugin-opener = "2"
tauri-plugin-updater = "2.11.0"
tempfile = "3"
toml = "0.8"
ttf-parser = "0.25.1"

Some files were not shown because too many files have changed in this diff Show More