k88936
|
78a43b6a13
|
docs(会员目录): 说明档位校验不覆盖展示型权益
- validate_runtime_profile_membership_plan_row_against_catalog 文档注明 model_access 与 concurrent_job_limit 本期仅落字段供展示,不参与随 rank 的单调校验。
|
2026-10-03 17:33:50 +08:00 |
|
k88936
|
1d2574a43f
|
fix(会员计价): 升级报价拒绝到期日早于刷新日的入参
- validate_runtime_profile_membership_upgrade_quote_input 增加 expires_at >= cycle_resets_at 校验,避免回显早于下次刷新日的到期时间。
- 补充到期时刻早于本期刷新时刻的回归断言,并更新函数文档说明。
|
2026-10-03 17:33:23 +08:00 |
|
suzmii
|
7e96b369c1
|
Merge pull request '修复 Web 预检浏览器失败恢复' (#591) from fix/web-preflight-browser-recovery into master
Project CI / AI game creator shell Rust crates (push) Successful in 2m40s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 4m51s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 4m24s
Project CI / Backend tests (push) Failing after 3m56s
Project CI / Frontend tests (push) Successful in 3m5s
Project CI / AI game creator shell web tests (push) Successful in 2m56s
Project CI / Repository checks (push) Failing after 4m3s
Project CI / Native shell tests (push) Successful in 6m54s
Reviewed-on: #591
|
2026-10-03 17:33:22 +08:00 |
|
k88936
|
1811b2206f
|
fix(会员计价): 升级报价先做领域校验再做数值校验
- quote_runtime_profile_membership_upgrade 先跑账期变更 / 档位合法性校验,再跑期号与窗口数值校验,使年付转月付等高期号场景返回 CycleKindChangeUnsupported 而非 InvalidQuoteInput。
- 补充年付转月付的回归断言,覆盖目标账期 period 数小于当前期号的拒绝路径。
|
2026-10-03 17:32:00 +08:00 |
|
k88936
|
da0ef16df5
|
refactor(会员下单): 下单入参去掉未使用的 kind
- useAccountWallet.buyRechargeProduct 入参收窄为仅 productId,会员结算调用同步删除未被消费的 kind: 'membership'。
|
2026-10-03 17:31:20 +08:00 |
|
k88936
|
9af6625514
|
docs(充点弹窗): 说明默认预选第 3 档的原因
- 为点卡默认选中索引 2 的取值补上中文注释,说明其只影响默认选中项、不改变计费。
|
2026-10-03 17:31:00 +08:00 |
|
k88936
|
cec4b7ec5e
|
fix(充点弹窗): 方向键切换页签与档位后移动焦点
- PlatformRechargeTabNav 与 PlatformPointProductGrid 在方向键 / Home / End 改变选中项后,用 ref 把焦点移到新按钮,保持 roving tabindex 焦点与选中一致。
|
2026-10-03 17:30:05 +08:00 |
|
k88936
|
803d5ccb0a
|
refactor(充点弹窗): 升级报价状态改由具名函数返回
- 抽出 resolveMembershipQuoteErrorState,用提前返回替代嵌套三元,消除升级报价错误 / 加载 / 空三态的深层条件表达式。
|
2026-10-03 17:28:55 +08:00 |
|
k88936
|
2514759949
|
fix(充点弹窗): 升级报价按目标档位与账期双重匹配
- PlatformProfileRechargeModal 的 quoteForTarget 同时校验 targetPlan 与 cycleKind,账期不一致的陈旧报价按“暂无报价”处理,避免展示错误金额并解锁下单。
|
2026-10-03 17:28:17 +08:00 |
|
k88936
|
cf6004718e
|
fix(后台订单): 会员变更摘要无账期时不再输出悬空分隔符
- AdminRechargeOrderPage 的会员变更摘要仅在存在账期时才追加 "/ 月付|年付",避免输出 “新购 Pro / ”。
|
2026-10-03 17:27:49 +08:00 |
|
kdletters
|
d3750b1846
|
Merge pull request '新增支付服务接入与订单收银台' (#597) from codex/payment-service-20261003 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: #597
|
2026-10-03 17:27:32 +08:00 |
|
k88936
|
af0721fb78
|
fix(会员): 回灌后收敛充点商品目录并清理退役会员商品行
- profile.rs 新增 converge_default_profile_recharge_product_config,在存量库读取路径补齐缺失的 points_1280 / points_3280 档位。
- 同一步骤删除已退役的 membership 类型充点商品配置行,避免冲突迁移把旧 member_* 行原样带回后残留。
- 存量库充值商品目录因此幂等收敛到当前六档点卡,不再停留在旧四档 + 四行会员商品。
|
2026-10-03 17:24:00 +08:00 |
|
kdletters
|
4b529a8952
|
新增支付服务接入与订单收银台
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m59s
Project CI / Backend tests (pull_request) Failing after 4m8s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 5m9s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 6m20s
Project CI / Frontend tests (pull_request) Successful in 3m17s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m48s
Project CI / Repository checks (pull_request) Failing after 4m15s
Project CI / Native shell tests (pull_request) Successful in 6m52s
新增支付应用、API Key 与外部产品订单接口
接入微信 Native 下单、二维码收银台与支付结果回调
新增后台支付订单与回调投递页面
补齐 SpacetimeDB 支付表、生成绑定、OpenAPI 与使用说明
|
2026-10-03 17:18:13 +08:00 |
|
k88936
|
21f69ef13b
|
fix(迁移): 补齐会员重构的破坏性迁移导入兼容
- migration.rs 为旧迁移包回填 profile_membership 的 plan / cycle_index / cycle_count / cycle_kind 默认值。
- migration.rs 为旧迁移包回填 profile_recharge_order 的 14 个 membership_* 快照默认值,避免回灌导入因缺列失败。
- 新增两条单元测试守护会员表与订单快照的旧包默认值。
- 同步后端架构文档的 profile_membership / profile_recharge_product_config / profile_recharge_order 表目录。
- 记录 SpacetimeDB 2.8.3 持久表删列需显式迁移的实测结论与既有 run_conflict_migration_publish 路径。
|
2026-10-03 17:11:04 +08:00 |
|
suzmii
|
372b7d3a00
|
修复 AGC 栏目画布上传素材落「待归类」(Issue 359)
Project CI / AI game creator shell Rust crates (pull_request) Successful in 3m17s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 3m59s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 5m8s
Project CI / Backend tests (pull_request) Successful in 6m24s
Project CI / Frontend tests (pull_request) Successful in 3m24s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m34s
Project CI / Native shell tests (pull_request) Successful in 6m49s
Project CI / Repository checks (pull_request) Successful in 5m38s
- AGC Rust `upload_local_asset` 新增可选 `targetCategory`,登记改走 `register_local_asset_entry_with_category`(非法值失败关闭,不回退 kind 派生);`upload_local_asset_at` 委托新的 `upload_local_asset_at_with_category`,既有调用点与单测不动
- 前端 `uploadProjectAssetFilesAndReadSnapshot` 透传 `targetCategory`;栏目画布底部工具栏上传带上工具栏自己的栏目,与生成入口的 `targetCategory` 同一口径
- 新增 Rust 单测 `upload_registers_into_the_explicit_entry_category`(显式栏目 → character / 不传 → unclassified / 非法 version 失败关闭且不新增登记)与 appSurface 用例(在「角色与对象」上传图片,载荷必须带 `targetCategory: 'character'`)
- 同步 PRD §3.10、`docs/technical/【AGC】栏目画布底部工具栏入口矩阵-2026-09-13.md` §4 载荷表、V3 验收用例 S11a、decision-log 与 pitfalls
|
2026-10-03 16:59:22 +08:00 |
|
k88936
|
1a106eadef
|
每日免费发放额为 0 时前端隐藏该池
- 后端:module-runtime 的 daily_free_points_per_day 校验由「必须大于 0」放宽为只校验上界,错误变体改名 DailyFreePointsPerDayOverflow
- 前端共享层:mudPoints 新增 shouldShowProfileDailyFreePool,判定 remaining > 0 || reset > 0,判定收口一处
- 钱包入口:PlatformMudPointWalletEntry 在每日免费发放额为 0 且无存量时隐藏该行
- 充值弹层:PlatformProfileRechargeModal 池概览按可见池渲染(三列变两列),扣点顺序提示与泥点确认页文案随可见性切换
- Admin Web:账号配置页每日免费泥点允许填 0(校验、min 与文案同步)
- 测试:删除「每日免费必然存在」断言,新增隐藏 / 有存量仍显示 / 发放额为正三类用例,并修正钱包入口测试在 HEAD 上失效的选择器
- 文档:更新会员与泥点前端改造设计文档 §14 与 shared-memory 决策记录
|
2026-10-03 16:48:12 +08:00 |
|
k88936
|
43f0c51120
|
后台用户详情改走只读会员快照
新增只读会员快照 procedure get_profile_membership_snapshot_and_return,不刷新钱包 / 账期、不写库
module-runtime 新增 RuntimeProfileMembershipGetInput 与 RuntimeProfileMembershipSnapshotProcedureResult 及入参构造器
spacetime-client 增加 get_profile_membership_snapshot facade、From 转换与结果映射,并同步生成绑定
build_profile_membership_snapshot 拆成写库与纯读两条路径,共用 from_row 投影
admin_get_user_detail 改用只读会员快照,打开详情不再改用户钱包与会员账期
|
2026-10-03 16:42:48 +08:00 |
|
suzmii
|
c7d70ba893
|
Merge remote-tracking branch 'origin/master' into fix/web-preflight-browser-recovery
Project CI / AI game creator shell Rust crates (pull_request) Successful in 3m3s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 4m56s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 5m4s
Project CI / Backend tests (pull_request) Successful in 5m59s
Project CI / Frontend tests (pull_request) Successful in 2m52s
Project CI / AI game creator shell web tests (pull_request) Successful in 3m5s
Project CI / Native shell tests (pull_request) Successful in 6m37s
Project CI / Repository checks (pull_request) Successful in 6m24s
|
2026-10-03 16:35:17 +08:00 |
|
suzmii
|
b6a3e8d506
|
修复浏览器进程归属与清理诊断
固定 Windows 浏览器 root 与子进程启动身份,Job 绑定失败时回收完整进程树并拒绝 PID 复用。
保留 Web 预检 shutdown 的结构化清理诊断,补充身份不匹配回归测试。
|
2026-10-03 16:31:40 +08:00 |
|
k88936
|
6f0d773dde
|
会员档位目录种子改由模块初始化播种
新增 init 生命周期 reducer,数据库首次创建时把 profile_membership_plan 整表播种
membership_plan_row 与 membership_plan_records 去掉懒播种,只读路径不再写库
ensure_default_profile_recharge_product_config 不再顺带初始化会员目录
存量数据库此前已由懒播种写入目录行,新建数据库由 init reducer 播种
|
2026-10-03 16:27:04 +08:00 |
|
k88936
|
4c6af9f190
|
会员目录响应下发推荐档位与不设并发上限标志
ProfileMembershipPlanResponse 新增 recommended 与 unlimitedConcurrency 两个派生布尔
module-runtime 新增 PROFILE_MEMBERSHIP_RECOMMENDED_PLAN 常量并导出,作为推荐档位唯一真相源
api-server 目录响应按该常量与 is_unlimited_concurrency 派生标志
前端 ProfileMembershipPlanRecord 契约补上两个字段
membershipCopy 删除硬编码的 'plus' 与 128,并发文案改读 unlimitedConcurrency
充值弹窗推荐标签改读 plan.recommended
更新充值弹窗测试夹具
|
2026-10-03 16:18:14 +08:00 |
|
k88936
|
3031f58875
|
会员升级结算前校验订单冻结的变更前状态
结算补差升级单前比对 settlement.plan_before / cycle_kind_before 与当前会员行,不一致直接拒绝「会员状态已变化,请重新下单」
避免用户先付更高档位升级单后,旧升级单落地把档位 / 周期覆盖回去,出现降档或「年付 + 一个月到期」的矛盾行
api-server 把该业务拒绝映射为 400
|
2026-10-03 16:16:07 +08:00 |
|
k88936
|
3e2ab3cf78
|
会员充值下单不再接受客户端时间参数
RuntimeProfileRechargeOrderCreateInput 删除 created_at_micros 字段,procedure 入参不再携带时间
build_runtime_profile_recharge_order_create_input 同步去掉时间参数
spacetime-module 建单时刻改用 ctx.timestamp,避免客户端把时间设到会员到期前夕压低补差金额
spacetime-client facade 与 mapper、生成绑定同步去掉该字段
api-server 不再自算 current_unix_micros 传入
更新受影响的 module-runtime 单测调用
|
2026-10-03 16:15:36 +08:00 |
|
k88936
|
f9b0cf786d
|
会员升级补差订单到期后按新购价校验结算
新增 check_expired_membership_upgrade_settlement:补差订单在支付前会员已到期时,订单金额必须达到目标周期当前目录价才允许按新购结算,否则拒绝
新增 RuntimeProfileMembershipUpgradeRejection::MembershipExpiredBeforeSettlement 及错误码字符串
module-runtime 导出该判定函数供结算侧复用
spacetime-module 结算分支调用该判定,目录缺档位时返回明确错误
api-server 把「会员已到期,请按新购价格重新下单」映射为 400 业务错误
补充过期补差订单必须覆盖整期新购价的单元用例
|
2026-10-03 16:06:06 +08:00 |
|
k88936
|
633355952b
|
Merge pull request 'Refactor/整理项目对话错误相关代码' (#593) from refactor/turn-error-to-explicit-struct into master
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 5m10s
Project CI / AI game creator shell Rust crates (push) Successful in 2m48s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 5m5s
Project CI / Backend tests (push) Successful in 5m27s
Project CI / Frontend tests (push) Successful in 3m8s
Project CI / AI game creator shell web tests (push) Successful in 2m22s
Project CI / Native shell tests (push) Successful in 6m43s
Project CI / Repository checks (push) Successful in 5m8s
Reviewed-on: #593
|
2026-10-03 15:58:20 +08:00 |
|
k88936
|
0e313405d6
|
修复:生成绑定校验不再用 prettier 改写生成文件
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m54s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 4m36s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 4m44s
Project CI / Backend tests (pull_request) Successful in 5m46s
Project CI / Frontend tests (pull_request) Successful in 2m50s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m41s
Project CI / Native shell tests (pull_request) Successful in 6m39s
Project CI / Repository checks (pull_request) Successful in 6m12s
- scripts/check-generated-bindings.mjs:删掉生成后的 prettier 归一化,直接逐字节比较 ts-rs 原始输出
- .prettierignore 与 .eslintrc.cjs:四个 ts-rs 生成目录统一排除,禁止格式化工具二次改写
- .prettierrc.json:删除 contracts/generated 的 printWidth / singleQuote 覆盖
- .gitattributes:生成目录标 linguist-generated 并豁免 trailing-space,保证 git diff --check 通过
- 重新生成 AGC chat/generated 与 services/generated 的 51 个绑定,改为提交 ts-rs 原始输出(纯格式,语义不变)
- docs/project-memory:记录生成绑定不再经 prettier 的口径,修正旧流程说明
|
2026-10-03 15:40:21 +08:00 |
|
k88936
|
4621f76a58
|
会员升级报价拒绝已刷新账期的过期窗口
修正 upgrade.rs 报价校验:now 必须落在 [cycle_started_at, cycle_resets_at) 内,越界按 InvalidQuoteInput 拒绝,避免旧 cycle_index 配零剩余比例多收一个完整月
同步模块头注释、校验函数文档与 InvalidQuoteInput 枚举说明
把「过期窗口只收完整月」的用例改为「过期窗口被拒绝」,保留剩余比例自身的 0 断言
Co-authored-by: Junie <junie@jetbrains.com>
|
2026-10-03 15:32:33 +08:00 |
|
k88936
|
c165a032c9
|
fix(充点弹窗): 删除硬编码的充值汇率文案
删除「常规充值 ¥1 = 10 永久泥点」的写死文案,档位价格与点数完全由后台商品目录决定,避免目录改价后文案与实际不一致。
Co-authored-by: Junie <junie@jetbrains.com>
|
2026-10-03 15:29:32 +08:00 |
|
k88936
|
873bd5bee9
|
fix(会员报价): 切换账号时清理报价状态
- usePlatformProfileCenterController.ts:账号生命周期重置时清空 membershipQuote / loading / error 并作废未完成报价令牌,避免上一个账号的报价串到新账号
Co-authored-by: Junie <junie@jetbrains.com>
|
2026-10-03 15:00:08 +08:00 |
|
k88936
|
a0c48d85a5
|
fix(后台会员): 标题为空时禁用保存
- AdminMembershipPlanPage.tsx:标题去空格为空时禁用保存按钮,不必等确认弹窗后才收到 MissingProductTitle 报错
Co-authored-by: Junie <junie@jetbrains.com>
|
2026-10-03 15:00:06 +08:00 |
|
k88936
|
071cc3284a
|
fix(桌面壳校验): 补上会员报价命令到 allowlist
- apps/ai-game-creator-shell/scripts/check-config.mjs:allowedUncalledTauriCommands 增加 read_profile_membership_upgrade_quote,node scripts/check-config.mjs 恢复通过
Co-authored-by: Junie <junie@jetbrains.com>
|
2026-10-03 14:59:42 +08:00 |
|
k88936
|
aca58b6b25
|
fix(后台接口): 会员升级与档位目录的业务拒绝改为 400
- runtime_profile.rs:新增 is_runtime_profile_membership_domain_error,会员升级报价(非会员 / 重复购买 / 月年互换 / 档位下架 / 非法报价入参)与会员档位目录校验失败统一映射为 400,基础设施错误仍保持 502
Co-authored-by: Junie <junie@jetbrains.com>
|
2026-10-03 14:59:37 +08:00 |
|
k88936
|
c1b96f6bff
|
refactor(会员下单): 收窄平台面板下单入参为 productId 与 kind
- usePlatformProfileCenterController.ts:buyRechargeProduct 只接受 productId 与 kind,会员下单不再传 priceCents 等无用字段
Co-authored-by: Junie <junie@jetbrains.com>
|
2026-10-03 14:59:35 +08:00 |
|
k88936
|
44952704b6
|
refactor(会员下单): 收窄桌面端下单入参为 productId 与 kind
- useAccountWallet.ts:buyRechargeProduct 只接受 productId 与 kind,会员下单不再伪造价格等无用字段
Co-authored-by: Junie <junie@jetbrains.com>
|
2026-10-03 14:59:32 +08:00 |
|
k88936
|
40c754ee0e
|
fix(后台本地预览): 修正会员账期期号越界
- scripts/admin-web-fake-api.mjs:月付用户详情 cycleIndex 由 2 改为 1,避免出现「第 2/1 期」
Co-authored-by: Junie <junie@jetbrains.com>
|
2026-10-03 14:59:30 +08:00 |
|
k88936
|
adfae5adee
|
fix(会员计价): 零时长账期窗口按非法入参拒绝
- module-runtime/membership/upgrade.rs:账期窗口校验由 < 改为 <=,cycle_resets_at 等于 cycle_started_at 时不再退化成「剩余比例为 0」
Co-authored-by: Junie <junie@jetbrains.com>
|
2026-10-03 14:59:26 +08:00 |
|
k88936
|
58e07ba282
|
fix(后台会员): 每期泥点改为提交前校验
- AdminMembershipPlanPage.tsx:非 normal 档位要求每期泥点大于 0,不再等后端返回笼统目录错误
Co-authored-by: Junie <junie@jetbrains.com>
|
2026-10-03 14:59:24 +08:00 |
|
k88936
|
7dd26b9cda
|
refactor(后台会员): 收窄会员状态的字面量联合
- adminApiTypes.ts:AdminProfileMembershipPayload.status 由 string 收窄为 'normal' | 'active'
Co-authored-by: Junie <junie@jetbrains.com>
|
2026-10-03 14:59:22 +08:00 |
|
k88936
|
3a998e15bb
|
fix(会员报价): 平台资料面板报价请求增加序号守卫
- usePlatformProfileCenterController.ts:requestMembershipQuote 增加 membershipQuoteRequestRef 令牌,过期响应不再覆盖新报价或提前结束 loading
Co-authored-by: Junie <junie@jetbrains.com>
|
2026-10-03 14:58:30 +08:00 |
|
k88936
|
5361d89639
|
fix(会员报价): 桌面端报价请求增加序号守卫
- useAccountWallet.ts:requestMembershipQuote 记录请求令牌,只有最新请求可以写入报价、错误与 loading
Co-authored-by: Junie <junie@jetbrains.com>
|
2026-10-03 14:58:28 +08:00 |
|
k88936
|
8cfa5a45a9
|
fix(后台本地预览): 补上会员档位 mock 接口
- scripts/admin-web-fake-api.mjs:新增 /admin/api/profile/membership-plans 的 GET 列表与 POST 回显,避免页面 response.entries 为 undefined
Co-authored-by: Junie <junie@jetbrains.com>
|
2026-10-03 14:58:26 +08:00 |
|
k88936
|
73b53a9dd1
|
fix(会员计价): ceil_div 零分母改为 debug_assert 暴露
- module-runtime/membership/upgrade.rs:ceil_div 增加 debug_assert!(denominator != 0),零分母在测试里立即失败,不再被静默算成 0 元
Co-authored-by: Junie <junie@jetbrains.com>
|
2026-10-03 14:58:21 +08:00 |
|
k88936
|
5f31c8c9df
|
fix(会员充值): 套餐卡不再重复触发下单回调
- PlatformProfileRechargeModal/index.tsx:去掉套餐卡外层 div 的 onClick,点击 CTA 时不再因事件冒泡触发两次 openMembershipCheckout
Co-authored-by: Junie <junie@jetbrains.com>
|
2026-10-03 14:58:18 +08:00 |
|
k88936
|
bfd96a7c25
|
fix(后台会员): 数值输入改用 Number 与 isSafeInteger 解析
- AdminMembershipPlanPage.tsx:parseInteger 改为 Number + Number.isSafeInteger,避免 "1e2" / "1.9" 被 parseInt 静默截断后保存错误价格
Co-authored-by: Junie <junie@jetbrains.com>
|
2026-10-03 14:58:16 +08:00 |
|
k88936
|
cf6391962e
|
refactor(会员充值): 并发文案复用统一的不设上限判定
- membershipCopy.ts:resolveMembershipConcurrencyLabel / resolveMembershipConcurrencyShortLabel 改为调用 isUnlimitedConcurrency,去掉重复的 128 判定
Co-authored-by: Junie <junie@jetbrains.com>
|
2026-10-03 14:58:14 +08:00 |
|
k88936
|
cd0cbacf18
|
refactor(后台会员): 收窄订单变更类型的字面量联合
- adminApiTypes.ts:AdminMembershipOrderChangePayload.changeKind 去掉多余的 string 分支,非法取值改由编译期暴露
Co-authored-by: Junie <junie@jetbrains.com>
|
2026-10-03 14:58:12 +08:00 |
|
k88936
|
141e59c971
|
Merge remote-tracking branch 'origin/master' into refactor/turn-error-to-explicit-struct
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 4m0s
Project CI / AI game creator shell Rust crates (pull_request) Failing after 2m45s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 4m52s
Project CI / Frontend tests (pull_request) Successful in 2m30s
Project CI / Backend tests (pull_request) Successful in 4m54s
Project CI / AI game creator shell web tests (pull_request) Successful in 3m0s
Project CI / Native shell tests (pull_request) Successful in 7m38s
Project CI / Repository checks (pull_request) Successful in 6m34s
|
2026-10-03 14:50:04 +08:00 |
|
lhk229
|
ae2d1a3a21
|
修复 AGC 生成准备依赖全量素材库的问题 (#592)
Project CI / AI game creator shell Rust crates (push) Successful in 1m47s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 5m1s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 5m18s
Project CI / Frontend tests (push) Successful in 2m27s
Project CI / Backend tests (push) Successful in 5m49s
Project CI / Native shell tests (push) Successful in 6m21s
Project CI / Repository checks (push) Successful in 3m36s
Project CI / AI game creator shell web tests (push) Successful in 2m54s
修复已有项目和素材目录绑定时,AGC 生成准备仍读取完整账户素材库、导致无关素材读取失败阻断生成的问题。
- 新增站内与 External v1 的单目录 GET,按主键读取并校验账号归属;复用目录 DTO,不读取素材列表或创建默认目录。
- 已有 binding 和 partial 恢复改为确认目标目录;首次建绑直接沿用稳定幂等创建,不再读取全库。
- 目录缺失、越权、超时、响应身份不符或会话切换时停止,保留恢复证据,不自动重建、不换键重发生成;已有生成账本继续沿用冻结快照恢复。
- 既有素材库与目录创建、修改、删除 API 合同保持不变,持久化表结构不变。同步 OpenAPI、生成绑定及技术文档。
验证:
- AGC Rust:目录绑定 7 项、生成 94 项、资源编辑 60 项、抠图 5 项通过(目录绑定用例包含在生成组中)。
- api-server:External Editor 30 项、受保护路由矩阵 3 项通过。
- 真实隔离 SpacetimeDB:目录读取成功、空目录、缺失、越权、删除后缺失、只读不变,以及既有幂等/并发/孤儿检查通过。
- smoke 脚本测试 4 项通过;module 编译、生成绑定、87 张表 schema guard、DDD、编码、文档索引、定向 Rust 格式与 diff 检查通过。
- 已比较 OpenAPI:除新增单目录 GET 外,原有定义逐项保持一致。
验证限制:未完成独立 API `/healthz` 联调,本地隔离数据库与授权配置未就绪;启动尝试已停止并清理。未运行全量测试或真实付费生成。
发布顺序:先发布后端模块与 API,再发布新客户端;不提供全库回退。#574 的素材分页、筛选及按素材 ID 读取不在本 PR 范围内。
Closes #550
Reviewed-on: #592
Co-authored-by: Linghong <ink29535@proton.me>
Co-committed-by: Linghong <ink29535@proton.me>
|
2026-10-03 14:48:54 +08:00 |
|
k88936
|
47da90ab84
|
重构:终态判定不再为控制流留兜底分支
- turn_completion.rs 的 turn_terminal 两处 ShouldContinue 分支由 debug_assert + 回落账本终态 / host_dropped 改为 unreachable:控制流在返修循环与终态投影处已被过滤
- 同步收紧 turn_terminal 的文档说明,明确控制流不该也不能进入终态判定
|
2026-10-03 14:47:28 +08:00 |
|
k88936
|
84cbe9b1a6
|
修复:封口复核的控制流不再被吞成 HostDropped
- direct_runtime 返修循环接住 chat 侧返回的 TurnError::RepairRequired(app-server 封口复核),写回 prompt 继续一轮,流式与非流式两条分支都补上
- 删除 thread_manager/dispatch.rs 的 finish_turn_failure:它的 ShouldContinue 静默分支正是控制流漏到收口后、被 Drop 兜成 HostDropped 的入口
- 两处回合失败收口改为就地对 classify 结果显式分流:ShouldStop 写失败终态,ShouldContinue 视为上游缺陷直接 unreachable
|
2026-10-03 14:32:31 +08:00 |
|