k88936
|
62947a836f
|
截图按钮文案抽成函数并跟常量对齐
GameDistributionPublishFormView.tsx:新增 resolveScreenshotPickLabel,替掉嵌套三元并把「截图已满 6 张」改成 MAX_AGC_GAME_SCREENSHOTS。
|
2026-10-06 21:05:59 +08:00 |
|
k88936
|
9908e09614
|
发布状态标题抽成单一映射函数
GameDistributionPublishFormView.tsx:新增 resolvePublicationStatusLabel,替掉四层嵌套三元。
|
2026-10-06 21:05:49 +08:00 |
|
k88936
|
1094e4f862
|
截图上限文案改用常量
useGameDistributionPublishForm.ts:超限报错里的 6 改用 MAX_AGC_GAME_SCREENSHOTS,避免与常量脱节。
|
2026-10-06 21:05:32 +08:00 |
|
k88936
|
d8057ab796
|
失败日志去重键带上项目路径
export/draft/xhs_minitool/commands.rs:LAST_FAILURE 的键从命令名改为(命令名, 项目路径),避免不同项目的同一句失败被静默吞掉。
|
2026-10-06 21:05:30 +08:00 |
|
k88936
|
3be99f55b1
|
换项目时回收截图预览地址
useGameDistributionPublishForm.ts:重置效果调用 revokeTrackedObjectUrls,清掉 objectUrlsRef 里累计的截图预览 blob 地址。
|
2026-10-06 21:03:00 +08:00 |
|
k88936
|
03a65e95fc
|
发布前置校验改走统一错误出口
useGameDistributionPublishForm.ts:发布状态未就绪与封面缺少素材三处 setError 改成 reportError,让面板根的发布提示弹窗能显示出来。
|
2026-10-06 21:02:53 +08:00 |
|
k88936
|
50ee440f79
|
换项目时重置发布绑定状态
useGameDistributionPublishForm.ts:重置效果一并清掉 publicationState/publicationBinding/publicationRefreshed/publicationMessage/latestVersionNumber/publishPhase,堵住旧项目绑定在新项目回读落定前可提交的窗口。
|
2026-10-06 21:02:46 +08:00 |
|
k88936
|
3a2a3ec5ab
|
切换项目时关掉导出面板
App.tsx:resetChatState 一并重置 exportPanelOpen,避免面板跨项目切换后重绑到新项目。
|
2026-10-06 21:02:14 +08:00 |
|
k88936
|
22d1efdbb4
|
修掉同步排除注释里写错的常量名
project/filesystem.rs:文档注释把 PROJECT_SNAPSHOT_SYNC_ONLY_EXCLUDED_COMPONENTS 改成实际使用的 PROJECT_DERIVED_EXCLUDED_COMPONENTS。
|
2026-10-06 21:02:09 +08:00 |
|
k88936
|
709b57313d
|
去掉派生路径排除里的逐组件小写分配
project/filesystem.rs:派生目录判定改用 eq_ignore_ascii_case 原地比较,不再为每个路径组件分配一个新 String。
|
2026-10-06 21:02:01 +08:00 |
|
k88936
|
3e6d0f39e5
|
合并 origin/master 到 feat/adapt-xhs-skill:发布入口迁入导出产物面板并吸收发布绑定、内部版本与上传进度
Project CI / Backend tests (pull_request) Failing after 18s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 6m18s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 7m28s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 4m20s
Project CI / Repository checks (pull_request) Failing after 33s
Project CI / Frontend tests (pull_request) Successful in 3m7s
Project CI / AI game creator shell web tests (pull_request) Failing after 2m55s
Project CI / Native shell tests (pull_request) Successful in 8m39s
- 陶泥儿 tab 发布面板去掉前端灰度:删除 readGamePublishAvailability 调用、发布权限占位与对应测试 mock,与 master 删除原生灰度命令保持一致,只在项目清单就绪前显示「正在读取项目清单」
- App.tsx 保留本分支导出产物面板架构,发布入口不再挂 Direct 聊天头;useTaonierTab 收敛 allowed/availabilityPending 状态并同步注释
- 发布表单 hook 合并本分支表单状态与 master 的发布绑定回读、AGC 工程内部版本派生、线上最近提交与上传进度阶段
- GameDistributionPublishFormView 接入发布状态面板、只读「项目版本」标签、发布阶段步骤与「更新游戏」等文案
- 合并发布表单与发布反馈测试:恢复封面/试玩包断言,补 readGameDistributionPublication mock
- agc-skills/manifest.json 取本分支新增的 platform-abstract、vite-export-xhs-minitool 与 master 的三处 sha256,version 提升到 2026-08-26.66
- decision-log.md 保留双方新增条目;技术方案文档补回双方新增章节;玩法链路文档取 master 重写后的发行合同
|
2026-10-06 20:01:16 +08:00 |
|
k88936
|
fba3805af8
|
修掉导出重读里指纹丢失与读失败不清理两个洞
- useXhsMinitoolExport 加 hashPendingRef:指纹读失败后表单已换、基线还欠着,下一次重读跳过早返回把配套指纹补上,不再把旧 baseHash 留给新表单
- 保存命令的返回值直接落定基线并清掉 pending,不必再补读
- 每次内容读成功都在早返回之前清掉读来源的失败(registryMalformed / exportUnavailable),用函数式 setFailure 避免闭包过期;构建类失败不受影响
- 补两条回归测试:指纹失败后重读补上并带回新 baseHash;读恢复后失败就地清掉
|
2026-10-06 19:32:35 +08:00 |
|
k88936
|
7f9c686b34
|
导出产物下载失败不再只留控制台痕迹
- xhsMinitoolDownload 返回 saved/cancelled/failed,调用方能区分用户取消与落盘失败
- ArtifactsPane 失败时在表单上方给一行重试提示,成功与取消保持静默
- 补一条测试:宿主拒绝写盘时提示可见
|
2026-10-06 19:24:26 +08:00 |
|
k88936
|
91b664b66f
|
删掉小红书导出 hook 里无人调用的 runExport
- useXhsMinitoolExport 移除 runExport 与返回项,构建只经 packageAll 到达 buildOnce
- 测试改用 packageAll 驱动构建路径,删掉 runExport 的 mock 与断言
|
2026-10-06 19:24:14 +08:00 |
|
k88936
|
226a339ced
|
聊天头导出入口在回合在途时禁用
- DirectProjectChatHeader 给导出按钮恢复 disabled={busy},与旧发布入口一致
- 设置入口不受影响,禁用样式沿用现有 .project-chat-publish-trigger:disabled
|
2026-10-06 19:23:51 +08:00 |
|
k88936
|
c762960618
|
小红书导出目标条改回一组普通按钮
- TargetTabs 去掉没有配套 tabpanel 的 tablist/tab 角色,容器改 role=group
- 选中态改用 aria-current 表达,Tab/Enter 操作不变
|
2026-10-06 19:23:46 +08:00 |
|
k88936
|
63b7ef3665
|
小红书导出三条读写命令挪到阻塞线程池
- commands 新增 offload:用 tokio::task::spawn_blocking 包住同步文件 IO
- read / readHash / save 三条命令改走 offload,JoinError 收口成 ExportUnavailable
|
2026-10-06 19:23:36 +08:00 |
|
k88936
|
158fae5879
|
小红书注册表保存补上并发窗口的接受说明
- registry::save 在读与写之间加注释:保存由用户手动触发、明知 code agent 在改,接受后写覆盖先写
- 说明不做 CAS 的原因:把 expected_hash 下沉进共享 save 会改所有导出目标的写契约
|
2026-10-06 19:23:29 +08:00 |
|
k88936
|
065a193e4e
|
导出工作目录从索引、checkpoint 与 git 检查中排除
- filesystem 新增 should_skip_project_derived_path(快照口径 + .export),索引改用它
- checkpoint 恢复与清单过滤改用新口径,.export 不再进 checkpoint
- git_inspect 的提交路径校验与工作区路径过滤改用新口径,.export 不再算未跟踪/可提交
- 常量改名 PROJECT_DERIVED_EXCLUDED_COMPONENTS,project_snapshot 测试补双向断言
|
2026-10-06 19:23:14 +08:00 |
|
k88936
|
1897bf54d0
|
小红书工作台顶部槽位改用 if/else 摊开
- ArtifactsPane 把表单 / 读取中 / 读失败留白 / 自动重试的四路链式三元抽成 formSlot,JSX 只剩一个插槽
|
2026-10-06 19:05:22 +08:00 |
|
k88936
|
499b247233
|
小红书工作台左半补发布外链并居中两处行动入口
- export/tabs/xiaohongshu/ArtifactsPane.tsx 新增「前往小红书发布/更新」外链,点击经 opener 插件的 openUrl 交给系统默认浏览器打开小红书创作平台,失败时留 console 痕迹
- 该外链改用主题陶泥儿橙 #c7653d 与常驻下划线,并补齐 hover、active 与键盘焦点态,按下有反馈且不再用蓝色
- 「下载代码包」标签与发布外链各自居中,下载按钮仍与「打包」同宽
|
2026-10-06 19:02:11 +08:00 |
|
k88936
|
b9c0cd369a
|
复制按钮的无障碍名加分隔符
- export/tabs/xiaohongshu/CopyButton.tsx 的 aria-label 在状态词与字段名之间补空格,不再读成「已复制小工具名称」这类连读短语
|
2026-10-06 18:59:34 +08:00 |
|
k88936
|
f27aface7a
|
删除 FormCard 无人传入的 action 扩展点
- export/tabs/xiaohongshu/FormCard.tsx 的 FieldRow 移除 action prop 及其渲染分支与 ReactNode 导入
|
2026-10-06 18:56:44 +08:00 |
|
k88936
|
433baadb4b
|
冲突面板的单选项补上同组 name
- ConflictCard 的 Choice 接收 name(取字段身份),同一字段的两个 radio 成为同一原生单选组,恢复方向键切换与读屏分组播报
|
2026-10-06 18:56:16 +08:00 |
|
k88936
|
01b068decf
|
失败弹窗把按钮文案与点击处理绑在一起
- FailureDialog 的 agentAction 改为 { label, onClick },不再按中文文案反查 onAdapt / onRepair
|
2026-10-06 18:55:56 +08:00 |
|
k88936
|
ee8ad27c2f
|
修掉「帮我填」指令里 JSON 块后的多余逗号
- export/state/xhsMinitoolInstruction.ts 的 buildXhsMinitoolFormFillInstruction 去掉形状示意后的尾随逗号,不再在 JSON 与下一条要点之间留一行 ','
|
2026-10-06 18:55:41 +08:00 |
|
k88936
|
5a202b091a
|
删除无人引用的 XHS_MINITOOL_FIELD_LABELS
- export/state/xhsMinitoolFields.ts 移除与 XHS_MINITOOL_FORM_FIELDS 重复且全仓无引用的标签表
|
2026-10-06 18:55:30 +08:00 |
|
k88936
|
abd27834d9
|
陶泥儿 tab 换项目时重置打包结果与进度
- useTaonierTab 新增以 projectPath 为依赖的 effect,清空 packageResult / progress / blockedMessage,新项目不再复用旧项目的试玩包
|
2026-10-06 18:55:08 +08:00 |
|
k88936
|
6c540e0671
|
陶泥儿打包回来后对账项目路径
- useTaonierTab 新增 projectPathRef 与 isCurrentProject 判据,ensurePackage 的 await 返回后只有仍是当前项目才写 progress / packageResult,失败路径同样对账
|
2026-10-06 18:54:51 +08:00 |
|
k88936
|
b77ebbc1b2
|
PaneButton 尺寸类名改用查表
- export/tabs/common/PaneButton.tsx 用 SIZING_CLASS 映射替换 sizing 的嵌套三元
|
2026-10-06 18:54:12 +08:00 |
|
k88936
|
761dced565
|
PaneButton 语气类名改用查表
- export/tabs/common/PaneButton.tsx 用 TONE_CLASS 映射替换 tone 的嵌套三元
|
2026-10-06 18:53:48 +08:00 |
|
k88936
|
2b8bcd68c5
|
发布主行动按钮文案改用纯函数选路
- GameDistributionPublishFormView 抽出 resolvePublishActionLabel(打包 / 上传 / 生成封面 / 上传截图 / 上传素材 / 常态),替换原来的五层嵌套三元
|
2026-10-06 18:53:32 +08:00 |
|
k88936
|
a3af8a60a4
|
发布表单简介提示语改用纯函数选路
- GameDistributionPublishFormView 抽出 resolveMetadataHint(生成中 / AI 已生成 / 本地兜底),替换原来的三层嵌套三元
|
2026-10-06 18:53:10 +08:00 |
|
k88936
|
49d6f8db2f
|
发布表单登记截图预览地址
- useGameDistributionPublishForm 的 createPanelScreenshotEntry 把生成的 blob 地址加入 objectUrlsRef,删除截图与卸载时的回收分支终于能命中
|
2026-10-06 18:52:50 +08:00 |
|
k88936
|
10ca2341a1
|
发布表单回收被替换或移除的封面预览地址
- useGameDistributionPublishForm 新增 previousCoverRef 与跟随 cover 的 effect,换封面 / 移除封面 / AI 生成覆盖时释放上一张的 blob 地址
|
2026-10-06 18:52:39 +08:00 |
|
k88936
|
f4b1a6ad99
|
打包并发布接住 onEnsurePackage 的 reject
- useGameDistributionPublishForm 的 handlePackageAndPublish 用 try/catch 包住 onEnsurePackage,异常经 reportError 走发布提示弹窗,不再变成未处理的 promise rejection
|
2026-10-06 18:52:09 +08:00 |
|
k88936
|
3061762aaa
|
发布表单换项目时一并重置封面与截图
- useGameDistributionPublishForm 的重置 effect 现在清空 cover / screenshots / 上传缓存,并回收已登记的预览 blob 地址
- 抽出 revokeTrackedObjectUrls 供重置与卸载共用
|
2026-10-06 18:52:01 +08:00 |
|
k88936
|
e96d38a017
|
登录态恢复给服务器偏好读取加超时围栏
- AuthenticatedClient 的 hydrateClientServerSelection 改走 withAuthCheckTimeout,IPC 卡住时不再让界面无限停在「刷新登录状态」
|
2026-10-06 18:51:16 +08:00 |
|
k88936
|
9722b42692
|
小红书导出失败日志按字符数截断
- commands.rs 的 log_failure 落盘前经 bounded_for_log 截到 512 字符,CommandFailed 的 4KB 脚本输出不再整段写进 AppData 日志与去重表
- 新增 bounded_for_log 的短文本与中文边界用例
|
2026-10-06 18:51:02 +08:00 |
|
k88936
|
eee12b2809
|
小红书导出产物判据改用 symlink_metadata
- build.rs 的 conclude 不再跟随符号链接,链接与非普通文件不计入「已产出」
- 新增 a_symlinked_artifact_does_not_count 用例(仅 unix)
|
2026-10-06 18:50:44 +08:00 |
|
k88936
|
dc639d571a
|
小红书导出构建前清掉上一次的产物
- build.rs 的 run 在启动项目脚本前删除 .export/xhs-minitool.zip(不存在则跳过,删不掉则 fail closed)
- 避免 no-op 脚本靠上一轮残留的 zip 被判成功
|
2026-10-06 18:50:21 +08:00 |
|
k88936
|
07cc0aa5fd
|
导出注册表临时文件改用 create_new 打开
- registry.rs 的 write_atomically 不再用会跟随符号链接的 File::create,改用 O_EXCL 打开临时文件,已存在的链接/残留文件直接失败
|
2026-10-06 18:49:56 +08:00 |
|
k88936
|
9c48db76b2
|
导出注册表在 rename 后 fsync 父目录
- registry.rs 的 write_atomically 在原子替换后同步父目录,崩溃时目录条目不再可能回退到旧文件
|
2026-10-06 18:49:45 +08:00 |
|
k88936
|
c9d2ed041b
|
导出注册表把非 UTF-8 内容归入 malformed
- registry.rs 的 load_or_create 单独处理 ErrorKind::InvalidData,返回 RegistryError::Malformed,不再落进通用 Io 被报成路径/权限故障
- 新增 rejects_non_utf8_content_as_malformed 用例
|
2026-10-06 18:49:28 +08:00 |
|
k88936
|
32d77a0ccd
|
导出注册表临时文件名按写入序号唯一化
- registry.rs 的 temp_path 在 pid 之外加入进程内原子自增序号,同一注册表路径的并发写不再共用同一个 .tmp 文件
|
2026-10-06 18:49:00 +08:00 |
|
k88936
|
411771af2f
|
导出入口与面板统一改用裁剪后的项目路径
- App.tsx 新增 exportProjectPath,对 localProject/projectPath 做一次 trim,空白即视作无项目
- onRequestExport 开关与 ArtifactsPanel 的 projectPath 都改用该值,避免纯空白路径照开门
|
2026-10-06 18:48:36 +08:00 |
|
k88936
|
677c477f36
|
修正生成绑定校验脚本头部过期的目录清单
- check-generated-bindings.mjs 文件头从「两套 crate、四个目录」更新为「五个目录」,补上 AGC export/generated
|
2026-10-06 18:48:24 +08:00 |
|
k88936
|
122f8a2c19
|
小红书导出技能:更新 manifest 指纹 (version=2026-08-26.65),修正文档格式错误
|
2026-10-06 18:42:24 +08:00 |
|
k88936
|
c66d1586f4
|
AGC 退役发布表单弹窗外壳,错误统一走发布提示弹窗
- 删除已无现役调用方的 GameDistributionPublishPanel,发布资料表单只保留内联形态
- useGameDistributionPublishForm 去掉 inline 开关与 handleSubmit,onError 改为必填
- GameDistributionPublishFormView 去掉弹窗分支与 open / onClose 入参,只渲染内联布局
- 原专属测试迁移到内联表单并改名为 gameDistributionPublishForm.test.tsx
|
2026-10-06 18:15:35 +08:00 |
|
k88936
|
8a2c09f24a
|
AGC 打包并发布校验前置到点击时并改用发布提示弹窗
- 表单必填项(名称 / 简介 / 封面 / 在途上传)在点击「打包并发布」时先于构建校验,不通过直接弹「发布提示」,不再先弹一次打包进度
- 表单错误统一经 onError 交给面板根已有的 GamePublishBlockedDialog,左栏不再铺内联红字
- 简介兜底改用默认文案,项目 goal 为空不再把入口卡死
- 补齐封面后打包的回归用例,新增「未选封面不打包、不出进度弹窗」用例
|
2026-10-06 18:10:02 +08:00 |
|