Commit Graph

1092 Commits

Author SHA1 Message Date
k88936 da3033db21 修复聊天代码节点属性泄漏
从 react-markdown code 组件属性中剔除 node 元数据。

新增回归测试,确保渲染后的代码节点不输出 node 属性。
2026-09-04 12:54:03 +08:00
k88936 08ea5962ac 完善聊天 Markdown 测试兼容
调整消息断言以适配 Markdown 段落和列表结构
补充预览快捷键消息气泡查找工具
完善流式 Markdown 样式并同步组件测试
2026-09-04 12:27:22 +08:00
k88936 31c37534b4 完善聊天 Markdown 安全显示
为 Direct Codex 流式正文恢复可访问标签

将 HTML 标签转义为可见纯文本

保留 Markdown 内容安全渲染边界
2026-09-04 12:05:54 +08:00
k88936 c0d851c369 修复聊天 Markdown 纯文本链接兼容性
让链接和图片渲染为直接文本节点

避免既有消息文本查询被 Markdown 节点拆分

补充后续安全外链 TODO
2026-09-04 11:57:59 +08:00
k88936 c370f9b853 补充聊天 Markdown 渲染测试
覆盖 GFM、代码块和表格展示

覆盖用户纯文本与流式中间态

覆盖 HTML、链接和图片安全边界
2026-09-04 11:52:12 +08:00
k88936 dcdd13bc1c 接入项目聊天 Markdown 渲染
统一三个项目聊天视图的 assistant 消息展示

让 Direct Codex 流式回复复用 Markdown 组件

移除纯聊天视图的无条件滚动到底部行为
2026-09-04 11:50:05 +08:00
k88936 141eff203d 新增聊天 Markdown 消息组件
为 assistant 消息提供 GFM 与流式 Markdown 渲染

限制 HTML、链接和图片为纯文本展示

使用 Tailwind 内联样式并提供单条消息降级
2026-09-04 11:46:47 +08:00
k88936 f5f94111ca Feat/图片绑定选择器改用带预览的模态框 (#269)
Project CI / Native shell tests (push) Successful in 20m12s
Project CI / Repository checks (push) Successful in 2m42s
Project CI / Frontend tests (push) Successful in 3m39s
Project CI / Backend tests (push) Successful in 7m18s
Project CI / Backend tests (pull_request) Failing after 9s
Project CI / Repository checks (pull_request) Failing after 9s
Project CI / Native shell tests (pull_request) Failing after 32m52s
Project CI / Frontend tests (pull_request) Failing after 44m27s
before:
![image.png](/attachments/5ae7df1f-cf57-4712-8038-f65ae83e2ffa)

after:
![shotmd-1788417438.jpg](/attachments/676e653d-2561-4eca-b28f-9725d3b8af02)

close #268

---------

Co-authored-by: 段舒康 <kdletters@qq.com>
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/269
Co-authored-by: 王德宇 <kvtodev@outlook.com>
Co-committed-by: 王德宇 <kvtodev@outlook.com>
2026-09-03 20:02:48 +08:00
k88936 4cd53688e9 Feat/优化UI编辑器inspector offset编辑部分UI (#265)
Project CI / Repository checks (push) Successful in 2m21s
Project CI / Frontend tests (push) Successful in 3m37s
Project CI / Backend tests (push) Successful in 6m21s
Project CI / Native shell tests (push) Successful in 19m48s
before:
![image.png](/attachments/e0344964-55c6-4ba1-9191-a79d81f32b2e)
after:
![shotmd-1788414839.jpg](/attachments/14c8a723-b2df-48d5-9773-7f576bcef873)
close #267

---------

Co-authored-by: 段舒康 <kdletters@qq.com>
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/265
Co-authored-by: 王德宇 <kvtodev@outlook.com>
Co-committed-by: 王德宇 <kvtodev@outlook.com>
2026-09-03 19:36:18 +08:00
kdletters b7641f94b7 Merge branch 'master' into feat/ui-editor-edit-history
Project CI / Repository checks (pull_request) Successful in 2m40s
Project CI / Frontend tests (pull_request) Successful in 3m6s
Project CI / Backend tests (pull_request) Successful in 6m40s
Project CI / Native shell tests (pull_request) Successful in 20m27s
2026-09-03 19:30:43 +08:00
k88936 520b9344ef Fix/AGC上下文丢失问题 (#247)
Project CI / Frontend tests (push) Successful in 3m27s
Project CI / Backend tests (push) Successful in 7m20s
Project CI / Repository checks (push) Successful in 3m1s
Project CI / Native shell tests (push) Has been cancelled
权衡之后选择附加历史消息构造一个巨大的prompt
before:
```
1. user:  aabb
2. assistant: bbaa 这里codex崩溃了或者重启上下文丢失
```
after:
重启之后发送新消息abab
 codex看到:
```
user:  aabb
assistant: bbaa
这里崩溃了!
user: abab
```

移除了原来的"会话最后只有用户消息就自动重新发送用户消息"功能, 因为存在冲突: 现在的实现是每次用户手动发送新消息才做以上的步骤

before and after:
![shotmd-1788345830.jpg](/attachments/28549e4d-9913-459a-bae2-a195b8ee9e04)

Close #249

---------

Co-authored-by: 段舒康 <kdletters@qq.com>
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/247
Co-authored-by: 王德宇 <kvtodev@outlook.com>
Co-committed-by: 王德宇 <kvtodev@outlook.com>
2026-09-03 19:30:21 +08:00
kdletters 3e034d681d 修复 master CI 的 Codex CLI 失败状态竞态 (#273)
Project CI / Frontend tests (push) Successful in 3m0s
Project CI / Backend tests (push) Successful in 6m29s
Project CI / Repository checks (push) Successful in 2m39s
Project CI / Native shell tests (push) Successful in 20m46s
修复 Codex CLI 子进程提前退出时 stdin BrokenPipe 导致未采集真实退出码的问题。\n\n- BrokenPipe 时继续等待并采集脱敏 stderr\n- 非零退出优先返回真实退出码\n- 保留其他 stdin 错误的快速失败行为\n\n已验证:Codex CLI 失败回归测试、cargo fmt、编码检查、git diff --check。

Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/273
Co-authored-by: kdletters <kdletters@qq.com>
Co-committed-by: kdletters <kdletters@qq.com>
2026-09-03 17:34:28 +08:00
k88936 51b7d51d01 Merge branch 'master' into feat/ui-editor-edit-history
Project CI / Backend tests (pull_request) Successful in 7m2s
Project CI / Repository checks (pull_request) Successful in 3m8s
Project CI / Frontend tests (pull_request) Successful in 3m9s
Project CI / Native shell tests (pull_request) Successful in 21m38s
2026-09-03 16:08:23 +08:00
suzmii d5e05d79fe 优化项目名称显示与命名链路 (#248)
Project CI / Repository checks (push) Successful in 2m49s
Project CI / Frontend tests (push) Successful in 2m45s
Project CI / Backend tests (push) Successful in 7m4s
Project CI / Native shell tests (push) Failing after 15m31s
## 优化项目名称显示与命名链路

关联:#245

按 Issue 中的需求文档实现:

- 新增项目名称修改入口,保存到本地项目 \.agent/manifest.json\
- 项目页、当前项目上下文、窗口标题在重命名后同步刷新
- 首页自动创建工作区时,根据用户输入用 LLM 提炼项目名
- LLM 命名失败或返回非法内容时,回退现有默认名,不阻断创作流程

---------

Co-authored-by: 段舒康 <kdletters@qq.com>
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/248
Co-authored-by: suzmii <suzmii@qq.com>
Co-committed-by: suzmii <suzmii@qq.com>
2026-09-03 15:50:55 +08:00
k88936 0c0cad7fa4 Merge branch 'master' into feat/ui-editor-edit-history
Project CI / Repository checks (pull_request) Failing after 1m57s
Project CI / Frontend tests (pull_request) Successful in 4m9s
Project CI / Backend tests (pull_request) Successful in 6m17s
Project CI / Native shell tests (pull_request) Failing after 20m35s
2026-09-03 14:44:36 +08:00
k88936 9fd160efc5 合并批量组件绑定历史记录
Project CI / Repository checks (pull_request) Failing after 11s
Project CI / Backend tests (pull_request) Failing after 10s
Project CI / Frontend tests (pull_request) Successful in 3m7s
Project CI / Native shell tests (pull_request) Successful in 22m4s
批处理中的前置绑定批次跳过历史,最后一批使用非跳过替换统一形成撤销边界

为跳过后记录历史的状态基线补充撤销回归测试
2026-09-03 14:42:38 +08:00
k88936 e4680d6f70 统一节点变换实时预览
Project CI / Frontend tests (pull_request) Successful in 3m17s
Project CI / Backend tests (pull_request) Failing after 11s
Project CI / Repository checks (pull_request) Failing after 12s
Project CI / Native shell tests (pull_request) Successful in 19m52s
预览拖动和缩放时同步解析保持子节点页面矩形的变换

将检查器的子节点保持选项传入预览交互并补充回归测试
2026-09-03 13:38:19 +08:00
k88936 79d3e5e6de 保留颜色草稿卸载时的修改
组件卸载前提交仍未关闭的颜色草稿,避免切换面板或删除组件导致颜色丢失
2026-09-03 13:17:15 +08:00
k88936 08caa1f29f 防止资源比较循环递归溢出
为 sameResource 增加对象对访问跟踪,遇到循环结构时安全终止递归
2026-09-03 13:15:49 +08:00
k88936 6b332e8c12 阻止快捷键重复触发历史操作
忽略 keydown 重复事件,避免长按撤销或重做键耗尽历史记录
2026-09-03 13:15:17 +08:00
k88936 cb86ab8be9 减少编辑器历史快照复制
提交历史时复用已克隆的 nextState,避免每次编辑产生冗余深拷贝
2026-09-03 13:15:01 +08:00
k88936 071998fee9 提取编辑器历史上限常量
为撤销历史容量 100 增加命名常量,便于理解和调节内存权衡
2026-09-03 13:14:43 +08:00
k88936 d60d93a327 简化预览变换查找
单次读取节点预览变换,移除重复 Map 查找和非空断言
2026-09-03 13:14:18 +08:00
k88936 e75450357d 优化预览变换回退分配
复用空的预览变换映射,避免节点递归渲染重复分配
2026-09-03 13:14:00 +08:00
kdletters 025f627297 新增旧玩法表阶段一清空迁移能力 (#251)
Project CI / Frontend tests (push) Successful in 3m11s
Project CI / Backend tests (push) Successful in 6m52s
Project CI / Repository checks (push) Failing after 53s
Project CI / Native shell tests (push) Failing after 17m50s
阶段一新增受 migration operator 保护的旧玩法表清空 procedure,暂不删除表定义。\n\n固定 63 张旧表,支持 dry-run 与事务 apply;生成 bindings;更新契约和决策记录;保留阶段二删表 TODO。\n\n已完成 cargo check、migration 测试、bindings/schema/encoding/diff 检查;本地 dry-run 返回 63 张表且全为 0 行,未执行 apply。

Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/251
2026-09-03 12:57:01 +08:00
k88936 d6f0c2642f 提交颜色选择器结束态草稿
Project CI / Repository checks (pull_request) Failing after 19s
Project CI / Backend tests (pull_request) Failing after 19s
Project CI / Frontend tests (pull_request) Successful in 2m41s
Project CI / Native shell tests (pull_request) Successful in 14m54s
使用 RgbaColorPicker 的 onChangeEnd 处理指针与键盘结束\n关闭颜色弹层时提交仍存在的草稿
2026-09-03 12:17:36 +08:00
k88936 074ee615ae 更新节点拖拽提交测试
断言 pointermove 仅更新预览\n断言 pointerup 才提交一次节点变换
2026-09-03 12:17:25 +08:00
k88936 d44c924f5e 简化 UI 编辑器历史提交边界
移除撤销事务 API 与额外事务状态

让绑定每个 batch 独立提交一条撤销记录

同步更新规格和独立提交测试
2026-09-03 12:14:21 +08:00
k88936 b07c8a5e25 优化编辑器状态相等性检查
用可提前退出的递归比较替代完整状态序列化\n减少每次编辑提交的无谓 JSON 字符串构造
2026-09-03 12:00:36 +08:00
k88936 37c465dbc3 稳定编辑器快捷键监听
按稳定的撤销重做回调绑定全局监听\n尊重已被其他处理器阻止的键盘事件
2026-09-03 11:54:59 +08:00
k88936 95f5904b92 放宽编辑器快捷键焦点限制
仅将文本输入控件视为可编辑目标\n保持工具栏按钮聚焦时仍可使用撤销重做快捷键
2026-09-03 11:54:27 +08:00
k88936 e616e2c899 清理透明度输入的颜色草稿
透明度修改提交前显式清除颜色草稿\n避免无效更新后残留未提交颜色
2026-09-03 11:51:58 +08:00
k88936 f79ccccf44 稳定预览手势清理回调
通过 ref 读取最新预览回调\n避免回调身份变化时重复取消进行中的手势
2026-09-03 11:51:34 +08:00
k88936 093a2ace76 优化预览变换状态更新
仅在预览变换实际变化时创建新 Map\n避免取消不存在手势时触发预览树重渲染
2026-09-03 11:51:07 +08:00
k88936 dc0ea0eda0 接入 UI 编辑器撤销重做入口
在编辑器头部增加撤销与重做按钮及禁用态

增加桌面 Cmd/Ctrl 快捷键并保留文本控件原生行为
2026-09-03 11:07:19 +08:00
k88936 0544e78996 修正清空编辑器历史边界
清空编辑器时重置撤销与重做栈

补充清空操作不会进入历史的测试
2026-09-03 11:06:47 +08:00
k88936 e379459820 降低 UI 编辑器颜色选择器提交频率
颜色拖动期间使用本地草稿预览

指针释放时一次提交最终颜色 State
2026-09-03 11:05:58 +08:00
k88936 15caf1cafc 收敛 UI 编辑器锁与历史事务
新增统一的加锁并包裹历史事务操作

将 AI 建议、识别、合并和批量绑定改用统一入口
2026-09-03 11:05:04 +08:00
k88936 f79724cb17 实现 UI 编辑器 State 撤销重做核心
在统一 State 提交入口增加 100 条快照历史与 no-op 过滤

提供撤销、重做、事务分组及加载重置历史 API

补充 State 历史、事务回滚和加载清理测试
2026-09-03 11:01:21 +08:00
k88936 8a18b1b181 调整 UI 编辑器节点变换为松开时提交
Project CI / Repository checks (pull_request) Failing after 16s
Project CI / Frontend tests (pull_request) Failing after 2m3s
Project CI / Backend tests (pull_request) Failing after 20s
Project CI / Native shell tests (pull_request) Failing after 4m30s
拖动和缩放期间仅更新预览临时变换

指针松开时提交最终变换,取消操作不写入 State

补充 UI 编辑器拖动变换提交边界文档
2026-09-03 10:51:52 +08:00
kdletters 53070e0390 支持 AGC 多行发布说明
Project CI / Repository checks (push) Successful in 2m31s
Project CI / Frontend tests (push) Successful in 3m10s
Project CI / Backend tests (push) Successful in 7m6s
Project CI / Native shell tests (push) Successful in 19m53s
Jenkins 参数改为多行文本输入
客户端更新提示保留换行并支持滚动
增加清单与客户端多行说明测试
同步 AGC 更新发布文档
2026-09-03 10:36:43 +08:00
suzmii 258501918f 修复 AGC 运行预览尺寸抖动 (#252)
Project CI / Repository checks (push) Successful in 2m42s
Project CI / Frontend tests (push) Successful in 3m18s
Project CI / Backend tests (push) Successful in 6m59s
Project CI / Native shell tests (push) Successful in 17m33s
## 问题

AGC 项目运行页的本地预览会根据 iframe 上报内容尺寸调整 iframe viewport;部分使用 `100vh`、百分比或响应式布局的游戏会把宿主调整后的 viewport 再反映为新的内容尺寸,形成反馈环并在两个缩放档位之间持续抖动。

附件工程和录屏已确认可触发该问题,普通浏览器直接打开不受影响。

## 落地方案

- 补充宿主 viewport 变更与真实内容变更的区分,忽略由宿主首次应用 fit 引起的回灌尺寸;
- 保留同一稳定 viewport 下真实动态内容变化后的重新适配;
- 增加反馈环收敛、动态内容变化和陈旧消息回归;
- 同步 AGC 运行预览权威文档和项目记忆。

## 验证计划

- 附件 `gameagent-2873e5ac` 在 AGC WebView 中稳定显示;
- 相关 TypeScript 单测与类型检查;
- preview Rust 定向测试;
- `npm run check:encoding`、`git diff --check`。

Fixes #250

---------

Co-authored-by: 段舒康 <kdletters@qq.com>
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/252
Reviewed-by: 段舒康 <kdletters@qq.com>
Co-authored-by: 董羽秦 <suzmii@qq.com>
Co-committed-by: 董羽秦 <suzmii@qq.com>
2026-09-03 10:35:23 +08:00
lhk229 a465e481e3 修复 AGC 本地 BgFilter worker 启动链路 (#258)
Project CI / Repository checks (push) Successful in 3m14s
Project CI / Frontend tests (push) Successful in 3m18s
Project CI / Backend tests (push) Successful in 6m58s
Project CI / Native shell tests (push) Successful in 18m13s
backend 模式复用 Rust 双进程启动与 watcher

AGC 后端复用门禁增加 BgFilter worker readiness

补充启动编排与 ready 门禁回归测试

同步本地开发运维文档

---------

Co-authored-by: 段舒康 <kdletters@qq.com>
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/258
Co-authored-by: Linghong <ink29535@proton.me>
Co-committed-by: Linghong <ink29535@proton.me>
2026-09-03 10:15:29 +08:00
kdletters 2079e274b6 修复 AGC 发布清单覆盖
Project CI / Repository checks (push) Successful in 3m3s
Project CI / Frontend tests (push) Successful in 3m49s
Project CI / Backend tests (push) Successful in 7m16s
Project CI / Native shell tests (push) Successful in 17m49s
强制覆盖版本安装包与 latest.json
增加 latest 上传覆盖回归检查
同步 AGC 更新发布文档
2026-09-03 10:11:29 +08:00
k88936 422c8931d6 Feat/AGC错误报告 (#240)
Project CI / Repository checks (push) Successful in 2m45s
Project CI / Frontend tests (push) Successful in 3m22s
Project CI / Backend tests (push) Successful in 5m53s
Project CI / Native shell tests (push) Successful in 16m45s
实现:
在rust内存里维护错误事件队列, webview调用tauri command传入, 后台任务agent工具等直接插入
把rust , webview console的日志统一写到AppData文件夹下的(滚动保存的)日志文件.
rust对传入的错误进行筛选,脱敏, 防抖,后通知前端提醒用户.
用户提醒是一个不阻塞的小UI, 展开后可以选择错误上报, 可以附加文字描述
上传时附带最近日志, 错误堆栈等信息

元数据存在数据库, 考虑到字符串信息很难查询, 所以在api server打包成zip存在OSS.
管理页面新增错误报告的查看页面

![shotmd-1788328504.jpg](/attachments/641b43c8-deed-47d8-8c78-36adb9a2548f)
![shotmd-1788328495.jpg](/attachments/33c6ada3-dd4d-44b6-9859-f18f944eb653)
![shotmd-1788328222.jpg](/attachments/59267df9-f624-4e47-bb9b-b69d77f595c4)
![shotmd-1788328230.jpg](/attachments/63ea6a86-9a51-412b-a98c-dce454bcc968)

---------

Co-authored-by: 段舒康 <kdletters@qq.com>
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/240
Co-authored-by: 王德宇 <kvtodev@outlook.com>
Co-committed-by: 王德宇 <kvtodev@outlook.com>
2026-09-03 10:02:05 +08:00
k88936 d93dd39e23 Merge remote-tracking branch 'origin/master' into fix/remove-read-skill-tool
Project CI / Repository checks (pull_request) Successful in 3m24s
Project CI / Frontend tests (pull_request) Successful in 3m47s
Project CI / Native shell tests (pull_request) Successful in 17m20s
Project CI / Backend tests (pull_request) Successful in 7m20s
2026-09-02 19:15:44 +08:00
k88936 1e67728953 清理已移除工具名称残留
删除 unknown-tool 测试中对旧 AGC 工具名的硬编码引用
2026-09-02 19:12:38 +08:00
k88936 6fe91a169c 移除 AGC Skill 受控引用读取工具
删除 agc_read_skill_resource 的实现、MCP 暴露、审计分支与专用测试

将内置 Skill references 改为 Codex 原生相对路径读取

同步 Skill manifest 指纹、Runtime 提示词与 AGC 项目文档

保留既有 references 安装与隔离 HOME 校验
2026-09-02 19:00:31 +08:00
kdletters 97b0231afc 优化 AGC 会话恢复超时与 Runner 启动校验 (#253)
Project CI / Frontend tests (push) Successful in 4m33s
Project CI / Repository checks (push) Successful in 4m48s
Project CI / Backend tests (push) Successful in 8m38s
Project CI / Native shell tests (push) Successful in 18m37s
## 变更内容

- 增加启动会话恢复阶段、等待时间和可操作错误提示。
- 为客户端 HTTP 请求增加默认超时、AbortController 取消和可选长请求豁免。
- 会话恢复失败后提供重试,并隔离旧请求的迟到结果。
- 让 Runner 启动探测严格遵守剩余启动时间预算。
- 补充前端、HTTP、Runner 定向测试并同步技术方案。

## 验证

- npm run typecheck --workspace @genarrative/ai-game-creator-shell
- npm run check:encoding
- clientHttp 定向测试
- AuthenticatedClient 定向测试
- Runner 启动探测测试
- cargo fmt --check
- git diff --check

Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/253
Co-authored-by: kdletters <kdletters@qq.com>
Co-committed-by: kdletters <kdletters@qq.com>
2026-09-02 18:15:38 +08:00
k88936 5de9554426 Feat/ui编辑器与code agent整合 (#237)
Project CI / Repository checks (push) Successful in 3m36s
Project CI / Frontend tests (push) Successful in 4m30s
Project CI / Native shell tests (push) Successful in 18m33s
Project CI / Backend tests (push) Successful in 8m12s
实现:
在ui编辑器保存旁增加一个保存并生成代码(js)
生成的是js字符串形式的html, 在整个js前有文档说明
code agent使用js直接注入已经生成的 export的html片段,
每次保存会直接覆盖这些html片段, 依靠动态注入实现编辑器的微调反映到游戏中.
每个节点提供了稳定的id用于code agent在生成html的基础上进行功能实现, 节点增删

目前是作为一个自说明的文件直接让code agent阅读使用, 都是用户调整保存顺便生成, 不提供工具调用.
希望以skill的形式使用

---------

Co-authored-by: 段舒康 <kdletters@qq.com>
Co-authored-by: 孔令弘 <ink29535@proton.me>
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/237
Co-authored-by: 王德宇 <kvtodev@outlook.com>
Co-committed-by: 王德宇 <kvtodev@outlook.com>
2026-09-02 16:49:19 +08:00