suzmii
|
94cd35e8f7
|
Merge remote-tracking branch 'origin/master' into feat/game-fork
Project CI / AI game creator shell Rust crates (pull_request) Successful in 4m11s
Project CI / Frontend tests (pull_request) Successful in 3m40s
Project CI / Backend tests (pull_request) Successful in 8m55s
Project CI / Repository checks (pull_request) Successful in 8m33s
Project CI / Native shell tests (pull_request) Successful in 10m15s
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 web tests (pull_request) Has been cancelled
# Conflicts:
# apps/ai-game-creator-shell/src/components/game-distribution/useGameDistributionPublishForm.ts
# docs/project-memory/shared-memory/decision-log.md
|
2026-10-07 11:53:17 +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 |
|
suzmii
|
dd9e3b0019
|
族谱:父代/子代可断言区分 + 「只看父代与子代」可取消开关;侧栏卡文案对齐口径
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:08:22 +08:00 |
|
suzmii
|
970dc8e65c
|
feat(游戏共创): 衍生作品授权档位终态——禁止 PUT 修改(新可达码 FORK_AUTHORIZATION_INHERITED → 409)
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
漏洞:继承是「创建时快照等值」,而 PUT 只限方向不限对象 ⇒ 作者可把继承来的 `nonCommercial` 再提成 `full`,
得到比祖先更宽的子作品,把父作品仅在非商用授权下公开的工程内容变成可商用。裁定:衍生作品档位是终态。
- **服务端**:`set_game_distribution_fork_authorization_tx` 在**幂等重放之后、CAS 之前**先查血缘行
(`game_distribution_lineage().game_id().find(...)`),衍生作品(有血缘行)**任何** PUT 都拒绝——含「传同值」
这种幂等重试,客户端不会遇到「有时成功有时失败」的随机性;裁决集中到新纯函数
`resolve_fork_authorization_promotion(has_lineage_row, current, expected, target)`(规则唯一实现,事务不再自己比
CAS / 不再出现 `can_promote_to`)。
- **新稳定错误码**:`FORK_AUTHORIZATION_INHERITED` → **409**;模块 `Display` 产出 `"{CODE}: 衍生作品的共创授权由
父作品继承,不能自行修改"`;api-server `FORK_` 映射登记;纳入 `fork_error_codes_are_reachable_from_module_messages`
枚举(状态码 + 稳定码),并保留「未登记码退化成 FORK_ERROR」的反证。
- **母版不变**:只升不降(可跳级)+ CAS + 幂等重放 + 未知档位 400 + 非 owner 403 全部照旧。
- **无 schema/契约形状变更**(无列/表/索引/DTO 新字段)。
- **测试**:新增 5 组衍生矩阵(同值 / 再提一级 / 终态再传同值 / 期望值过期 / 期望值与当前都不符 → 全 409 + 稳定码)、
母版提升与 CAS 语义回归、码前缀与可达性枚举扩展、以及「血缘行判定早于 CAS、事务不再自比 CAS」的结构断言。
**Rust 侧原本没有任何「衍生 PUT 成功」的断言可改**(已 grep 核对:该路径此前只有 401/400 信封用例),未删除或
弱化任何既有断言;断言旧语义的是 `scripts/check-game-distribution-lineage-e2e.mjs` 与
`scripts/capture-game-lineage-visual.mjs`(属其它 owner,本轮未改,已在报告里点名需其把衍生提升步骤改成「必被拒」)。
- **文档**:技术方案 §2.3(母版 vs 衍生两档 + 状态机只发生在母版行)、§2.6 时序图、§3.3 状态表、§3.4(PUT 行、
POST /games 行、lineage 行)、§3.9 新增「授权终态」补充与 §5.5 实施证据;并写明三件口径:**累计世代数由前端自算**
(子树最大代际 − 本作品代际,根有 3 层后代则为 3;服务端不加字段)、**changeSummary 已在版本摘要 payload 上**
(族谱面板只对选中节点查一次公开详情,不做 N+1、不给节点贴字段)、**衍生作品不会继承到 `forbidden`**
(父为 forbidden 时不允许共创,根本产生不了衍生作品)。decision-log 追加 2026-10-06 决策条。
门禁:wasm build 0;`cargo check --all-targets` 0;`cargo test -p module-game-distribution` **134 passed**;
`cargo test -p spacetime-module` **305 passed / 1 ignored**;`cargo test -p spacetime-client` 43 passed;
`cargo test -p api-server game_distribution` 107 passed;`SPACETIME_SCHEMA_BASE_REF=9f4c7d76 npm run check:spacetime-schema`
0(98 表);DTO parity 0(66 组 / 17 构建器 / 15 手拼类型);`check:encoding` 0(5544 files);
`cargo fmt --all --manifest-path server-rs/Cargo.toml -- --check` 0;`git diff --check` 0。
|
2026-10-06 18:32:14 +08:00 |
|
lhk229
|
256e6fe346
|
清理已合入的GameAgent时间上限临时文档
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 6m48s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 7m28s
Project CI / Backend tests (pull_request) Successful in 9m21s
Project CI / Frontend tests (pull_request) Successful in 3m41s
Project CI / AI game creator shell web tests (pull_request) Successful in 3m28s
Project CI / Repository checks (pull_request) Successful in 7m2s
Project CI / Native shell tests (pull_request) Successful in 8m45s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 7m15s
Project CI / AI game creator shell Rust crates (push) Successful in 4m34s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 6m15s
Project CI / Backend tests (push) Successful in 8m36s
Project CI / AI game creator shell web tests (push) Successful in 3m48s
Project CI / Native shell tests (push) Successful in 9m30s
Project CI / Repository checks (push) Successful in 7m41s
Project CI / Frontend tests (push) Successful in 2m57s
删除已完成的里程碑规范与实施计划
移除主规范中的临时文档链接,保留现行合同与验证边界
|
2026-10-06 11:17:10 +01:00 |
|
lhk229
|
9f1c5df446
|
规划移除GameAgent宿主运行时间上限 (#652)
Project CI / AI game creator shell Rust crates (push) Has been cancelled
Project CI / Backend tests (push) Has been cancelled
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 / 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: #652
Co-authored-by: lhk <ink29535@proton.me>
Co-committed-by: lhk <ink29535@proton.me>
|
2026-10-06 18:13:39 +08:00 |
|
suzmii
|
512bbb7a62
|
feat(游戏共创): 衍生作品创建时自动继承父作品授权档位(客户端不可另选)
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 7m9s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 4m3s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 5m46s
Project CI / Frontend tests (pull_request) Successful in 3m11s
Project CI / Native shell tests (pull_request) Failing after 3m18s
Project CI / AI game creator shell web tests (pull_request) Failing after 1m20s
Project CI / Repository checks (pull_request) Successful in 6m4s
Project CI / Backend tests (pull_request) Successful in 8m2s
对齐需求文档 revision 1554「授权设置区:自动继承父作品授权」(被划掉的那句「可收窄、不可放宽」不做)。
- **口径**:衍生作品创建时 `fork_authorization` **直接取父作品当时的档位**(创建时快照),客户端传值一律
**忽略且不报错**(旧客户端会惯常带默认值);母版不变(按请求值,缺省 `forbidden`,未知档位仍失败关闭);
收窄入口不做;**PUT 提升接口语义未改**(见下)。
- **落点**:`resolve_game_distribution_fork_declaration_tx` 原本就在父行上判「存在/未软删/已公开/非禁止/来源版本
等于父当前公开版本」,现在把父档位一并回传(`(root, generation, ForkAuthorization)`);新增纯函数
`resolve_game_distribution_creation_fork_authorization(parent, requested)`:有父 → 父档位,无父 → 解析请求值
(未知 → `FORK_AUTHORIZATION_UNKNOWN`);创建事务里把血缘解析挪到授权裁决之前,新行写裁决结果。
- **无 schema / 无契约形状变化**:`GameDistributionCreateGameRequest.forkAuthorization` 保留(非 Option +
`serde(default)` 未动 ⇒ 幂等摘要不变);表列、client record、快照均无字段增删。
- **文档**:技术方案 §2.3(授权模式 + 时序图两条继承边)/§2.4/§3.2.1/§3.4 `POST /games` 行/§3.9 补充/新增 §5.3
实施证据/§7 第 2 条(待拍板 → 已定口径并注明收窄不做);数据契约 `game_distribution_game` 授权条;共创授权与
血缘里程碑(依赖决策/验收第 1 条/实施记录);decision-log 新增 2026-10-06 决策条。
- **测试**:spacetime-module +7(继承矩阵:父 full/nonCommercial × 请求 forbid/nonCommercial/full/空串 一律落
父档位;母版按请求值;未知档位失败关闭;以及「血缘解析返回父档位 + 裁决排在解析之后且写库之前」的结构断言)。
Rust 侧原本**没有**断言「衍生默认 forbidden」的用例(已 grep 核对),因此没有为了让测试过而弱化任何断言。
门禁:`SPACETIME_SCHEMA_BASE_REF=9f4c7d76 npm run check:spacetime-schema` 0(98 表);`cargo check --all-targets` 0;
`cargo test -p module-game-distribution` 119 passed;`cargo test -p spacetime-module` **301 passed / 1 ignored**;
`cargo test -p api-server game_distribution` 104 passed;DTO parity 0(62 组 / 17 构建器 / 15 手拼类型);
`check:encoding` 0(5535 files);`cargo fmt --all --manifest-path server-rs/Cargo.toml -- --check` 0;`git diff --check` 0。
**待你拍板(只报不改)**:继承是「创建时快照 + 等值」,而 PUT 只限制方向不限制对象 ⇒ 衍生作品作者仍可把继承来的
档位再往上提,得到比祖先更宽的子作品,「不可放宽」会被绕过。选项:① 保持现状(PUT 对衍生作品也生效);
② 禁止对衍生作品 PUT 提升(档位只由继承决定;需新增「该 game 无血缘行」判定 + 稳定错误码,并同步文档与前端入口)。
**需其它 owner 同步**(我未改,属其文件):`scripts/check-game-distribution-lineage-e2e.mjs`(richB1/richC1/richD
从 `forbidden` 提升的前置假设已不成立)、`scripts/capture-game-lineage-visual.mjs`(固定
`expectedForkAuthorization: 'forbidden'` 的造树与断言)。
|
2026-10-06 17:39:35 +08:00 |
|
suzmii
|
eeb101458a
|
Merge remote-tracking branch 'origin/master' into feat/game-fork
Project CI / Backend tests (pull_request) Failing after 34s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 7m27s
Project CI / Native shell tests (pull_request) Failing after 2m46s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 5m58s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 4m23s
Project CI / AI game creator shell web tests (pull_request) Failing after 45s
Project CI / Frontend tests (pull_request) Successful in 2m24s
Project CI / Repository checks (pull_request) Failing after 1m1s
# Conflicts:
# apps/ai-game-creator-shell/src-tauri/src/game_distribution_publish.rs
# apps/ai-game-creator-shell/src/components/game-distribution/GameDistributionPublishPanel.tsx
# apps/ai-game-creator-shell/tests/gameDistributionPublishPanel.test.tsx
# docs/【后端架构】server-rs与SpacetimeDB数据契约-2026-05-15.md
# package.json
# packages/shared/src/contracts/gameDistribution.ts
# scripts/check-game-distribution-dto-parity.mjs
# server-rs/crates/api-server/src/modules/game_distribution.rs
# server-rs/crates/module-game-distribution/src/errors.rs
# server-rs/crates/module-game-distribution/src/lib.rs
# server-rs/crates/shared-contracts/src/game_distribution.rs
# server-rs/crates/spacetime-client/src/active.rs
# server-rs/crates/spacetime-client/src/active/mapper.rs
# server-rs/crates/spacetime-client/src/active/mapper/game_distribution.rs
# server-rs/crates/spacetime-client/src/game_distribution.rs
# server-rs/crates/spacetime-client/src/module_bindings.rs
# server-rs/crates/spacetime-client/src/module_bindings/game_distribution_game_snapshot_type.rs
# server-rs/crates/spacetime-client/src/module_bindings/game_distribution_game_type.rs
# server-rs/crates/spacetime-module/src/game_distribution.rs
# server-rs/crates/spacetime-module/src/migration.rs
# src/components/game-distribution/GameDetailPage.tsx
# src/components/game-distribution/GameDistributionPages.test.tsx
# src/components/game-distribution/GamePlayPage.tsx
# src/components/platform-entry/PlatformEntryActiveFlowShell.tsx
# src/services/gameDistributionClient.test.ts
# src/services/gameDistributionClient.ts
|
2026-10-06 16:10:52 +08:00 |
|
suzmii
|
f0cad9dddc
|
合并 origin/master(52c83cc2a,248 个提交)到 feat/game-purchase
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 5m28s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 7m26s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 4m41s
Project CI / AI game creator shell web tests (pull_request) Successful in 3m56s
Project CI / Backend tests (pull_request) Successful in 9m4s
Project CI / Repository checks (pull_request) Successful in 7m13s
Project CI / Native shell tests (pull_request) Successful in 10m16s
Project CI / Frontend tests (pull_request) Successful in 2m26s
- 同步 master 侧 248 个提交:会员与泥点计费(PR #588 / #603)、创作者主页与关注粉丝(PR #638)、运行页刷新真重载(PR #640)、AGC 模板 templateVersion 递增(PR #643)等;确认 master 未触碰发行网关与 `api-server/src/modules/game_distribution.rs`。
- 冲突 1(server-rs/crates/module-runtime/src/domain.rs:1157-1162)`RuntimeProfileWalletLedgerSourceType` 两侧各自在末尾追加变体:保留 master 的 `MembershipUpgradeGrant` 为索引 16(线上已落库口径),本分支 `GamePurchase` 顺延为索引 17,并保留其「每账号每游戏一次扣费」注释。
- 冲突 2(server-rs/crates/module-runtime/src/domain.rs:1184-1188)`as_str()` 同时保留 `membership_upgrade_grant` 与 `game_purchase` 两个分支。
- 冲突 3(server-rs/crates/spacetime-client/src/active/mapper/runtime_profile.rs:95-101)bindings→领域枚举映射同时保留 `MembershipUpgradeGrant` 与 `GamePurchase` 两支,按新索引顺序排列。
- 冲突 4(server-rs/crates/spacetime-client/src/module_bindings/runtime_profile_wallet_ledger_source_type_type.rs:43-47)生成枚举按模块源码顺序合并为 …`MembershipUpgradeGrant`、`GamePurchase`;随后 `npm run spacetime:generate` 复核该文件与生成结果逐字节一致。
- 冲突 5(server-rs/crates/api-server/src/admin.rs:4849-4853)sats 索引映射改为 `16 => membership_upgrade_grant` 与 `17 => game_purchase` 两条并存。
- 冲突 6(server-rs/crates/api-server/src/admin.rs:6368-6461)索引断言并入 master 的 `[16] => membership_upgrade_grant`,并把 master 的「17 尚未映射」占位断言替换为 `[17] => game_purchase`;本分支的后台消耗统计两个用例原样保留。
- 冲突 7(server-rs/crates/api-server/src/runtime_profile.rs:219-226)来源文案格式化同时保留 `MembershipUpgradeGrant` 与 `GamePurchase` 两支,注释随 `GamePurchase` 保留。
- 冲突 8(docs/project-memory/shared-memory/decision-log.md:3-24)两条决策记录并列保留:本分支 2026-10-05「播放会话前缀在三处入口清空 Cookie」在前,master 2026-10-03「每日免费发放额为 0 时前端隐藏该池」在后。
- 保住 master 侧:发行响应 ETag/304/gzip(`release_asset_response_with_cache` 五参形态与 `release_asset_etag` / `if_none_match_matches` / `accepts_gzip_encoding` / `gzip_release_asset` / `release_asset_not_modified_response`)、共享加载面 `PlatformGameLoadingSurface` 及其使用方、三池钱包与会员档位目录改造。
- 保住本分支侧:付费作品 404 守卫(`price_mud_points > 0` 且位于 `load_package` 之前)、购买与播放会话网关路由、nginx×3 / Pingora / Vite 的播放会话 Cookie 清空与 `nginx-route-parity.matrix.json` 登记、viewer 感知公开详情、后台审核价格、`PlatformGamePricingField` 共享定价组件与两端接入、AGC 项目版本只读 + 平台派发下一版本号、schema 与迁移白名单、钱包来源 `game_purchase`。
- 验证:`git merge-base --is-ancestor origin/master HEAD` 返回 0;`check:encoding`、`check:doc-index`、`check:spacetime-schema`、`check:server-rs-ddd`、`check:rustfmt`、`check:npm-workspaces`、`check:game-distribution-dto-parity`、`check:game-distribution-price-limit-parity`、`check:pingora-route-parity`、`check:nginx-spa-routes`、根/admin-web/AGC typecheck、`git diff --check` 全绿。
- 测试:`cargo test -p module-game-distribution` 30 passed,`cargo test -p api-server game_distribution` 61 passed,`cargo test -p spacetime-module game_distribution` 7 passed;定向 vitest 28 个文件 252 个用例全通过。
- `npm run spacetime:generate` 除 11 个 procedure 文件的纯空白格式差异外无任何语义改动(`git diff -w` 为空),已保留 master 的生成产物形态,提交内无 schema/绑定语义变化。
|
2026-10-06 13:12:32 +08:00 |
|
suzmii
|
2a04f293b1
|
Merge remote-tracking branch 'origin/master' into feat/game-fork
Project CI / AI game creator shell Rust crates (pull_request) Successful in 4m25s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 7m18s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 6m31s
Project CI / Frontend tests (pull_request) Successful in 2m38s
Project CI / Native shell tests (pull_request) Failing after 2m52s
Project CI / AI game creator shell web tests (pull_request) Failing after 1m29s
Project CI / Backend tests (pull_request) Successful in 7m44s
Project CI / Repository checks (pull_request) Successful in 5m37s
|
2026-10-06 12:24:10 +08:00 |
|
kdletters
|
3acfe4a352
|
继续收敛项目快照登记错误
保留快照工作区 IPC 失败的脱敏正文
补充快照登记日志回归验证
|
2026-10-06 11:05:45 +08:00 |
|
kdletters
|
86d68cffab
|
继续收敛资源预览具体错误
保留模型 WebGL、素材 IPC 和图片读取预览正文
在降级卡面与导入预览中展示脱敏原因
|
2026-10-06 11:02:58 +08:00 |
|
kdletters
|
3fbdca6b8b
|
继续收敛发布面板价格查询错误
保留封面生成价格查询的脱敏正文
在确认弹窗展示价格读取失败原因
|
2026-10-06 10:58:45 +08:00 |
|
kdletters
|
153988b3df
|
补充发布账本损坏错误验证
验证损坏幂等账本不会静默生成新键
|
2026-10-06 10:56:50 +08:00 |
|
kdletters
|
deb89e038e
|
继续收敛首页项目 revision 读取错误
保留建项和打开项目 revision IPC 失败正文
|
2026-10-06 10:52:36 +08:00 |
|
kdletters
|
482961d1c3
|
继续收敛插件 stderr 错误
保留有界脱敏的插件进程 stderr
退出状态同时显示退出码和插件正文
|
2026-10-06 10:49:16 +08:00 |
|
kdletters
|
052f679965
|
继续收敛插件宿主进程错误
保留插件工作区扫描与进程状态读取错误
保留插件停止 kill/wait 错误并修正主动终止退出码判定
|
2026-10-06 10:43:35 +08:00 |
|
kdletters
|
823be92284
|
继续收敛账本与工作区偏好读取错误
区分发布账本与工作区偏好文件缺失和损坏
让建项目录保留偏好读取失败正文
|
2026-10-06 10:37:52 +08:00 |
|
k88936
|
796cf9843c
|
Merge remote-tracking branch 'origin/master' into feat/pricing-plan
Project CI / AI game creator shell Rust crates (pull_request) Successful in 6m0s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 6m43s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 7m42s
Project CI / Frontend tests (pull_request) Failing after 1m16s
Project CI / Backend tests (pull_request) Successful in 8m51s
Project CI / AI game creator shell web tests (pull_request) Successful in 3m34s
Project CI / Repository checks (pull_request) Successful in 5m34s
Project CI / Native shell tests (pull_request) Successful in 7m18s
# Conflicts:
# docs/project-memory/shared-memory/decision-log.md
|
2026-10-06 10:14:15 +08:00 |
|
suzmii
|
0d0166c2d9
|
feat(游戏共创): 后台读取主题成员名单(含草稿/归档主题与不可见成员 + 可见性列)
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 / 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 Rust crates (pull_request) Has been cancelled
Project CI / Backend tests (pull_request) Has been cancelled
Project CI / AI game creator shell web tests (pull_request) Has been cancelled
缺口:后台原先只能借**公开投影** `GET /api/game-distribution/themes/{themeId}` 列成员,而公开投影只服务
`published` 主题 ⇒ **草稿 / 已归档主题在后台看不到成员名单**,运营没法在发布前核对。
新增 `GET /admin/api/game-distribution/themes/{theme_id}/members?limit=&cursor=`:
- **鉴权照既有两层**:路由挂既有 admin 支的 `route_layer(require_admin_auth)`,handler 取
`Extension<AuthenticatedAdmin>`(未登录/失效 → 401 `UNAUTHORIZED`、非 admin → 403,同组同码同形);
模块侧 procedure 先跑 `require_editor_generation_runtime_service_identity`(照 `033e3aa79` 五条写接口)。
- **返回全部成员行,不套公开可见性过滤**,且**不要求主题已发布**(`draft` / `archived` 照常可读;
只有主题真的不存在才 404 `THEME_NOT_FOUND`)。响应:
`{ themeId, totalMembers, members: [{ rootGameId, title, sortOrder, createdAt, visible, visibility }], nextCursor }`。
- **两个可见性字段刻意独立**:
· `visible` = 「公开侧此刻会不会出现」,**复用** `game_distribution_theme_member_visible`(未删 + 已公开
+ 有当前公开版本),不另写第二套判定;
· `visibility` = 更细状态(新纯函数):游戏行不存在 → `missing`(优先于 `deleted`),软删除行 → `deleted`,
否则原样透传游戏行 `visibility`(`published` / `unpublished` / `suspended`)。
因此 `visibility == "published"` 但无当前公开版本时 `visible = false` ——运营能看出「公开了但没公开版本」;
三处钉住这个组合(纯函数单测、api-server payload 单测、事务结构断言)。
- **排序与分页照既有口径**:复用 `sort_theme_members`(`sort_order` 升序 + 成员 id 兜底)+ 新增
`page_admin_theme_members`;`limit` 缺省 20 / 上限 50 / `0` 取默认 / 超界截断(同一归一化);
游标 `"{sortOrder}:{memberId}"`,解析**只委托** `parse_game_distribution_theme_cursor` ⇒ 非法游标仍是
上一轮刚修好的**可达** `THEME_INVALID_CURSOR`(不另造一个不可达码);`totalMembers` 是成员**行**总数,
切页前算,不受分页影响。
- **契约与登记**:`packages/shared/src/contracts/gameDistribution.ts` 新增
`GameDistributionAdminThemeMemberRow` / `…ListResponse` / `…MemberVisibility`;parity 登记
`TS_ONLY_TYPES` +3、`RESPONSE_BUILDERS` +2(列表响应与单条成员各一条,条目形状有独立证据);api-server
用命名构建器(不内联 `json!`)。
- **测试**:module-game-distribution +5 条纯函数(`missing` 优先于 `deleted`、三类不可见各一条并断言
`visible`/`visibility` 组合、`published` 无公开版本 ⇒ `visible=false`、游标委托共享实现、翻页不重不漏、
末页 null、复用共享比较器与同一归一化);spacetime-module +1 并扩 2(结构断言:走主题索引、不套公开可见性
过滤、不复用「只取可见成员」的助手、不自写排序、不删行、`totalMembers` 在切页前取);spacetime-client +1
mapper(行总数与游标透传、两个可见性字段不互相推导、空名单是正常结果);api-server 例(401/403、草稿主题
可读、含不可见成员仍返回、`totalMembers` 不受分页影响、limit 缺省与截断、非法游标 → 400 `THEME_INVALID_CURSOR`、
主题不存在 → 404)。
- **文档**:技术方案 `§3.10.8`(新行 + `visible`/`visibility` 语义 + 「草稿也能读」的理由)与 `§3.4` 后台接口表;
里程碑(后台路由清单、实施清单、验收与测试清单,原「只能借公开投影」的留白项标记为已落地)。
- **生成绑定**:新增 4 个 `admin_theme_member_list*` / `list_admin_…_procedure` 生成文件 + `module_bindings.rs`
入口;wire format 有新增(新 procedure/结果类型)⇒ 部署需重新 publish 模块。
门禁:wasm build 0;`cargo check --all-targets` 0;`cargo test -p api-server game_distribution` **89 passed**;
`cargo test -p module-game-distribution` **106 passed**;`cargo test -p spacetime-module` **287 passed** / 1 ignored;
`cargo test -p spacetime-client` 39 passed;DTO parity 0(58 组 / **17** 构建器 / **15** 手拼类型);
`check:spacetime-schema` 0(96 tables);`check:encoding` 0(5424 files);`cargo fmt --all -- --check` 0;
`git diff --check` 0。
不在本提交内(属另一个 session 的文件,工作区里由我的子代理顺带做了**纯新增性**改动,未提交):
`apps/admin-web/src/api/adminGameThemeTypes.ts` 增加了三个指向共享契约新类型的别名 + 一段注释 —— 与该 session
「登记好之后改回引用共享契约」的计划一致,交由其 review / 提交(或直接删掉其本地重复定义)。
|
2026-10-06 04:28:39 +08:00 |
|
suzmii
|
ce614d59c1
|
feat(游戏共创): 主题详情 rootsTruncated 信号(memberCount 报真实可见成员数)
Project CI / AI game creator shell Rust crates (pull_request) Successful in 6m1s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 7m10s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 7m58s
Project CI / Backend tests (pull_request) Successful in 9m10s
Project CI / Frontend tests (pull_request) Successful in 2m58s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m32s
Project CI / Native shell tests (pull_request) Successful in 6m37s
Project CI / Repository checks (pull_request) Successful in 4m55s
裁定(与族谱 `truncated` 同约定):`memberCount` = **真实可见成员数**(不受展示上限污染),新增布尔
`rootsTruncated`,**仅当 `roots` 被 50 上限截断时为 true**。此前两个数被同一个 50 上限截断 ⇒ 可见成员
> 50 时静默截断,客户端既看不到全部树、也拿不到任何信号。
- 纯函数:`game_distribution_theme_roots_truncated(visible_member_count, returned_root_count)`
(相等 / 回传更多 ⇒ false;后者是防御性口径:两组数字不同源时不得凭空报「还有更多」)。
- 契约:`GameDistributionThemeDetail` 加 `roots_truncated`(serde camelCase ⇒ `rootsTruncated`),
TS 镜像同步;parity `public_theme_detail_payload.mustEmit` 6 键 → **7 键**。
- 事务:`member_count` 走可见成员清单的 `len()`(**不再**经 `page_theme_members` 与上限),`roots` 仍是
同一清单排序后取前 50,`rootsTruncated` 由纯函数算出(不写死「>50 就 true」——阈值与上限是两个
独立事实);列表入口共用同一计数函数 ⇒ 同一主题在列表与详情里不会报出两个 `memberCount`。
- api-server:`public_theme_detail_payload` 增加 `rootsTruncated`;形状单测 6 → 7 键,并加
`memberCount=120 / roots=1 / rootsTruncated=true` 用例,证明两个键口径独立。
- 结构断言同步修正:列表侧原「成员数与 roots 共用同一上限」改为「成员数数的是全部可见成员(断言
源码里不含切页函数与上限常量)」;详情侧改为「必须调用共享纯函数 + 不得再恒等 `roots.len()` +
该字段必须进入返回值」。
- 生成绑定:`module_bindings/game_distribution_theme_detail_result_type.rs` 手改后用临时 out-dir 重跑
`spacetime generate --lang rust` 逐字节校对一致。**wire format 变更 ⇒ 部署需重新 publish 模块**
(客户端绑定已同步)。
- 文档:技术方案 §3.4 / §3.10.6 / §3.10.9(原「已知限制·三个备选待拍板」→ 已定口径)、里程碑
(依赖、接口表、验收标准、纯函数表、测试清单、待确认项)、以及数据契约文档里那句「主题详情的
roots 与列表的 memberCount 永远一致」(本改动已使其为假)。
门禁:wasm build 0;`cargo check --all-targets` 0;`cargo test -p api-server game_distribution` 86 passed;
`cargo test -p module-game-distribution` **101 passed**;`cargo test -p spacetime-module` 286 passed /
1 ignored;DTO parity 0(58 组 / **15** 构建器 / 12 手拼类型);`check:spacetime-schema` 0(96 tables);
`check:encoding` 0(5420 files);`cargo fmt --all -- --check` 0;`git diff --check` 0。
遗留(不在本仓可改范围,需前端 session 跟进):`src/services/gameDistributionClient.ts` 有自己一份主题
详情本地类型与 normalize,会丢弃 `rootsTruncated`(约 3 行小改),因此网页主题页暂时拿不到截断信号;
admin-web 走共享契约类型,后台侧即时生效。
|
2026-10-06 04:09:45 +08:00 |
|
suzmii
|
09a1cf5497
|
docs(游戏共创): 共创主题文档回填(§3.4 接口表 / §3.10 实现状态 / 里程碑 Status 与验收)
Project CI / AI game creator shell Rust crates (pull_request) Successful in 5m57s
Project CI / Frontend tests (pull_request) Has been cancelled
Project CI / Repository checks (pull_request) Has been cancelled
Project CI / Backend tests (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 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 / Native shell tests (pull_request) Has been cancelled
服务端三块(`2fa201e0d` 模型与纯函数、`742723a58` 公开读、`033e3aa79` 后台写)已落地,本次把文档从「只落设计」补齐到「服务端已实现」,并写死一条已知限制。
- **技术方案 `§3.4`**:新增 5 条接口行(真实路由/鉴权/错误码/字段名均以 `git show` 核对代码为准,非猜测)——公开 `GET /api/game-distribution/themes`(匿名 + `no-store`;只含 `published`;limit 缺省 20 / 上限 50 / 超界截断;游标 `"{createdAtMicros}:{themeId}"`;非法游标 400;末页 `nextCursor: null`;`memberCount` = 公开可见成员数)、`GET /api/game-distribution/themes/{themeId}`(顶层扁平 `{themeId,name,summary,badge,memberCount,roots}`;`roots` 复用公开目录同一份投影;不存在/draft/archived → 404 不返回空壳;已发布空成员 → 200 + 空 `roots`),以及 `GET /games/{gameId}` 的 `themes` 增量(匿名与登录都发、空数组恒发;先取根再按根反查 ⇒ 第 N 代作品也能跳主题页);后台 5 条(`require_admin_auth` + `AuthenticatedAdmin`,未登录/失效 401 `UNAUTHORIZED`、非 admin 403;创建与编辑要求 `Idempotency-Key`,同键重放 `replayed: true`、同键换请求 409 `THEME_IDEMPOTENCY_CONFLICT`;成员增删**不要求**幂等键(确定性主键天然幂等,删不存在也 200);非根成员 409 `THEME_MEMBER_NOT_ROOT`;后台列表含 draft/archived、limit 缺省与上限 200、无游标;`theme_id` 服务端生成 `theme-{uuid}`)。
- **`§3.10`**:各小节「本轮实现 / 留白」标注更新为现状(服务端已实现;公开前端与后台 UI 仍留白);`§3.10.6`/`§3.10.9` 明确写下**已知限制**——主题详情 `roots` 沿用页上限 **50** 且 `memberCount == roots.len()`,可见成员 > 50 时会**静默截断且没有「还有更多」标志**,三个备选(去上限 / 给成员加游标 / `memberCount` 报真实可见数)待拍板,本轮不改契约。
- **`§7`**:第 3 条(共创主题)改为「设计已采纳 + 服务端已实现」,仍待拍板收敛为两条:① 主题级排序口径(公开列表当前按 `created_at` 倒序 + `themeId` 兜底;若要按运营 `sort_order` 展示需改游标格式并同步前端);② 上述 `roots` 50 上限行为。
- **里程碑文件**:`Status` 由 `proposed` → 「服务端已实现(附四个提交号);公开前端与后台管理 UI 待做」,Version 1.0 → 1.1,新增「已落地提交」行;实施清单 A–F 标注已落地提交、G 标未做(待前端)、H 分「已落地层 / 未做层」、I 补执行状态;**验收标准勾 17/19**(第 17 条公开前端、第 18 条 SPA 路由门禁留空并注「等前端」);文末写明「dev 栈端到端整链未跑(`scripts/check-game-distribution-theme-e2e.mjs` 未创建),依赖真实库存的运行时分支目前只到单元/结构/映射层」。
- **数据契约文档**:两张主题表小节的「写入路径属后续里程碑」改为现状(读/写 procedure 与事务名),表结构描述未动。
- **门禁**:`check:doc-index` 0(252 份 Markdown,current=121 / historical=15 / review=1);`check:encoding` 0(5414 files);`git diff --check` 0。
- **环境限制(标注,非绿)**:`check:generated-bindings` 本机 `EXIT=1`,原因是 `apps/ai-game-creator-shell/src-tauri/build.rs:167` 校验随包资源时缺 `bin/win-x64/agc_godot_editor.dll`(需先跑随包资源准备步骤)——纯环境前置,与本次只改 `docs/**` 无关;该检查的 AGC 段本地从来跑不了(CI 绿)。
|
2026-10-06 03:38:11 +08:00 |
|
kdletters
|
28d10394e0
|
继续收敛发布构建预检错误
区分 package.json 与 package-lock.json 缺失和读取解析失败
保留发布工作区相对路径与底层正文
|
2026-10-06 02:08:07 +08:00 |
|
kdletters
|
388d0d97a8
|
继续收敛认证订阅与资源编辑正文
让认证订阅 IPC 失败传到登录错误出口
保留资源编辑上游正文读取与编码错误
补充认证与资源编辑定向验证
|
2026-10-06 02:02:35 +08:00 |
|
kdletters
|
66d5b91aad
|
继续收敛认证与资源编辑错误
保留认证恢复与认证状态订阅失败正文
保留资源编辑上游正文读取和编码错误
补充 fixture 失败边界记录
|
2026-10-06 02:00:15 +08:00 |
|
kdletters
|
c86b3bc698
|
继续收敛本地资源与模型记录错误
保留资源元数据和 data URL 解码正文
保留 External Editor binding 与模型记录读取解析原因
|
2026-10-06 01:52:10 +08:00 |
|
kdletters
|
dcf5dad4b1
|
继续收敛受控命令进程错误
保留 leader 身份读取和进程组终止具体原因
保留主进程 kill、wait 与兜底终止正文
|
2026-10-06 01:48:04 +08:00 |
|
kdletters
|
b3b568385c
|
继续收敛浏览器与素材任务错误
保留浏览器进程收割和清理阶段正文
保留 External Editor 凭据解析与保存错误
区分生成任务清单读取失败与未初始化状态
|
2026-10-06 01:44:11 +08:00 |
|
suzmii
|
063c04a1b3
|
docs(游戏共创): 共创主题设计定稿(§3.10 + 里程碑《共创主题与作品树-2026-10-06》)
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
需求形态(飞书):共创 Tab 下有多个「共创主题」,点进去是一棵(或一组)作品树;**主题由平台/运营命名,不由根作品决定**;作品在游戏 Tab 里仍作为独立作品展示,详情页有 Fork 入口并能看到 / 跳到对应主题页。本轮只落设计(不写业务代码),实施清单见里程碑文件。
设计要点与理由(详见 §3.10):
- 实体:`game_distribution_theme`(`theme_id` 主键、三态 `draft|published|archived`、`sort_order`、`badge`、`created_by_user_id`)+ `game_distribution_theme_member`(确定性 `member_id = "{theme_id}:{root_game_id}"`,`theme_id` / `root_game_id` 各具名 btree 索引)。
- **成员只允许根作品**:树查询 `/games/{id}/lineage` 按根聚合,否则同一棵树会在主题页里出现多次(去重/高亮打架);代价=要挂就挂它所属的根。跳到某一代节点属 UI 层(族谱页已有 `from` 高亮)。
- **允许跨主题多归属**:主题是运营叙事,「平台精选」「双人合作」会同时收录同一个根;确定性主键只保证**同一主题内**不重复。代价=作品详情要返回多值、运营需知悉。
- **树直接复用 `/games/{id}/lineage`**,主题侧**不重建**任何树查询/树整形(没有第二套可见性/排序可漂移);主题详情只返回成员根清单(N+1 本轮接受,批量树端点留白)。
- 可见性:公开侧只见 `published` 主题;成员只出现公开未删且有当前公开版本的根(**投影跳过但不删行**,重新公开自动回来);主题不存在/未发布 → **404**;已发布但可见成员为空 → **200 + 空成员列表**。
- 公开三接口:`GET /themes`(游标分页沿用默认 20/上限 50/非法 400/末页 null)、`GET /themes/{theme_id}`(+ `roots`)、作品详情 `themes` 增量(**先取该作品的根、再按根反查**,因此第 N 代作品也能跳到主题页)。
- 后台五接口(创建/编辑/增删成员/后台列表,均幂等),鉴权**复用既有 `require_admin_auth` + `AuthenticatedAdmin`**,不自造;后台 UI 不在本轮。
- 留白 5 项(各写不做理由与将来接法):主题封面图、slug/URL 别名、埋点统计、跳到某一代的高亮、批量树端点。
- 同步收敛:§6 里程碑表 M4 行指向新里程碑;§7 第 3 条「共创主题」从**待拍板**改为**已拍板采纳**,并把「主题级排序口径」留作唯一待产品确认项。
门禁:`check:doc-index` 0(252 份 md;新里程碑在 `plans/` 下免分类);`check:encoding` 0(5383 files);`git diff --check` 0。
注:§3.10 的前约 200 行因共享工作树/索引,被上一提交 `f703bc49d`(注释修正)一并带上;本提交补齐其余章节 + 里程碑文件。
|
2026-10-06 01:35:56 +08:00 |
|
kdletters
|
8710de7bde
|
继续收敛 app-server 进程错误
保留执行器核验、OAuth、回合身份与图片解码正文
保留进程树归属、Job、等待和终止原因
补充进程树与 base64 回归验证
|
2026-10-06 01:31:40 +08:00 |
|
kdletters
|
f8b7b44d66
|
继续收敛策划工作区订阅错误
保留策划工作区事件订阅 IPC 失败正文
补充工作区定向回归验证记录
|
2026-10-06 01:18:59 +08:00 |
|
kdletters
|
f3e48db252
|
继续收敛模型配置读取错误
保留模型目录与选择器配置 IPC 的脱敏正文
更新模型选择器具体错误回归测试
|
2026-10-06 01:17:16 +08:00 |
|
kdletters
|
1ce8625585
|
继续收敛 Direct 交付终态读取错误
保留交付状态快照读取与锁失败的具体正文
合并原始回合错误与终态读取错误
补充交付复核回归验证记录
|
2026-10-06 01:10:23 +08:00 |
|
kdletters
|
8fa5cc10ee
|
继续收敛 CC 与 MCP 具体错误
保留 CC 隔离目录与 Node 版本探测的底层原因
保留 Direct 工具桥指纹、回执和项目路径读取错误
让外部 MCP journal 读取与资源读取返回具体正文
|
2026-10-06 01:04:51 +08:00 |
|
kdletters
|
81d06c112d
|
继续收敛补丁指纹读取错误
补丁目标指纹仅将真实 NotFound 视为缺失
保留元数据、打开、正文读取和文件超限的具体错误
补充缺失、目录读取和超限回归测试
|
2026-10-06 00:45:30 +08:00 |
|
kdletters
|
4d20be776a
|
继续收敛 Direct 上下文路径读取错误
区分外部路径不存在与权限或磁盘元数据读取失败
保留 Direct 上下文边界错误的底层正文
|
2026-10-06 00:33:07 +08:00 |
|
suzmii
|
959ed4fd53
|
合并 origin/master(51cb05f41,22 个提交)到 feat/game-purchase
- 逐块合并 server-rs/crates/api-server/src/modules/game_distribution.rs:以 master 的 ReleaseAssetResponseInput / 5 参 release_asset_response_with_cache / ETag / 304 / gzip 结构为准,并在其上保留本分支的付费 404 守卫(price_mud_points > 0 仍在 release_package_bytes 读包之前返回);播放会话资源响应改用同一结构(etag None、cache_control no-store、沿用 accept-encoding 协商)。
- 合并 src/components/game-distribution/GamePlayPage.tsx:接入 master 的共享 PlatformGameLoadingSurface 与 PLATFORM_GAME_LOADING_TIMEOUT_MS,删除本地重复常量 GAME_PLAY_STARTUP_TIMEOUT_MS 与裸 div,买断制播放会话准备态改由共享加载面承载。
- 合并 src/components/game-distribution/GameDetailPage.tsx:同时保留 master 的 onOpenCreator 作者插槽与本分支的买断制购买弹窗、onOpenRecharge 充值入口。
- 合并 vite.config.ts:保留 master 的 /api/creators 代理,并保留 play-sessions 前缀清 Cookie 规则(顺序仍在通用 /api/game-distribution 之前)。
- 合并 deploy/nginx/README.md:保留 master 的 SPA allowlist 门禁口径(含 /creators、/creators/connections)与本分支的播放会话前缀章节;三份 nginx 模板的 ^~ play-sessions location 与清 Cookie 原样保留。
- 合并 apps/admin-web/src/pages/AdminGameDistributionReviewPage.test.tsx:保留 master 的加载面/超时用例与本分支的审核价格(冻结价优先、历史按 0)用例。
- 合并 src/components/game-distribution/GameDistributionPages.test.tsx:保留双方 mock,并新增「付费作品在会话签发期间显示共享加载面」用例。
- 合并 docs/【玩法创作】平台入口与玩法链路-2026-05-15.md(保留买断制合同并回填 master 的创作者主页与关注粉丝合同)、decision-log.md、pitfalls.md:追加双方条目,不改写任一侧正文。
- 保留 master 侧新增能力:release_asset_etag / if_none_match_matches / accepts_gzip_encoding / gzip_release_asset / release_asset_not_modified_response、SPA 加载面、创作者主页与关注粉丝(user_follow 表、creator 查询与 author_id 过滤)。
|
2026-10-06 00:28:36 +08:00 |
|
kdletters
|
d1d54ebcb1
|
继续收敛直连输出指纹读取错误
区分文件不存在与磁盘权限读取失败
让输出指纹错误沿 Direct 回合正文上送
|
2026-10-06 00:26:38 +08:00 |
|
suzmii
|
bdcefe91d1
|
Merge remote-tracking branch 'origin/master' into feat/game-fork
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 7m31s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 6m20s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 4m3s
Project CI / Frontend tests (pull_request) Successful in 2m54s
Project CI / Backend tests (pull_request) Successful in 7m36s
Project CI / AI game creator shell web tests (pull_request) Successful in 3m26s
Project CI / Repository checks (pull_request) Successful in 6m25s
Project CI / Native shell tests (pull_request) Successful in 9m34s
# Conflicts:
# deploy/container/nginx.conf
# deploy/nginx/genarrative-dev-http.conf
# deploy/nginx/genarrative.conf
# server-rs/crates/api-server/src/modules/game_distribution.rs
# src/components/game-distribution/GameDetailPage.tsx
# src/components/game-distribution/GameDistributionPages.test.tsx
# src/components/platform-entry/PlatformEntryActiveFlowShell.tsx
|
2026-10-06 00:19:40 +08:00 |
|
kdletters
|
72053b9dc0
|
继续收敛工作台清单事件错误
保留清单版本读取、重读与事件订阅正文
避免工作台清单失效时只写日志静默回退
|
2026-10-06 00:18:17 +08:00 |
|
kdletters
|
c23e2c4a92
|
继续收敛错误报告读取正文
保留错误事件与诊断日志读取失败的具体原因
保留快照回退并更新错误报告回归测试
|
2026-10-06 00:14:37 +08:00 |
|
kdletters
|
4184c5fce2
|
继续收敛策划工作区与交付解析错误
保留计划合同 serde 与工作区读写失败正文
避免目录枚举和文本搜索把权限错误当成空结果
|
2026-10-06 00:10:58 +08:00 |
|
kdletters
|
77441aa326
|
继续收敛后台读取同步错误
保留项目清单同步与专业 Agent 历史回读正文
避免后台 Promise 失败只留下无因 failed 状态
|
2026-10-06 00:06:31 +08:00 |
|
kdletters
|
708100495d
|
继续收敛策划事件订阅错误
保留设计 Agent 事件桥 IPC 失败正文
避免订阅失败后回合只收到不完整状态
|
2026-10-06 00:03:23 +08:00 |
|
kdletters
|
dd48e3acb8
|
继续收敛项目权限读取错误
保留 DirectProject 与界面命令权限策略 IPC 正文
区分权限拒绝和策略读取失败的用户提示
|
2026-10-06 00:01:02 +08:00 |
|
kdletters
|
d7c1a1475d
|
继续收敛空正文固定错误提示
为发布、扩展、更新和生成任务保留正文缺失标记
避免空错误被误显示为完整的通用失败原因
|
2026-10-05 23:57:14 +08:00 |
|
kdletters
|
f118e6b77c
|
继续收敛资源布局错误正文
把布局读写失败的脱敏底层原因附到工作台提示
更新资源布局回归断言和错误展示记录
|
2026-10-05 23:53:08 +08:00 |
|
kdletters
|
e75f35b284
|
继续收敛前端资源读取错误正文
保留清单刷新、资源预览、UI 编辑器和依赖图读取失败原因
补充预览、生成队列和编辑器回归验证
|
2026-10-05 23:40:43 +08:00 |
|
kdletters
|
196a5979ce
|
继续收敛预览与生成队列错误正文
保留预览复用 IPC 拒绝与重启回退的具体原因
保留素材生成事件订阅失败并补充预览与队列回归测试
|
2026-10-05 23:31:41 +08:00 |
|
kdletters
|
f938ac6bf4
|
继续收敛 MCP 与交付复核错误正文
保留 Direct Tools MCP 启动、Skill 资源和运行失败正文
保留交付封口复核底层原因并同步验证记录
|
2026-10-05 23:23:46 +08:00 |
|