k88936
|
bd4801ef80
|
恢复陶泥儿实施计划与里程碑文档
- 从 5e8ecaa35^ 取回被 M4 删除的【实施计划】与【里程碑】陶泥儿导出文件草稿化与发布媒体直传-2026-10-06.md
- 本次起不再按计划 §5.4 在收尾删除计划文档,保留理由记录在 decision-log
|
2026-10-07 10:26:29 +08:00 |
|
k88936
|
5e8ecaa35b
|
回写陶泥儿导出与发布媒体直传文档并删除临时计划
Project CI / AI game creator shell Rust crates (pull_request) Failing after 57s
Project CI / Backend tests (pull_request) Failing after 16s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 6m27s
Project CI / Repository checks (pull_request) Failing after 13s
Project CI / Frontend tests (pull_request) Successful in 2m5s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 5m50s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m30s
Project CI / Native shell tests (pull_request) Successful in 6m1s
- 技术方案/后端契约/玩法链路三份主规范改成当前状态:文件草稿、build:taonier、multipart objectKey 直传与域内公开读
- decision-log 2026-10-06 条目由计划态改写为落地态,含命名约定、硬切、E1、taptap skill-pack 例外
- pitfalls 新增 multipart 幂等摘要、发布账本、skill-pack 红与 zip 存档根入口四条
- 删除临时实施计划与里程碑规范,历史由 Git 保存
|
2026-10-07 01:26:37 +08:00 |
|
k88936
|
afbcc79978
|
陶泥儿产物按平台发行包上限预检
- build.rs 保留 512 MiB 读取安全线,另按 shared-contracts 的 GAME_DISTRIBUTION_MAX_PACKAGE_BYTES(200 MiB)做预检
- 构建收尾与发布读包两处都预检,超限给「精简资源后重新导出再发布」,不再等上传吃服务端 413
- 新增平台上限单测,并锁定读取安全线必须高于平台上限
|
2026-10-07 01:26:24 +08:00 |
|
k88936
|
d28b178c04
|
AGC 真实发布测试迁移到 multipart 媒体合同
- 删除平台素材直传代跑与 coverAssetId 种子,创建游戏/版本改 FormData(metadata + cover part)
- 断言改为创建响应与 frozenMetadata 的 coverObjectKey/screenshots
- 保留分片续传、复用 gameId、重复版本与版本回退等主链证据
|
2026-10-07 01:19:50 +08:00 |
|
k88936
|
307c796f89
|
补齐 jsdom 用例的 localStorage 内存实现
- vitest.config.ts 增加 setupFiles,在 Node 26 + jsdom 未注入 localStorage 时补同形内存实现
- 新增 tests/jsdomLocalStorageSetup.ts,供所有 jsdom 用例共用
- gameDistributionPublish.test.ts 去掉局部 polyfill,改用共享 setup
|
2026-10-07 01:14:07 +08:00 |
|
k88936
|
6ccb9f4571
|
AGC 陶泥儿面板文件草稿化与发布媒体直传
- 新增 export/state/taonier 状态层:字段校验、四命令失败载体、失败分类与 adapt/repair/fill 指令、600ms 自动保存与 2s 轮询
- 新增 tabs/taonier 面板:ArtifactsPane/FormCard/OnlineValuesCard/ConflictCard 与三个对话框,线上值并排显示与沿用动作
- 发布媒体改直传:草稿本地图读字节发 cover/screenshot part,空路径沿用线上 objectKey,幂等摘要纳入图片字节
- 退役 AI 资料建议/封面生成:删前端调用、Rust 命令与注册、api-server 路由与专属 DTO
- 删除旧 PublishPane、GameDistributionPublishFormView、GamePublishBlockedDialog、useGameDistributionPublishForm
- 新增 tests/taonierFields、taonierContract、taonierExport,check-config 与 dto parity 同步
|
2026-10-07 01:12:34 +08:00 |
|
k88936
|
b04aceb57d
|
AGC 陶泥儿打包链路落地与 exports 全退役
- 新增 vite-export-taonier skill:vite.config.taonier.mjs 构建到 dist-taonier,pack.mjs 产出存档根含 index.html 的 .export/taonier.zip
- skill pack 锁步登记:EXPECTED_SKILL_NAMES、AGC_SKILL_PACK_FILES、manifest.json sha 与版本、codex mock 名单
- 新增 export/draft/taonier 文件草稿模块:build:taonier 脚本发现、.export/taonier.json 注册表、四个 tauri 命令与产物读取入口
- 发布暂存改读固定 .export/taonier.zip,删除 phaser/vite 发布门与 exports 打包读取链路
- 删除 exports 初始化目录、exports/README.md 生成与渲染、playtest-package 打包/读取/列举命令
- 生成契约与 prompts 去掉 publish-package artifact 声明,run-trace 白名单与五处排除列表同步
- 同步 ts-rs 生成绑定与 export/generated 行尾空白豁免
|
2026-10-07 00:54:31 +08:00 |
|
k88936
|
eea37f80f1
|
游戏分发真实链路脚本迁移到 multipart 媒体直传
- 12 个 check-game-distribution-* 脚本改用 multipart:metadata + cover/screenshot 二进制 part
- 删除 assetId/assetObjectId 断言与素材库直传前置,公开读改走 media/read-url 与 read-bytes
- media-e2e 负例重写:缺封面、超 6 张、非本作品 objectKey、槽位与 part 数量不匹配
- ratings-e2e 直连 reducer 字段改 cover_object_key/screenshots_json,test-creator-runtime 同步
- .gitattributes 为 export/generated 生成目录豁免行尾空白检查
|
2026-10-07 00:50:19 +08:00 |
|
k88936
|
d202c76099
|
游戏分发发布媒体改 objectKey 与 multipart 直传
- 契约:创建/编辑/建版请求去掉 `coverAssetId`,改为 `coverObjectKey` 与 `screenshots: (string|null)[]`,Rust 与 TS 同步。
- schema:`game_distribution_game` 删除 `cover_asset_id`;创建输入末尾追加 `cover_object_key`/`screenshots_json`;冻结资料截图改为 objectKey 数组并删除 `GameDistributionFrozenScreenshot`;同步迁移登记与生成绑定。
- 授权:删除按 assetId 的公开读授权,新增按 objectKey 的 `get_game_distribution_media_read_access` procedure;公开可见判定抽成 `game_distribution_game_is_publicly_visible`。
- api-server:三条写路径改收 `multipart/form-data`(`metadata` 文本 + `cover` + 重复 `screenshot`),新图直写项目快照桶、沿用图校验归属与数量;新增匿名 `GET /api/game-distribution/media/read-url` 与 `read-bytes`;幂等摘要覆盖图片字节。
- web:发布/编辑客户端改 FormData;封面与截图读取切到新读路由;移除发布前素材登记与 assetId 状态。
- AGC:发布命令先按 objectKey 做存在性校验以保持编译,multipart 直传改造留待 M3。
- 文档:实施计划与玩法链路合同章节同步新的 multipart 字段口径。
|
2026-10-07 00:30:26 +08:00 |
|
k88936
|
77126e06f9
|
抽取对象读签名与同源字节中转公共模块
- 新增 api-server::object_read:签名读地址、过期收敛、同源字节中转与错误映射
- assets.rs 的 read-url/read-bytes 改为复用该模块,授权判定仍留在素材域
- 移除 assets.rs 内重复的常量、作用域枚举与字节中转实现,行为不变
- 过期收敛单测随实现迁到 object_read
|
2026-10-07 00:10:05 +08:00 |
|
k88936
|
2fdf4078d0
|
新增陶泥儿导出与游戏分发媒体直传主规范与里程碑
- AGC 实施计划追加「2026-10-06 陶泥儿导出文件草稿化与游戏分发媒体直传」章节
- 玩法链路新增「游戏分发发布媒体直传合同(2026-10-06)」
- 后端数据契约补充 game_distribution_game 的媒体直传与 schema 变更约束
- decision-log 记录文件草稿、build:taonier/dist-taonier、快照桶+新读路由、硬切、exports 全退役、AI 建议/封面退役
- 新增里程碑规范与实施计划两份 plans 文档
|
2026-10-07 00:05:24 +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 |
|
k88936
|
7703dcc1f4
|
脚本没启动归为宿主侧故障而不是命令失败
export/draft/xhs_minitool/build.rs:conclude 增加 script_launched 判据,用 target_exec != established 区分「根本没跑起来」与「跑了被信号杀掉」;前者报 exportUnavailable,由前端既有路径抛进错误池上报,后者维持 commandFailed。补对应单测。
|
2026-10-06 21:44:17 +08:00 |
|
k88936
|
1ae7ae41c9
|
抽出全屏子页外壳并接入导出面板
components/modal/FullscreenSubpage.tsx:新增共享全屏子页,portal + 焦点陷阱 + role=dialog/aria-modal,Esc 不关闭、只能由内容自己的按钮退出。
components/modal/windowChrome.ts:把标题栏放行判据从 ThemedModal 抽出,供两种模态复用。
components/modal/ThemedModal.tsx:改为引用抽出的判据。
view/project-development/export/index.tsx:导出面板改用 FullscreenSubpage,删掉自写的 portal 包裹。
|
2026-10-06 21:41:52 +08:00 |
|
k88936
|
230c9a2d28
|
打包脚本先校验后落盘
vite-export-xhs-minitool/scripts/pack.mjs:抽出 encodeZip,makeZip 先把条目与字节算完并通过 index.html / 禁止条目 / 体积校验,最后才写 zip,失败时不再留半成品。
scripts/.pack.test.mjs:补测试覆盖 makeZip 内部校验失败时不留 zip。
resources/agc-skills/manifest.json:同步该 Skill 的内容指纹与 pack 版本。
|
2026-10-06 21:39:21 +08:00 |
|
k88936
|
6487b52b31
|
发布弹窗定色提到模块常量
GameDistributionPublishFormView.tsx:封面确认与截图预览两个 panelStyle 提取为模块级常量,不再每次渲染新建对象;按仓库约定保持内联样式,不新建 CSS 文件。
|
2026-10-06 21:37:28 +08:00 |
|
k88936
|
d7ca19c598
|
本机派生目录 .export 只认项目根那一层
project/filesystem.rs:should_skip_project_derived_path 与快照同步判定改为只看第一个路径组件,源码里的嵌套 game/.export 不再被误排。
project_snapshot/tests.rs:补测试区分根 .export 与嵌套 .export。
|
2026-10-06 21:36:45 +08:00 |
|
k88936
|
22ad218dc7
|
构建命令的前后置同步 IO 挪到阻塞线程池
export/draft/xhs_minitool/build.rs:把找脚本、判权限、清旧产物抽成同步的 prepare,连同收尾判产物的 symlink_metadata 一起走 offload。
export/draft/xhs_minitool/commands.rs:offload 放宽到 pub(super),供同级 build 模块复用。
|
2026-10-06 21:35:21 +08:00 |
|
k88936
|
00b8d12d98
|
注册表错误带上底层错误并实现 source
export/registry.rs:新增 RegistryErrorCause,io/serde 失败保留原始错误类型(拿不到类型时用 Message 兜底),RegistryError 与 Cause 都实现 std::error::Error::source,Display 文案不变。
export/draft/xhs_minitool/error.rs:只在命令边界把 cause 转成 String,配合新增测试锁定 io::ErrorKind 可透出。
|
2026-10-06 21:33:58 +08:00 |
|
k88936
|
24dfbd4a55
|
记录注册表自动创建的并发窗口
export/registry.rs:在 load_or_create 注释里写明 NotFound 到原子写入之间被并发覆盖的窗口属于明确接受,与 xhs_minitool::registry::save 的口径一致。
|
2026-10-06 21:32:22 +08:00 |
|
k88936
|
f7cfad4592
|
导出注册表临时文件名加上时间戳
export/registry.rs:temp_path 在 pid 与序号之外再带纳秒时间戳,避免崩溃残骸被同 pid 新进程撞上导致 create_new 误失败。
|
2026-10-06 21:07:27 +08:00 |
|
k88936
|
c02f499d24
|
表单字数上限收成单一常量
export/state/xhsMinitoolFields.ts:14 提成 TEXT_MAX_CHARS,占位文案与 maxChars 共用。
|
2026-10-06 21:07:11 +08:00 |
|
k88936
|
3a8415398a
|
表单计数改成按码点,与宿主校验对齐
xiaohongshu/FormCard.tsx:used 改用 Array.from(...).length,避免补充平面字符被按 UTF-16 码元多算。
|
2026-10-06 21:07:02 +08:00 |
|
k88936
|
f5ec14966c
|
小红书 tab 换项目时清掉草稿与运行提示
export/state/useXiaohongshuTab.ts:新增按 projectPath 的重置效果,清空 draft 与 runtimeNotice。
|
2026-10-06 21:06:55 +08:00 |
|
k88936
|
6af4957fa2
|
陶泥儿 tab 换项目时清掉草稿与运行提示
export/state/useTaonierTab.ts:换项目重置效果补上 setDraft([]) 与 setRuntimeNotice(''),旧项目没发出去的输入不再出现在新项目输入框。
|
2026-10-06 21:06:45 +08:00 |
|
k88936
|
4edbf62c81
|
拒绝没有 type 的伪结构化失败
export/state/xhsMinitoolApi.ts:guardStructuredFailure 在装 wrapper 前校验对象至少带字符串 type,否则原样抛出交给错误池。
|
2026-10-06 21:06:31 +08:00 |
|
k88936
|
c5188d4682
|
小红书发布入口地址收成常量
xiaohongshu/ArtifactsPane.tsx:把创作平台发布页 URL 提到模块常量 XHS_PUBLISH_URL。
|
2026-10-06 21:06:24 +08:00 |
|
k88936
|
99e6bfa139
|
失败弹窗的 agent 按钮改成早返回式赋值
xiaohongshu/FailureDialog.tsx:嵌套三元改成 if 块,保持「文案与 handler 一起定」不变。
|
2026-10-06 21:06:15 +08:00 |
|
k88936
|
30c08272c6
|
复制按钮文案改成状态映射表
xiaohongshu/CopyButton.tsx:用 COPY_STATE_TEXT 查表替掉嵌套三元。
|
2026-10-06 21:06:08 +08:00 |
|
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 |
|