Commit Graph

3984 Commits

Author SHA1 Message Date
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
kdletters 29e84a77d1 切换 Tiantoken 并删除旧 Vidu 音效
Project CI / AI game creator shell Rust shard 2/4 (push) Successful in 5m31s
Project CI / AI game creator shell Rust shard 4/4 (push) Successful in 5m31s
Project CI / AI game creator shell Rust shard 1/4 (push) Successful in 5m47s
Project CI / AI game creator shell Rust shard 3/4 (push) Successful in 5m48s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m43s
Project CI / AI game creator shell Rust crates (push) Successful in 2m3s
Project CI / Repository checks (push) Successful in 3m43s
Project CI / Frontend tests (push) Successful in 4m53s
Project CI / Native shell tests (push) Successful in 6m35s
Project CI / Backend tests (push) Successful in 7m25s
Project CI / AI game creator shell web tests (push) Successful in 2m35s
新增 TIANTOKEN_BASE_URL / TIANTOKEN_API_KEY 配置并切换文本与图片链路

保留 Suno VectorEngine 路径,删除旧 Vidu submit/poll/builder 实现

同步脚本、文档、测试与运行时 provider 路由
2026-09-15 19:43:35 +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
kdletters 687bad0adf 修复登录失败原因提示 (#374)
Project CI / AI game creator shell Rust shard 1/4 (push) Successful in 5m1s
Project CI / AI game creator shell Rust shard 2/4 (push) Successful in 4m27s
Project CI / AI game creator shell Rust shard 3/4 (push) Successful in 4m44s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m34s
Project CI / AI game creator shell Rust shard 4/4 (push) Successful in 3m56s
Project CI / AI game creator shell Rust crates (push) Successful in 2m4s
Project CI / Frontend tests (push) Successful in 4m29s
Project CI / Repository checks (push) Successful in 3m42s
Project CI / Backend tests (push) Successful in 7m0s
Project CI / AI game creator shell web tests (push) Successful in 2m44s
Project CI / Native shell tests (push) Successful in 7m25s
登录失败时,部分网关或兼容接口返回字符串形式的 error,前端解析失败后只显示通用“登录失败”,用户无法判断具体原因。

本次修改:
- 统一错误解析器支持字符串 error,并保留标准嵌套错误的优先级。
- 增加登录接口返回“手机号或密码错误”的回归测试。
- 同步认证排障记录。

验证:
- API 客户端测试 32 项通过
- 认证服务与登录弹窗测试 55 项通过
- npm run typecheck 通过
- npm run lint:eslint 通过
- npm run check:encoding 通过

Reviewed-on: #374
Co-authored-by: kdletters <kdletters@qq.com>
Co-committed-by: kdletters <kdletters@qq.com>
2026-09-15 19:27:14 +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
lhk229 2111078483 削减策划agent的工作流负担 (#373)
Project CI / AI game creator shell Rust shard 4/4 (push) Successful in 5m15s
Project CI / AI game creator shell Rust shard 2/4 (push) Successful in 5m19s
Project CI / AI game creator shell Rust shard 1/4 (push) Successful in 5m31s
Project CI / AI game creator shell Rust shard 3/4 (push) Successful in 5m43s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m33s
Project CI / AI game creator shell Rust crates (push) Successful in 1m35s
Project CI / Repository checks (push) Successful in 3m46s
Project CI / Frontend tests (push) Successful in 4m52s
Project CI / Native shell tests (push) Successful in 6m15s
Project CI / Backend tests (push) Successful in 7m11s
Project CI / AI game creator shell web tests (push) Successful in 2m18s
Reviewed-on: https://git.genarrative.world/git/GenarrativeAI/Genarrative/pulls/373
Co-authored-by: Linghong <ink29535@proton.me>
Co-committed-by: Linghong <ink29535@proton.me>
2026-09-15 18:49:00 +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
kdletters 2a89d4c20b 游戏生产流程SOP补充错误重试口径
Project CI / AI game creator shell Rust shard 1/4 (push) Successful in 4m55s
Project CI / AI game creator shell Rust shard 2/4 (push) Successful in 4m29s
Project CI / AI game creator shell Rust shard 4/4 (push) Successful in 4m10s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m34s
Project CI / AI game creator shell Rust shard 3/4 (push) Successful in 4m37s
Project CI / AI game creator shell Rust crates (push) Successful in 4m6s
Project CI / Frontend tests (push) Successful in 4m4s
Project CI / Repository checks (push) Successful in 3m30s
Project CI / Native shell tests (push) Successful in 7m59s
Project CI / AI game creator shell web tests (push) Successful in 3m57s
Project CI / Backend tests (push) Successful in 9m4s
阶段工具、命令或验证失败时最多重试 3 次,串行、同一阶段同一输入,不得并行绕路、跳到后续阶段或用占位物顶替
3 次尝试全部失败后才停止并把失败原因告诉用户:失败阶段、报错工具或命令、原始错误、仍然缺失的产物
未通过三轮重试的阶段不算完成,缺失产物不得报成已交付
同步 agc-skills manifest 内容指纹
2026-09-15 15:59:10 +08:00
kdletters a319a24cba 回退Direct回合生命周期规范提交3dfb8056d
回退 3dfb8056d:删除新增的《Direct回合跨页面生命周期与运行中项目可见性》里程碑与实施计划两份文档
回退 3dfb8056d:移除 AGC 主规范中的 Direct 回合跨页面生命周期章节及其快照失败重试条款
2026-09-15 15:58:42 +08:00
kdletters 3dfb8056d0 新增Direct回合跨页面生命周期规范并固定快照失败重试3次
Project CI / AI game creator shell Rust shard 4/4 (push) Successful in 5m13s
Project CI / AI game creator shell Rust shard 2/4 (push) Successful in 5m19s
Project CI / AI game creator shell Rust shard 1/4 (push) Successful in 5m33s
Project CI / AI game creator shell Rust shard 3/4 (push) Successful in 5m45s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m33s
Project CI / AI game creator shell Rust crates (push) Successful in 2m57s
Project CI / Frontend tests (push) Successful in 4m7s
Project CI / Repository checks (push) Successful in 3m15s
Project CI / Native shell tests (push) Successful in 6m49s
Project CI / Backend tests (push) Successful in 7m55s
Project CI / AI game creator shell web tests (push) Successful in 2m52s
新增《Direct回合跨页面生命周期与运行中项目可见性》里程碑与实施计划,约定离开项目页面不终止回合、重新进入需恢复忙碌态与进度并以快照 sequence 续接
主规范补充 Direct 回合跨页面行为合同、左上角运行中项目面板契约与验收标准
读取活动回合快照失败改为最多重试 3 次,3 次全部失败才向用户告知失败原因,且不得改写成业务、权限或审批结论
2026-09-15 15:54:16 +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
kdletters d9151219ab 调整陶泥儿安装包资源与显示名称
Project CI / AI game creator shell Rust shard 1/4 (push) Successful in 4m49s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m45s
Project CI / AI game creator shell Rust shard 2/4 (push) Successful in 5m15s
Project CI / AI game creator shell Rust shard 3/4 (push) Successful in 5m34s
Project CI / AI game creator shell Rust shard 4/4 (push) Successful in 4m5s
Project CI / AI game creator shell Rust crates (push) Successful in 3m34s
Project CI / Frontend tests (push) Successful in 4m45s
Project CI / Repository checks (push) Successful in 3m20s
Project CI / Backend tests (push) Successful in 7m11s
Project CI / Native shell tests (push) Successful in 7m48s
Project CI / AI game creator shell web tests (push) Successful in 3m25s
安装包内置 Codex 顶层目录改为 coding-agent

Windows 注册表和快捷方式显示名改为陶泥儿

同步运行时路径、配置校验与项目文档
2026-09-15 15:10:45 +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
kdletters dc8e03988f 修复AGC模型列表刷新无反馈与响应体无限等待
Project CI / AI game creator shell Rust shard 1/4 (push) Successful in 5m26s
Project CI / AI game creator shell Rust shard 2/4 (push) Successful in 4m20s
Project CI / AI game creator shell Rust shard 3/4 (push) Successful in 4m22s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m8s
Project CI / AI game creator shell Rust crates (push) Successful in 3m6s
Project CI / AI game creator shell Rust shard 4/4 (push) Successful in 4m4s
Project CI / Repository checks (push) Successful in 3m27s
Project CI / Frontend tests (push) Successful in 4m39s
Project CI / Native shell tests (push) Successful in 7m27s
Project CI / AI game creator shell web tests (push) Successful in 3m9s
Project CI / Backend tests (push) Successful in 8m47s
ConversationModelSelect:手动刷新立即显示「刷新中…」,真实刷新成功后显示「模型列表已刷新」,revision 未变化也有反馈
ConversationModelSelect:刷新失败按 HTTP 状态与超时给出可辨认提示,沿用有效缓存时不报告刷新成功,已选模型与挂载/聚焦语义不变
clientApi:成功与错误响应体统一走 readClientHttpResponseText 的 15 秒上限,响应体卡住时结束等待并释放模型目录在途请求
测试:补齐模型目录响应体超时后保留缓存并可重试、迟到响应不覆盖新目录、手动刷新进行中/同版本成功/失败反馈用例
文档:同步 AGC 模型目录刷新反馈与响应体超时合同,并在共享记忆记录该排障口径
2026-09-15 14:41:57 +08:00
lhk229 8ae7ed0128 Merge branch 'master' into opt/design-debug
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Successful in 5m32s
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Successful in 5m39s
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Successful in 5m47s
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Successful in 5m56s
Project CI / Repository checks (pull_request) Successful in 4m19s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m33s
Project CI / Backend tests (pull_request) Successful in 8m44s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m50s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m32s
Project CI / Frontend tests (pull_request) Successful in 4m31s
Project CI / Native shell tests (pull_request) Successful in 6m53s
Project CI / AI game creator shell Rust shard 1/4 (push) Successful in 5m42s
Project CI / AI game creator shell Rust shard 2/4 (push) Successful in 5m45s
Project CI / AI game creator shell Rust shard 4/4 (push) Successful in 5m48s
Project CI / AI game creator shell Rust shard 3/4 (push) Successful in 6m1s
Project CI / AI game creator shell Rust crates (push) Successful in 3m22s
Project CI / Frontend tests (push) Successful in 5m23s
Project CI / Backend tests (push) Successful in 7m54s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m41s
Project CI / Repository checks (push) Successful in 4m3s
Project CI / Native shell tests (push) Successful in 7m50s
Project CI / AI game creator shell web tests (push) Successful in 2m32s
2026-09-15 12:29:58 +08:00
lhk229 dfdcc43a0b Merge pull request '新增 AGC 首页策划补全入口' (#369) from feat/entrance into master
Project CI / AI game creator shell Rust shard 4/4 (push) Successful in 5m30s
Project CI / AI game creator shell Rust shard 2/4 (push) Successful in 6m0s
Project CI / AI game creator shell Rust shard 1/4 (push) Successful in 6m12s
Project CI / AI game creator shell Rust shard 3/4 (push) Successful in 6m25s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m40s
Project CI / AI game creator shell Rust crates (push) Successful in 2m13s
Project CI / Repository checks (push) Successful in 3m59s
Project CI / Frontend tests (push) Successful in 5m36s
Project CI / Native shell tests (push) Successful in 6m35s
Project CI / Backend tests (push) Successful in 7m13s
Project CI / AI game creator shell web tests (push) Successful in 3m31s
Reviewed-on: https://git.genarrative.world/git/GenarrativeAI/Genarrative/pulls/369
2026-09-15 12:29:47 +08:00
lhk229 9389c7fff8 修正 AGC 策划补全说明
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 4/4 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Has been cancelled
更新首页启动模式注释以覆盖游戏策划补全分支

同步实施计划与当前测试覆盖边界
2026-09-15 12:26:57 +08:00
lhk229 77d3917d9c 统一策划 Agent Debug 运行时开关
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
策划 Debug 日志与快速推进入口共用 GENARRATIVE_AGC_DESIGN_DEBUG。

通过 Tauri 查询构建与运行时状态,移除前端 VITE Debug 开关依赖。

更新开发启动器、策划工作区测试和技术方案文档。
2026-09-15 04:22:45 +00: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
lhk229 fbf8d34f45 新增 AGC 首页策划补全入口
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Successful in 5m27s
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Successful in 5m28s
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Successful in 5m28s
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Successful in 5m44s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m46s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m11s
Project CI / Repository checks (pull_request) Successful in 3m43s
Project CI / Frontend tests (pull_request) Successful in 4m35s
Project CI / Native shell tests (pull_request) Successful in 6m8s
Project CI / Backend tests (pull_request) Successful in 7m8s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m11s
首页做游戏入口增加策划补全勾选项

勾选后复用 planning Agent Runtime 启动模式

补充首页启动模式回归测试与实施计划
2026-09-15 12:14:03 +08:00
kdletters 33369f1180 修复生图资产实时刷新
Project CI / AI game creator shell Rust shard 1/4 (push) Successful in 5m27s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m5s
Project CI / AI game creator shell Rust shard 2/4 (push) Successful in 4m50s
Project CI / AI game creator shell Rust shard 3/4 (push) Successful in 5m13s
Project CI / AI game creator shell Rust crates (push) Successful in 2m2s
Project CI / AI game creator shell Rust shard 4/4 (push) Successful in 4m12s
Project CI / Repository checks (push) Successful in 4m16s
Project CI / Frontend tests (push) Successful in 5m8s
Project CI / Native shell tests (push) Successful in 6m31s
Project CI / Backend tests (push) Successful in 7m32s
Project CI / AI game creator shell web tests (push) Successful in 4m12s
兼容 Windows 普通、verbatim 与 UNC 项目路径的失效事件匹配

让普通生图成功后立即发送 manifest 刷新通知

补充资源卡片与桥接通知回归测试
2026-09-15 10:37:47 +08:00
lhk229 9aa6f5efea 解决platform-llm和策划agent reasoning问题,并修复若干bug (#350)
Project CI / AI game creator shell Rust shard 1/4 (push) Successful in 4m44s
Project CI / AI game creator shell Rust shard 2/4 (push) Successful in 5m9s
Project CI / AI game creator shell Rust shard 3/4 (push) Successful in 4m33s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m50s
Project CI / AI game creator shell Rust shard 4/4 (push) Successful in 3m53s
Project CI / AI game creator shell Rust crates (push) Successful in 2m51s
Project CI / Frontend tests (push) Successful in 4m58s
Project CI / Repository checks (push) Successful in 3m18s
Project CI / Native shell tests (push) Successful in 6m10s
Project CI / Backend tests (push) Successful in 7m7s
Project CI / AI game creator shell web tests (push) Successful in 2m16s
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 (pull_request) Has been cancelled
Reviewed-on: #350
2026-09-15 00:50:36 +08:00
suzmii 0ced0c2564 Merge pull request 'AGC 资源工作台三处交互收口:侧栏关闭入口合并、删除折叠把手、播放左对齐' (#361) from fix/agc-resource-workbench-chrome into master
Project CI / AI game creator shell Rust shard 3/4 (push) Successful in 5m37s
Project CI / AI game creator shell Rust shard 2/4 (push) Successful in 5m40s
Project CI / AI game creator shell Rust shard 1/4 (push) Successful in 5m43s
Project CI / AI game creator shell Rust shard 4/4 (push) Successful in 5m49s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m41s
Project CI / AI game creator shell Rust crates (push) Successful in 2m22s
Project CI / Repository checks (push) Successful in 3m48s
Project CI / Frontend tests (push) Successful in 4m41s
Project CI / Native shell tests (push) Successful in 6m31s
Project CI / Backend tests (push) Successful in 7m26s
Project CI / AI game creator shell web tests (push) Successful in 2m58s
Reviewed-on: #361
2026-09-15 00:44:02 +08:00