Commit Graph

6452 Commits

Author SHA1 Message Date
k88936 d706b65643 给缺宿主Node的npm目标单测加可见跳过提示
- npm_command_targets_node_plus_npm_cli_on_linux 跳过时 eprintln 输出原因(含 resolve_node_runtime 错误),配 --nocapture / --show-output 可与真实通过区分
2026-10-07 14:17:49 +08:00
k88936 ef2a1bc749 Merge remote-tracking branch 'origin/master' into feat/support-more-node
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust crates (pull_request) Has been cancelled
Project CI / 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-10-07 14:05:26 +08:00
k88936 809cea5707 让 .nvmrc / .node-version 只改变搜索顺序而不阻塞
- resolve_pinned_managed_runtime 命中已安装版本时优先采用;NoMatch 不再返回 node-version-pinned-not-installed,与 Unsupported 一样按未 pin 回退
- fnm / nvm 共用同一条宽松路径;用例覆盖 fnm .nvmrc、fnm .node-version 与 nvm .nvmrc 的命中优先与未安装回退
- PinSelection 补注释说明 NoMatch / Unsupported 都只影响搜索顺序
- 同步 Runtime V1.1、实施计划、decision-log、pitfalls 与里程碑口径,去掉“未安装失败关闭”的旧约定
2026-10-07 14:01:43 +08:00
k88936 65ff808942 Merge pull request '修复8ceada8690f7255f318f7b335708e5dfea73d2d5的CI回归问题' (#666) from fix/codex/agc-error-convergence-regression into master
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (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: #666
2026-10-07 13:57:03 +08:00
k88936 a2e538e2d1 让 lts 通配与 codename 一样按未 pin 回退
- version_matches_pin 不再把 lts/* 当作匹配任意版本:它和 lts/<codename> 一样需要 LTS 行映射,未维护时返回 None,交回退链而不是静默选中已安装最高版本(最高版本通常不是 LTS)
- 更新单测:lts/* 断言 None,并加入不支持 pin 的回退用例;修正 nvm default 别名注释
- 同步技术方案 V1.11.2 与 decision-log 的比较子集口径
2026-10-07 13:39:15 +08:00
k88936 f046bbe204 跳过缺少宿主Node时的npm目标单测
- npm_command_targets_node_plus_npm_cli_on_linux 先探测 resolve_node_runtime,最小容器无可用宿主 Node 时跳过,避免 cargo test 因缺 Node panic
- 探测失败只跳过这一条真机用例,其它解析失败仍照常失败
2026-10-07 13:38:55 +08:00
k88936 050b0e66dd Merge branch 'master' into fix/codex/agc-error-convergence-regression
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust crates (pull_request) Has been cancelled
Project CI / 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-10-07 13:34:15 +08:00
k88936 d5e26a68f5 Merge pull request '修复对话设置中「运行配置」被设置浮层遮挡的层级问题' (#667) from fix/setting-modal-zindex into master
Project CI / AI game creator shell Rust lane 2/2 (push) Failing after 6m9s
Project CI / AI game creator shell Rust crates (push) Successful in 6m9s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 7m43s
Project CI / Backend tests (push) Successful in 8m3s
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: #667
2026-10-07 13:32:09 +08:00
k88936 674260c0d8 Merge branch 'master' into fix/codex/agc-error-convergence-regression
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust crates (pull_request) Has been cancelled
Project CI / 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-10-07 13:31:50 +08:00
k88936 2daf2c8a7f 修复错误正文收敛合并后遗留的前端失败测试
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust crates (pull_request) Has been cancelled
Project CI / 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
- 恢复合并时丢失的 homeCreationFailure 安全正文实现:按工作区是否已建好拼接脱敏后的 IPC / Provider / 宿主失败原因
- errorReporting:映射外 Tauri 失败被 ClientAuthErrorWrapper 序列化成 `{}` 时落回兜底文案,不再把 `{}` 当正文展示
- useRecentProjects:提权失败分类改看原始正文,避免脱敏把 `(DACL …)` 连同路径吞成 `<path>` 后误判可重试、再弹一次 UAC
- PluginPanelHost:插件面板是不可信内容,原始错误只进错误池,用户可见文案保持「插件面板加载失败」
- platformSession / platformSessionRetry:订阅替身返回 Promise,对齐真实 subscribeClientAuthState 契约
- 润色失败、资源版本替换、首页创建失败、启动浮层的测试期望对齐脱敏后的详情文案
2026-10-07 13:29:47 +08:00
k88936 50c2c91d4a 修复对话设置中「运行配置」被设置浮层遮挡的层级问题
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust crates (pull_request) Has been cancelled
Project CI / 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-chat-settings-backdrop 的 z-index 从 240 降到 210,让二级浮层运行配置(220)与插件面板(230)正常叠在其上

新增 windowChromeOverlayContract 回归测试,约束对话设置 / 运行配置 / 插件面板三层 z-index 严格递增
2026-10-07 13:27:08 +08:00
k88936 441be8d621 Merge pull request 'Feat/支持fnm nvm' (#663) from feat/support-more-node into master
Project CI / AI game creator shell Rust lane 2/2 (push) Failing after 6m22s
Project CI / AI game creator shell Rust crates (push) Successful in 6m25s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 8m27s
Project CI / Frontend tests (push) Successful in 2m41s
Project CI / Backend tests (push) Successful in 10m17s
Project CI / AI game creator shell web tests (push) Failing after 4m26s
Project CI / Repository checks (push) Successful in 7m34s
Project CI / Native shell tests (push) Successful in 9m49s
Reviewed-on: #663
2026-10-07 13:08:49 +08:00
k88936 5090bde7f3 Merge pull request 'Fix/chat history style' (#662) from fix/chat-history-style into master
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (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: #662
2026-10-07 13:04:55 +08:00
k88936 d7b6dce393 修复错误正文收敛合并引入的两处失败测试
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust crates (pull_request) Has been cancelled
Project CI / 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
模型目录 ok=true 但 data 为空时恢复服务端协议 error 明细,补回合并时丢失的分支实现
自定义模型端点失败时不再回显上游正文,仅返回 HTTP 状态码,避免泄漏密钥
使 catalog_missing_data_preserves_protocol_detail 与 custom_llm_discovery_reports_safe_errors_and_bounds_response 恢复通过
2026-10-07 13:02:47 +08:00
k88936 f6e3e19cd8 将npm install联网放行绑定到可信node launcher
Project CI / Backend tests (pull_request) Failing after 35s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 5m43s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 7m2s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 7m6s
Project CI / Repository checks (pull_request) Failing after 21s
Project CI / Frontend tests (pull_request) Successful in 2m31s
Project CI / Native shell tests (pull_request) Successful in 10m18s
Project CI / AI game creator shell web tests (pull_request) Successful in 4m18s
- prepare_command_sandbox_launch 新增 trusted_npm_install 参数,command_exec 把 spec.node_launcher 的 (node, npm_cli) 透传给沙箱
- command_sandbox_requests_npm_install 改为与可信 (node, npm_cli) 精确比对(executable、首个参数、install 子命令),删除只看 basename 的判定;拿不到可信对时一律不放网
- LinuxSandboxPlan 增加 npm_install_network,build_linux_bwrap_launch 直接采用,避免重复推导
- 新增/更新单测:项目同名 npm-cli.js 不放网、无可信 launcher 不放网、--share-net 开关、可信 (node, npm_cli) 与实际目标逐字一致
- 同步技术方案 V1.11.2、decision-log 与 pitfalls 记录该安全边界
2026-10-07 12:19:00 +08:00
k88936 deecebf0bb 删除未生效的活动版本分支,回退链只认默认别名
- 删除 active_managed_prefix(FNM_MULTISHELL_PATH / NVM_BIN):激活时活动版本已在 PATH 里,而该分支拿到的 multishell 前缀与枚举出的安装前缀不相等,永远不命中
- resolve_managed_fallback_runtime 回退顺序收敛为 engines 最高匹配 > 默认别名 > 已安装最高版本
- 同步 decision-log、里程碑与两处技术方案的版本选择口径
2026-10-07 11:59:42 +08:00
k88936 05012a85c3 删掉滚动回归测试,改为守卫「回到底部」不盖住输入盒弹层
Project CI / AI game creator shell Rust crates (pull_request) Successful in 4m39s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Failing after 5m59s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 6m0s
Project CI / Frontend tests (pull_request) Successful in 2m47s
Project CI / Backend tests (pull_request) Successful in 7m42s
Project CI / AI game creator shell web tests (pull_request) Failing after 3m33s
Project CI / Repository checks (pull_request) Successful in 7m2s
Project CI / Native shell tests (pull_request) Successful in 10m2s
- 删除 useConversationScroll.test.tsx 里新增的两条用例:加载行隐藏滞回、内容塌回一屏后收起胶囊
- chatDialogFrameLayout.test.ts:消息列表改为 flex 列容器后 gap 实际为 0,断言由 14px 改为 0 并注明间距仍由子项 margin 提供
- chatDialogFrameLayout.test.ts:新增用例——胶囊的 z-index 必须低于输入盒,模型 / 附件菜单向上展开时盖住胶囊而不是被胶囊盖住
- project-development.suite.ts:输入盒 z-index 断言由 1 改为 30,并注明层叠关系由上面那条用例守卫
2026-10-07 11:55:04 +08:00
k88936 2a1e7fb373 Merge branch 'master' into fix/chat-history-style
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust crates (pull_request) Has been cancelled
Project CI / 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-10-07 11:46:42 +08:00
k88936 6f4667d96f 补fnm默认别名符号链接回归测试
- 新增单测 fnm_default_alias_symlink_selects_the_linked_installation,断言 default 别名选中该链接的 v20 而不是最高的 v22
- 核实评审该项前提有误:fnm 1.39 的 aliases/default 是指向安装目录的符号链接,当前实现本就正确
2026-10-07 11:45:02 +08:00
k88936 d905fa1c02 按未 pin 回退 lts/codename 避免静默选中错误版本
- version_matches_pin 对 lts/<codename>(如 lts/iron)返回 None,不再当作匹配任意已安装版本
- 补充单测:lts/iron 回退、lts/* 仍匹配,并加入不支持 pin 的回退用例
- decision-log 记录 lts/<codename> 需要 codename → 版本行映射,当前按未 pin 回退
2026-10-07 11:43:00 +08:00
kdletters 8ceada8690 合并 codex/agc-error-convergence-20261004:交付核心以 master 新设计为准并保留分支错误明细
Project CI / AI game creator shell Rust lane 1/2 (push) Failing after 5m43s
Project CI / AI game creator shell Rust crates (push) Successful in 4m52s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 5m40s
Project CI / Frontend tests (push) Successful in 2m48s
Project CI / Backend tests (push) Successful in 7m14s
Project CI / AI game creator shell web tests (push) Failing after 3m50s
Project CI / Native shell tests (push) Successful in 8m27s
Project CI / Repository checks (push) Successful in 7m9s
冲突处理:交付合同/租约相关现场取 master(#608 重构),分支侧错误明细在可安全保留处回补
编译修复:direct_tool_bridge 回执结算失败正文、direct_patch 指纹读取、direct_delivery 终态读取按 Result 形状对齐
前端修复:DirectProjectChatView 取 master,其余缺失的错误正文 import/参数回补
重新生成 AuthServiceUnavailable 绑定以匹配 Rust 声明
2026-10-07 11:33:18 +08:00
k88936 7ed3696959 修复nvm默认别名并补真实nvm沙箱验证
Project CI / AI game creator shell Rust crates (pull_request) Successful in 4m41s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 7m1s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 7m46s
Project CI / Frontend tests (pull_request) Successful in 3m17s
Project CI / Backend tests (pull_request) Successful in 7m25s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m52s
Project CI / Repository checks (pull_request) Successful in 6m9s
Project CI / Native shell tests (pull_request) Successful in 8m28s
- nvm 的 alias/default 只写主版本号(如 22),改为按同一 pin 子集在已安装版本里选最高匹配,避免按 (22,0,0) 精确匹配永远落空
- 新增 opt-in 真机测试 command_sandbox_real_linux_opt_in_runs_nvm_installation_prefix,在 bwrap 内跑真实 nvm 安装前缀的 node 与 npm
- 新增单测 nvm_major_only_default_alias_selects_the_installed_patch 守住主版本号别名
- 里程碑、decision-log 与 pitfalls 记录真实 nvm v0.40.8 + Node v22.23.3 验证与 default 别名口径
2026-10-07 11:12:49 +08:00
k88936 51e6d1d9b9 AGC命令沙箱原生支持fnm/nvm托管Node
- 新增共享窄叶校验 validate_node_installation_prefix,只接受含 bin/node 与 lib/node_modules/npm/bin/npm-cli.js 的完整 Node 安装前缀,拒绝 HOME、管理器根、宽泛目录和逃逸 symlink
- 开发构建枚举 fnm node-versions/<ver>/installation 与 nvm versions/node/<ver>,按 .nvmrc / .node-version 权威 pin、PATH、engines.node 偏好、活动版本、默认别名、最高版本选择
- .nvmrc / .node-version 能理解但未安装时返回 node-version-pinned-not-installed 失败关闭;engines.node 与无法解析的 pin 不阻塞
- Linux 命令沙箱只读挂载通过校验的完整 Node 安装前缀,并在内联环境剔除 FNM_MULTISHELL_PATH
- Linux npm 改以受信任 node <npm-cli.js> 启动,npm install 联网判定跟随真实启动形态
- 非 Node 程序在 Linux 受信任 PATH 前置 Node 工具链 bin,npx / corepack 等随 node 同版本
- 同步技术方案 V1.11.2、实施计划切片、里程碑规范、decision-log 与 pitfalls
2026-10-07 11:07:16 +08:00
k88936 b99302dbfb 弹层打开时输入盒盖住「回到底部」胶囊
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 6m53s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 4m22s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 6m4s
Project CI / Frontend tests (pull_request) Successful in 3m34s
Project CI / Backend tests (pull_request) Successful in 8m12s
Project CI / Repository checks (pull_request) Failing after 6m49s
Project CI / AI game creator shell web tests (pull_request) Failing after 3m38s
Project CI / Native shell tests (pull_request) Successful in 8m57s
- styles.css 把 DirectProject 输入盒的 z-index 从 1 抬到 30:输入盒自己是层叠上下文,模型 / 附件菜单的 z-index 只在盒内有效,盒子不抬高会被列表里的胶囊(z-index: 10)盖住
- 30 仍低于拖拽落点提示(60)与设置弹窗(240)两个整屏浮层,它们照旧盖在输入盒之上
2026-10-07 11:05:15 +08:00
k88936 d860b84a02 「回到底部」胶囊改为基于列表可见底边定位
- styles.css 把消息列表改成 flex 列容器并显式 gap: 0——原 gap: 14px 对块级容器无效,改成 flex 后会与子项的 margin 叠成双倍间距
- 列表子项 flex: 0 0 auto 防止内容溢出一屏时被纵向压缩,列表仍是唯一滚动区
- 胶囊 margin-top: auto:内容不足一屏时吃掉剩余空间顶到可见底边,内容溢出一屏时归零、交由 sticky bottom-3 上拉贴底
- DirectProjectScrollToBottomCapsule 增加稳定类名 project-chat-scroll-to-bottom、去掉 mt-1,并更新组件说明
- ADR 第 3 节与备选方案 2 同步新的定位方式
2026-10-07 10:50:04 +08:00
k88936 c95ea8af85 短历史一屏以内时收起悬空的「回到底部」胶囊
- useConversationScroll 新增 syncBottomFromLayout:按真实几何复核 isNearBottom,为真即恢复跟随、收起胶囊并清掉「有新回复」
- 布局补偿、turns 内容变化与 ResizeObserver/MutationObserver 回调都先走一次复核,内容塌回一屏以内不再依赖滚动事件
- 补回归测试:列表内容塌回一屏以内并触发布局变化,没有任何滚动事件也应收起胶囊
- ADR 第 3 节记录贴底判定不能只认 onScroll
2026-10-07 10:49:56 +08:00
k88936 89d0f507e6 修复连续翻页时历史加载行忽隐忽现
- 加载行卸载加入 300ms 隐藏滞回:填充视口的自动加载连续翻页,两次之间只有一次 effect 回流,立即卸载会把加载行一帧内拆了又挂
- conversationScrollPolicy.ts 新增 HISTORY_LOADING_INDICATOR_HIDE_DELAY_MS,与显示延迟 150ms 配对
- useDelayedFlag 增加 hideDelayMs 参数,值转假后延迟再隐藏,转真仍立即显示
- 补回归测试:连续翻页之间小于隐藏延迟的空隙不卸载加载行,真正结束后照常卸载
- ADR 第 1 节记录隐藏滞回的动机与阈值
2026-10-07 10:49:41 +08:00
k88936 a8ae817205 Merge pull request 'Feat/适配小红书小工具导出' (#630) from feat/adapt-xhs-skill into master
Project CI / AI game creator shell Rust crates (push) Successful in 6m43s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 7m59s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 7m59s
Project CI / Backend tests (push) Successful in 10m21s
Project CI / Frontend tests (push) Successful in 3m32s
Project CI / AI game creator shell web tests (push) Successful in 3m15s
Project CI / Repository checks (push) Successful in 7m38s
Project CI / Native shell tests (push) Successful in 9m40s
Reviewed-on: #630
2026-10-07 10:09:37 +08:00
kdletters fba012b42b 修复真实游戏链路里 CC 执行器的四处阻塞
过程条目 id 按内容块类型区分,同 id 不同内容时补唯一后缀,避免整轮被判过程历史保存失败
资产下载的 fake-IP 窄例外覆盖 RFC 5180 的 IPv6 段,修复双栈解析下平台图片被拒绝下载
给 CC 子进程下发 MCP_TOOL_TIMEOUT,避免分钟级付费生成被 60 秒默认超时取消
复用 Codex 的进程树归属与退出证明,让 CC 回合能写 executor_stopped 并完成交付封口
2026-10-07 08:17:34 +08:00
kdletters 594ac321bf 归一化 Claude Agent SDK 身份句,避免上游内容策略误拦
在 Anthropic Messages 代理转发前,把被上游内容策略误判的身份句替换为等价表述,其余字段原样透传
新增归一化单测:只改命中片段,保留 cache_control 等其它 system 形状
2026-10-07 08:17:23 +08:00
k88936 e35e179df1 修复 export/generated 未豁免行尾空白检查
Project CI / AI game creator shell Rust crates (pull_request) Successful in 5m56s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 7m4s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 7m5s
Project CI / Backend tests (pull_request) Successful in 9m19s
Project CI / Frontend tests (pull_request) Successful in 3m23s
Project CI / AI game creator shell web tests (pull_request) Successful in 3m6s
Project CI / Repository checks (pull_request) Successful in 7m7s
Project CI / Native shell tests (pull_request) Successful in 8m35s
.gitattributes 补登 apps/ai-game-creator-shell/src/view/project-development/export/generated/** 的 whitespace=-trailing-space,与其余 ts-rs 生成目录保持一致
2026-10-07 00:43:56 +08:00
k88936 d9f0951391 修复遗留 Rust 代码的 rustfmt 格式
Project CI / AI game creator shell Rust crates (pull_request) Successful in 5m51s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 7m4s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 7m6s
Project CI / Backend tests (pull_request) Successful in 8m49s
Project CI / Frontend tests (pull_request) Successful in 3m19s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m57s
Project CI / Repository checks (pull_request) Failing after 5m28s
Project CI / Native shell tests (pull_request) Successful in 6m57s
- xhs_minitool/build.rs:拆分超长的 conclude 调用断言行
- project/filesystem.rs:project_snapshot_path_is_excluded 的闭包改用 rustfmt 期望的换行
2026-10-06 23:57:36 +08:00
k88936 f4faaa2659 删除已迁移模块的遗留测试用例
- 删除 tests/gamePublishFeedback.test.tsx:发布入口迁入导出产物面板、发布表单拆成 hook + 视图后,该套 App 级反馈用例已失效
- 移除 tests/chatDialogFrameLayout.test.ts 中扫描 DirectProjectChatView 会话块顺序的用例(该 DOM 已迁到 DirectProjectChatBox),并删除不再使用的 CHAT_VIEW_PATH / CHAT_CONVERSATION_PATH
2026-10-06 23:52:17 +08:00
k88936 7bcef53494 合并 origin/master 到 feat/adapt-xhs-skill:发布表单吸收平台版本号与买断定价,并合入播放会话网关与导出 Skill 更新
Project CI / AI game creator shell Rust crates (pull_request) Successful in 5m56s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 7m16s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 7m24s
Project CI / Repository checks (pull_request) Failing after 59s
Project CI / Backend tests (pull_request) Successful in 8m46s
Project CI / Frontend tests (pull_request) Successful in 2m31s
Project CI / AI game creator shell web tests (pull_request) Failing after 2m27s
Project CI / Native shell tests (pull_request) Successful in 6m17s
- 发布表单 hook 保留本分支的 hook + 视图拆分,移植 master 的平台版本号回读(nextVersionNumber)、买断定价状态与提交校验,删除由工程内部版本派生的 projectVersion
- GameDistributionPublishFormView 接入只读「项目版本」与共享 PlatformGamePricingField,版本号未知时禁用提交
- DirectProjectComposer 同时保留本分支的草稿回填 / 回写 props 与 master 的 actionsPortalTarget 挂点
- 发布表单测试改用平台版本号 mock(nextVersionNumber: 1),补齐买断定价与缺省版本号禁用用例,并修正 Promise 类型标注
- decision-log.md 保留双方新增条目(小红书导出与 Skill 安装工具 + 播放会话前缀清 Cookie)
2026-10-06 23:28:57 +08:00
k88936 157b4eb861 表单字段逐项报错并可交给陶泥儿处理
Project CI / Backend tests (pull_request) Failing after 22s
Project CI / Native shell tests (pull_request) Failing after 4m6s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 5m30s
Project CI / Repository checks (pull_request) Failing after 15s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 6m17s
Project CI / AI game creator shell web tests (pull_request) Failing after 35s
Project CI / Frontend tests (pull_request) Successful in 1m56s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 7m2s
- xhsMinitoolFields.ts 的 validateXhsMinitoolForm 一次返回全部出错字段

- xhsMinitoolInstruction.ts 新增字段红字指令,示意里的字数上限改用 XHS_MINITOOL_TEXT_MAX_CHARS

- useXhsMinitoolExport.ts 的 fieldError 改为 fieldErrors,新增 handFieldErrorsToAgent:交接后清红字与 dirty,让自动重读能采纳 agent 的修正

- FormCard.tsx 每个出错字段各挂红框与红字,标题下新增「交给陶泥儿」入口

- ArtifactsPane.tsx 接上新字段与新动作

- 补 xhsMinitoolFields / xhsMinitoolExport 测试覆盖多字段报错与交接
2026-10-06 22:56:51 +08:00
k88936 ac0b08b2ac 修正导出被信号终止时的用户文案
- xhsMinitoolFailure.ts 的 commandFailed 在 exitCode 为 null 时改说「导出中途被中断了」:脚本没启动已归到 exportUnavailable

- xhsMinitoolExport.test.tsx 同步这两条措辞断言
2026-10-06 22:56:41 +08:00
k88936 e6190f080e 说明小红书打包脚本预检与打包口径不一致的取舍
- pack.mjs 的 collectZipEntries 注释写明决定不改的理由:链接算不算合法产物还没定论,预检对链接是静默跳过

- manifest.json 同步 vite-export-xhs-minitool 的 sha256 与版本
2026-10-06 22:56:35 +08:00
k88936 3162b04ee4 说明小红书注册表不拒绝符号链接的取舍
- registry.rs 模块注释写明决定不改的理由:注册表是用户项目里的草稿,要挡的是把项目内容交给打包链的入口
2026-10-06 22:56:32 +08:00
k88936 fafc83f9e6 导出面板改用平台主题变量
- `Shell` 的米色页面渐变改用 `bg-(image:--platform-body-fill)`
- 文案 / 强调 / 描边换成 `--platform-text-strong` / `-base` / `-soft` / `-muted`、`--platform-accent`、`--platform-surface-border` 与 `--platform-surface-hover-border`
- 卡片与输入底色换成 `--platform-panel-fill` / `--platform-input-fill` / `--platform-neutral-bg`,冲突卡底换成 `--platform-warm-bg`
- 硬编码阴影换成 `--platform-panel-shadow` 与 `--platform-profile-action-shadow`
- 小红书品牌红 `#ff2442` 不在 `--platform-*` 调色板里,按原值保留并加注释
2026-10-06 22:28:11 +08:00
k88936 a6974f3ca4 小红书表单校验只留前端
- 保存命令不再校验表单:`save_form` 只判 baseHash 冲突并写盘,删掉 `validation` 模块与它的必填 / 字数 / icon 约束
- `FormInvalid` 与 `XHSMiniToolExportField` 从 Rust 失败表和 DTO 退役,ts-rs 同步删掉两个生成类型
- 前端新增 `validateXhsMinitoolForm`(必填 + 14 字上限,按码点算),`persist` 先过它再落盘
- `fieldError` 改用本地 `XhsMinitoolFieldError`,`save` 守卫与失败卡片分流同步移除 `formInvalid`
- 测试:新增 `xhsMinitoolFields.test.ts`,改写两处依赖宿主 `formInvalid` 的用例为前端校验
2026-10-06 22:25:05 +08:00
k88936 ab8a6d1321 下载失败改为弹窗交代并提供在文件管理器中打开
src-tauri/src/project/asset_export.rs:新增按保存同一条路径门禁解析产物位置的能力,供文件管理器定位复用。
src-tauri/src/commands/desktop.rs:新增 reveal_local_project_asset_file 命令,用系统文件管理器定位项目内产物。
src-tauri/src/desktop.rs:注册新命令。
view/project-development/export/state/xhsMinitoolDownload.ts:保存结果改为带失败原因,新增在文件管理器里定位原件的兜底调用。
view/project-development/export/tabs/xiaohongshu/DownloadFailureDialog.tsx:新增下载失败弹窗,给「关闭」与「在文件管理器中打开」两条路。
view/project-development/export/tabs/xiaohongshu/ArtifactsPane.tsx:下载失败改用弹窗与兜底出口,去掉会被滚出视野的一行小字。
tests/xhsMinitoolExport.test.tsx:覆盖失败弹窗、定位命令参数与定位失败留在弹窗。
2026-10-06 22:13:10 +08:00
k88936 b9d0276a46 表单保存改用串行写盘锁,写盘期间的新编辑不会被漏掉
view/project-development/export/state/formSaveLock.ts:新增写盘锁,串行执行保存,并按进入时的编辑版本判断这次写的是不是最后一版。
view/project-development/export/state/useXhsMinitoolExport.ts:persist 走锁,写盘期间又有编辑时不清 dirty,让已排队的自动保存接着写最新一版;updateField 与 resolveConflict 记编辑版本。
tests/formSaveLock.test.ts:覆盖串行、被后来的编辑超过、最后一版、失败不卡队列。
tests/xhsMinitoolExport.test.tsx:补「保存期间继续输入,最后一版仍会落盘」的回归用例。
2026-10-06 22:08:30 +08:00
k88936 90da09f961 导出 hook 换项目时整套重置并丢弃过时结果
view/project-development/export/state/useXhsMinitoolExport.ts:新增 projectPath 重置效果,把表单/判据/冲突/产物状态与全部本地基线清回初值;读内容、取指纹、保存、构建各处在 await 回来后用 projectPathRef 校验结果仍属于当前项目,过时就丢弃,不再写回新项目。
tests/xhsMinitoolExport.test.tsx:补换项目后表单与产物判据清空、并读回新项目内容的用例。
2026-10-06 22:04:07 +08:00
k88936 26120af5ac 宿主侧故障不再落面板卡片
view/project-development/export/state/useXhsMinitoolExport.ts:refresh 与 buildOnce 遇到 exportUnavailable 不再 setFailure,直接抛给全局错误池上报;persist 同样只上报不落卡片。
tests/xhsMinitoolExport.test.tsx:更新为断言 failure 始终为空、同一个故障只抛一次。
2026-10-06 22:00:23 +08:00
k88936 3a4b58e834 记录注册表读写不额外拒链的取舍
export/draft/xhs_minitool/registry.rs:模块注释补一段已知取舍,说明这里读写注册表不检查符号链接、与产物/脚本/图标的拒链口径不同,属于已评审并决定保留的行为。
2026-10-06 21:59:17 +08:00
k88936 28d1a97730 记录两个 tab 回合派生暂不合并的原因
view/project-development/export/state/useXiaohongshuTab.ts 与 useTaonierTab.ts:在 turns 派生处补注释,说明这段与另一 tab 的重复是有意保留——两个 tab 以后可能各自订阅不同会话/线程,等形状真分叉再抽公共 helper。
2026-10-06 21:59:11 +08:00
k88936 afe5785f87 修错指令的注释与实现对齐
view/project-development/export/state/xhsMinitoolInstruction.ts:buildXhsMinitoolErrorFixInstruction 的文档注释不再承诺「要求 agent 先复现再修」,改成与实现一致——正文只有 error 现场,怎么修由 agent 自行判断。
2026-10-06 21:59:05 +08:00
k88936 87c0b2a01f 校验脚本只在 JS 上剥注释与字符串
resources/agc-skills/vite-export-xhs-minitool/scripts/validate.mjs:scanCode 对 .js 用剥掉注释/字符串的副本匹配 API 名规则,避免注释里的 fetch( 误报;三条要匹配字符串参数的规则标记为扫原文;外部 URL 始终扫原文,CSS 的 url(https://…) 不再被 // 当行注释抹掉。
resources/agc-skills/vite-export-xhs-minitool/scripts/.validate.test.mjs:补注释/字符串不误报、字符串参数规则仍生效、CSS 与 JS 外部 URL 仍报错三个用例。
resources/agc-skills/manifest.json:同步 xhs 技能指纹并递增版本。
2026-10-06 21:58:59 +08:00
k88936 a94d8c6cff 记录打包遍历与预检口径不一致的取舍
resources/agc-skills/vite-export-xhs-minitool/scripts/pack.mjs:collectZipEntries 补注释,说明它用 statSync 且不跳 SKIP_DIRS、与预检 walkArtifactFiles 的 lstatSync/跳过目录不一致,属于已评审并决定暂不统一的取舍。
resources/agc-skills/manifest.json:同步 xhs 技能指纹并递增版本。
2026-10-06 21:58:02 +08:00
k88936 11b424ceba 封面上传与生成加过时请求保护
components/game-distribution/useGameDistributionPublishForm.ts:新增 coverRequestRef,选择封面与 AI 生成在 await 回来后先比对请求序号再写封面 state,收尾也只由最新一次请求执行;换项目重置时作废在途请求并清掉上传中提示。
tests/gameDistributionPublishForm.test.tsx:补「换项目后旧项目在途的封面上传不再写回新项目」用例。
2026-10-06 21:46:05 +08:00