k88936
|
759bcf98a8
|
文档(会员契约): 澄清 status 兜底只作用于 Rust 客户端
- ProfileMembershipResponse.status 注释改为“Rust 反序列化未知取值按 active 兜底,TS 侧不归一化”
- 同步重新生成 ts-rs 绑定,避免 Web 消费方误以为前端也会 fail-open
|
2026-10-05 17:53:23 +08:00 |
|
k88936
|
8ed716c6e2
|
修复(充值弹层): 任一商品提交中即禁用会员结算
- 会员结算 canSubmit 由 !submitting 改为 !submittingProductId,与充点分支的 ctaDisabled 口径一致
- 避免充点在途时仍能提交会员结算、被 buyRechargeProduct 静默丢弃后直接关闭弹层
- 补充反向用例:泥点订单提交中时会员结算按钮禁用
|
2026-10-05 17:41:26 +08:00 |
|
k88936
|
92a8fa1b66
|
重构(共享导出): 会员商品 id helper 提升为公共导出
- packages/shared/src/index.ts 导出 resolveMembershipProductId
- useAccountWallet 改从 @genarrative/shared 公共入口引入,去掉对弹层私有文件结构的深路径依赖
|
2026-10-05 17:34:27 +08:00 |
|
k88936
|
ff1e15194d
|
重构(泥点钱包): 去掉冗余的余额视图联合成员
- PlatformMudPointWalletEntryProps.breakdown 收敛为 ProfileMudPointBalance | null
- ProfileMudPointBalanceView 是 ProfileMudPointBalance 的扩展,联合会被 TypeScript 折叠,属于多余类型噪音
- 同步删除不再需要的 type-only import
|
2026-10-05 17:34:03 +08:00 |
|
k88936
|
bc3e36ff33
|
重构(会员契约): 会员结构体改用 ts-rs 生成类型
- shared-contracts 为 10 个会员结构体补 ts_rs::TS / ts(export),64 位整数字段补 ts(type = "number") 对齐前端 number
- 新增 10 个生成绑定;packages/shared 与 admin-web 改为 re-export 生成类型,仅 kind / status 等前端收窄联合用 Omit 组合保留
- 同步设计文档 §2.5 与决策日志
|
2026-10-05 15:51:07 +08:00 |
|
k88936
|
e87837381a
|
修复(充值弹层): 下单进行中禁用泥点结算入口
- 会员订单提交时泥点结算 CTA 仍可点,点击后会被宿主 buyRechargeProduct 守卫静默丢弃
- 泥点结算弹层传 ctaDisabled,底部「充值」CTA 也在任意提交进行中禁用
- 保留上一轮「会员提交不波及泥点档位可选性」的既有行为,仅收口下单动作;补回归测试
|
2026-10-05 14:10:42 +08:00 |
|
k88936
|
cdbc6b4ac2
|
修复(充值弹层): max 档不再提示可补差升档
- 状态卡原先无条件显示「可同周期补差升档」,已是最高档时并无更高档位可升
- 父组件按启用目录计算 hasUpgradePath(存在 rank 更高的档位),无升级路径时只保留「周期切换需等到期后」
- 补 max 档与 plus 档的对照断言
|
2026-10-05 14:08:26 +08:00 |
|
k88936
|
3a948c5f58
|
功能(充值弹层): 会员周期切换支持键盘方向键
- 月付/年付 radiogroup 原先无 roving tabindex,方向键无法移动选项
- 复用 resolveRovingIndex 与 ref,方向键同步移动选中与焦点;锁定时不响应方向键
- 补一条周期切换键盘导航测试
|
2026-10-05 14:03:48 +08:00 |
|
k88936
|
c7150b590c
|
修复(LLM目录契约): protocol 缺省改为按 agent_mode 推导
- LlmModelSummary/LlmUnavailableModel 反序列化缺失 protocol 时取 agent_mode 的默认协议,不再一律 openai_responses
- 补 cc / anthropic 别名 / 显式 protocol 用例;同步生成绑定注释
|
2026-10-05 12:18:05 +08:00 |
|
k88936
|
af419e82c7
|
文档(泥点钱包): 统一三池合计的展示口径为可用总额
- mudPoints 文档不再声明合计「不代表可用额度」,与钱包入口/充值弹层的「可用总额」文案对齐
|
2026-10-05 12:14:53 +08:00 |
|
k88936
|
985b8718b8
|
清理(泥点定价): 移除硬编码的「¥1 = 10 泥点」文案
- 充值商品页描述去掉固定比例,不再把定价规则写死在 UI
- 同步去掉公共充值弹层与测试里同口径的注释
|
2026-10-05 12:14:20 +08:00 |
|
k88936
|
d3f02d6bc9
|
修复(充值弹层): 泥点档位禁用范围收敛到泥点商品
- submittingProductId 现与会员下单共用,仅当提交的是泥点商品时才禁用整组泥点档位,避免会员提交期间跨页签耦合
|
2026-10-05 11:59:47 +08:00 |
|
k88936
|
f0dfddb910
|
修复(充值弹层): 未选中时左方向键回卷到最后一项
- resolveRovingIndex 的 currentIndex 允许为 -1,ArrowLeft 特判为 length-1,避免落到倒数第二项
|
2026-10-05 11:59:32 +08:00 |
|
k88936
|
5d2de88a40
|
修复(充值弹层): 当前档位缺失时禁用会员下单
- resolveMembershipPlanAction 在有效会员查不到当前档位时返回「套餐信息缺失」并禁用,避免误判为新客对所有档位开放购买
|
2026-10-05 11:59:12 +08:00 |
|
k88936
|
a48b7f8de8
|
Merge remote-tracking branch 'origin/master' into feat/pricing-plan
Project CI / Backend tests (pull_request) Failing after 48s
Project CI / Native shell tests (pull_request) Failing after 3m50s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 5m21s
Project CI / Frontend tests (pull_request) Failing after 47s
Project CI / AI game creator shell web tests (pull_request) Failing after 39s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 6m6s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 7m23s
Project CI / Repository checks (pull_request) Successful in 6m31s
# Conflicts:
# docs/project-memory/shared-memory/decision-log.md
|
2026-10-05 10:50:30 +08:00 |
|
k88936
|
54d1df9d21
|
refactor(契约): 会员 token 枚举走 ts-rs 生成,前端不再手写联合类型
- shared-contracts 给 ProfileMembershipPlanToken/CycleKindToken/StatusToken/ModelAccessToken/ChangeKindToken 补 ts_rs::TS + ts(export),生成 5 个 .ts 到 packages/shared/src/contracts/generated/(评审第 14 条)
- packages/shared/src/contracts/runtime.ts 的 ProfileMembershipPlan/Status/CycleKind/ModelAccess 改为生成类型的别名并 re-export
- apps/admin-web/src/api/adminApiTypes.ts 删除本地手写联合类型,改为从 @genarrative/shared 导入 / re-export
- npm run check:generated-bindings、admin-web:typecheck、npm run typecheck 通过
|
2026-10-04 19:35:28 +08:00 |
|
suzmii
|
e593236f9b
|
公开作品详情页不再显示占位作者名「创作者」,按作者 ID 补查真实昵称
Project CI / Backend tests (pull_request) Failing after 30s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m27s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 5m23s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 4m15s
Project CI / Repository checks (pull_request) Failing after 33s
Project CI / Frontend tests (pull_request) Successful in 3m59s
Project CI / AI game creator shell web tests (pull_request) Successful in 4m10s
Project CI / Native shell tests (pull_request) Successful in 8m37s
- useGameAuthorName.ts(新增):useGameAuthorDisplayName —— 回包名是占位词(「创作者」/「未知作者」)或空时,按 author.id 调 GET /api/auth/public-users/by-id/{id} 取 displayName;查询中返回 null(避免先闪占位词),查不到返回空串、不编造名字
- GameDetailPage.tsx:详情页用解析后的作者名装配展示对象(displayGame),替代直接用公开投影里的 author.name
- packages/shared/src/components/GameDetailDisplay/index.tsx:作者名为空时不渲染「由 X 制作」那一行;头像首字改用 Array.from(name)[0](避免 emoji 代理对被截断);作者行补 title 悬浮显示完整名字
|
2026-10-04 17:59:02 +08:00 |
|
k88936
|
55bbf27e8f
|
fix(充值弹窗): 当前档位改从未过滤目录解析
- 有效会员的当前档位被后台临时禁用时,filter 后的 membershipPlans 查不到,状态卡退化成「会员」、按钮变「开通会员」,可在有效会员上重复开通(评审第 5 条)
- 结算弹窗升级摘要的 currentPlan 同样取自过滤列表,禁用档位会丢「原套餐标准价」;改由父组件传入未过滤目录解析出的 currentPlan,并移除弹窗对 membership 的无用依赖(评审第 11 条)
- 新增回归:active 会员 + 当前档 disabled 时仍显示「当前 Plus · 年付」、Max 提供「补差升级」,摘要保留「原套餐标准年价」
|
2026-10-04 17:12:55 +08:00 |
|
k88936
|
1e90254d0a
|
perf(泥点): 复用模块级 Intl.DateTimeFormat 格式化刷新时刻
- formatMudPointResetAt 原先每次调用都新建 Intl.DateTimeFormat,而它跑在多个渲染路径里
- locale / 时区 / 字段恒定,提升为模块级常量 MUD_POINT_RESET_FORMATTER 复用,输出不变
|
2026-10-04 15:57:22 +08:00 |
|
k88936
|
b431eb6074
|
refactor(钱包 store): 抽出余额就绪态统一构造,消除重复 set
- applyWalletBalanceSnapshot 与刷新循环各自重复「resolve 视图 + 写 4 个 ready 字段」
- 抽出 readyWalletBalanceState 统一派生 totalPoints / status / error,两条路径不再有漂移风险
- 行为不变(注:本文件既有的 rejects a snapshot from another owner 用例在改动前后均失败,与本次无关)
|
2026-10-04 15:55:38 +08:00 |
|
k88936
|
9e13b83171
|
refactor(充值弹窗): 摊平套餐卡片里的嵌套三元价格行
- 原年付实付文案在模板字符串里再嵌一层 savingCents 三元,属于嵌套三元
- 把年付价格行提升为 annualPriceLine 常量,JSX 只保留 annual 单层分支,文案不变
|
2026-10-04 15:52:29 +08:00 |
|
k88936
|
349af04034
|
refactor(充值弹窗): 摊平结算弹窗里的嵌套三元 listPriceCents
- 原写法 plan / annual 两层三元叠加,扩展条件时容易漏分支
- 改为按 annual 分支 + 可选链与 ?? 兜底,保持 plan 为空时取 0 的语义不变
|
2026-10-04 15:49:31 +08:00 |
|
k88936
|
f3f89efddd
|
feat(shared): 转发 AGC 模型目录 ts-rs 绑定
- 新增 packages/shared/src/llm/modelCatalog.ts,re-export Rust 生成的目录 DTO 与枚举
- 根 index.ts 增加 export type * from './llm/modelCatalog',AGC 从 @genarrative/shared 根导入
|
2026-10-04 13:29:32 +08:00 |
|
k88936
|
e89420053a
|
feat(会员): 模型列表返回可用与不可用分桶
- shared-contracts 新增 llm_catalog.rs:LlmModelsResponse/LlmModelSummary/LlmUnavailableModel/LlmModelUnavailableReason(plan_required/disabled/unknown),未停用优先于档位的 disabled 语义留给域层
- AgcAgentMode/AgcModelProtocol 从 module-runtime 迁入 shared-contracts(前后端 + ts-rs 单一真源),module-runtime re-export 保持路径可用
- 整个目录 DTO 与枚举走 ts-rs,生成到 packages/shared/src/contracts/generated,revision 标 number
- module-runtime 新增 AgcModelCatalog::unavailable_models_for(access):保持目录顺序,停用优先于档位不足,补单测
- api-server public_model_catalog 产出 models + unavailableModels 两桶,重写 model_catalog_tests
|
2026-10-04 13:29:29 +08:00 |
|
k88936
|
582a329468
|
修正(会员弹层):支付方式静态文案去掉 radiogroup/radio 语义
- 微信支付是纯展示的单一选项,不可交互的 radio 会误导读屏
- 改为普通文本容器,视觉样式不变
|
2026-10-04 10:33:04 +08:00 |
|
k88936
|
951b44b582
|
修正(会员弹层):升级报价未到时不再把标准价显示为本次补付
- 新增 amountPending:升级报价缺失时金额区显示占位符,CTA 只显示「补差升级」
- 补一条回归测试覆盖报价加载中的确认页
|
2026-10-04 10:32:50 +08:00 |
|
k88936
|
93837a736d
|
重构(会员弹层):抽取 resolveRovingIndex 复用方向键索引
- 页签列表与泥点档位网格共用同一个 roving index 解析函数
- 用 switch 取代深层嵌套三元,Home/End/左右键语义保持不变
|
2026-10-04 10:31:52 +08:00 |
|
k88936
|
987e82605b
|
重构(会员弹层):档位卡按钮文案去掉嵌套三元
- 用 if/else 预计算 actionButtonLabel,明确 禁用/提交中/默认 的优先级
|
2026-10-04 10:31:20 +08:00 |
|
suzmii
|
072284b846
|
后台游戏管理与审核页排版修复,安全下架入口收敛到游戏管理页
- 游戏管理页:下架改为独立面板(原因必填、校验提示、仍走二次确认),操作列与作者列排版调整,gameId 省略号加 title
- 游戏管理页测试:拆成空原因不提交、面板取消不请求、面板确认后仍需二次确认三条
- 审核页:移除行内游戏级安全下架及其状态与二次确认接线,理由弹窗只服务拒绝,gameId 截断加 title
- 审核页测试:删除两条安全下架用例,替换为行内无该动作、microsZ 时间列渲染、窄视口 gameId 截断
- 新增 adminGameDistributionReview.css:审核页专属列宽与动作列 nowrap,含 1366/980 两档断点
- admin-web admin.css:新增游戏管理表格 5 条排版规则
- shared AdminFormat:新增 normalizeAdminTimestamp,兼容后端 seconds.microsZ 时间口径
- shared AdminFormat 测试:新增 5 条覆盖微秒口径、补零、ISO 与 epoch 兼容、非法值回落
- shared admin.css:admin-status 改为 nowrap
- 文档:后台游戏审核详情计划加取代标注,说明审核页只承载版本级动作
|
2026-10-04 00:17:21 +08:00 |
|
suzmii
|
daae35a1a1
|
AGC 发布版本标签改由工程内部版本派生,拆除 projectVersion 写链路
- shared contracts:resolveGameCreationAppProjectVersion 改为按 manifest.versions 条数派生,删除 isGameCreationAppProjectVersion,projectVersion 注释降级为遗留兼容位
- Rust shared-contracts:删除 resolve_game_creation_app_project_version / is_game_creation_app_project_version / GAME_CREATION_APP_FIRST_PROJECT_VERSION,project_version 注释改遗留位并重写往返测试
- AGC 发布面板:项目版本改为 useMemo 派生只读输入框,删除本地 state、失焦落盘与 onManifestUpdated 回调
- AGC 发布服务:删除 saveGameDistributionProjectVersion,提交版本号缺省改为按 versions 派生
- AGC 原生:发布成功回写与绑定回填不再写 project_version(置空),删除 update_game_distribution_project_version 命令
- AGC 命令注册与白名单:desktop.rs 注销命令、check-config.mjs 移除白名单条目
- AGC 前端装配:App.tsx 移除两处 onManifestUpdated 传递
- AGC 测试:publish/panel 两条测试改为覆盖派生口径,删除四条写回用例
- 注释对齐:game_publish_attempt.rs / project/manifest.rs / styles.css / shared-contracts 的 game_distribution.rs 把版本标签口径改为「由 versions[] 派生」,清掉 projectVersion 遗留位表述
- 文档:decision-log 追加本决策条目,两份 2026-10-02 计划加取代标注,新增 2026-10-03 里程碑与实施计划
|
2026-10-04 00:16:14 +08:00 |
|
k88936
|
dfa92607b4
|
Merge remote-tracking branch 'origin/master' into feat/pricing-plan
Project CI / Backend tests (pull_request) Failing after 1m51s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 3m10s
Project CI / Frontend tests (pull_request) Failing after 1m31s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 4m59s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 5m50s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m38s
Project CI / Repository checks (pull_request) Failing after 4m27s
Project CI / Native shell tests (pull_request) Successful in 7m43s
# Conflicts:
# docs/project-memory/shared-memory/decision-log.md
# server-rs/crates/module-runtime/src/lib.rs
|
2026-10-03 20:32:40 +08:00 |
|
suzmii
|
f4ca1aeecc
|
合并最新 master 到作品管理分支
Project CI / Backend tests (pull_request) Failing after 39s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m44s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Failing after 3m43s
Project CI / Repository checks (pull_request) Failing after 40s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 5m52s
Project CI / Frontend tests (pull_request) Successful in 3m17s
Project CI / AI game creator shell web tests (pull_request) Successful in 3m12s
Project CI / Native shell tests (pull_request) Successful in 6m41s
|
2026-10-03 17:34:23 +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 |
|
suzmii
|
3a1ccf312d
|
修复审核与发布页面 import 排序
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Failing after 2m34s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 4m30s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m18s
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 / AI game creator shell web tests (pull_request) Has been cancelled
Project CI / Repository checks (pull_request) Has been cancelled
按仓库 eslint simple-import-sort 规则整理五个相关文件,保持行为不变。
|
2026-10-03 17:20:02 +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
|
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 |
|
suzmii
|
3aa3e33ceb
|
实现统一项目发行版本
Project CI / AI game creator shell Rust crates (pull_request) Failing after 56s
Project CI / Backend tests (pull_request) Failing after 23s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Failing after 5m7s
Project CI / Repository checks (pull_request) Failing after 21s
Project CI / Frontend 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 2/2 (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
以 projectVersion 作为 AGC 唯一用户版本,支持同版本重复提交和版本回退。
保留 publicationRevision 并发校验与旧客户端自动递增兼容。
|
2026-10-03 16:41: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
|
c165a032c9
|
fix(充点弹窗): 删除硬编码的充值汇率文案
删除「常规充值 ¥1 = 10 永久泥点」的写死文案,档位价格与点数完全由后台商品目录决定,避免目录改价后文案与实际不一致。
Co-authored-by: Junie <junie@jetbrains.com>
|
2026-10-03 15:29:32 +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
|
cf6391962e
|
refactor(会员充值): 并发文案复用统一的不设上限判定
- membershipCopy.ts:resolveMembershipConcurrencyLabel / resolveMembershipConcurrencyShortLabel 改为调用 isUnlimitedConcurrency,去掉重复的 128 判定
Co-authored-by: Junie <junie@jetbrains.com>
|
2026-10-03 14:58:14 +08:00 |
|
k88936
|
16f92f2110
|
refactor(会员): 会员档位目录移除无用的 sort_order,统一按 rank 排序
- module-runtime catalog.rs:RuntimeProfileMembershipPlanRecord 与种子目录去掉 sort_order,目录单测改为按 rank 断言
- module-runtime domain.rs/commands.rs:后台改价入参与构建函数去掉 sort_order
- spacetime-module profile.rs:profile_membership_plan 表结构去掉排序列,membership_plan_records 改按 rank 升序读取
- shared-contracts runtime.rs:ProfileMembershipPlanResponse 与 AdminUpsertProfileMembershipPlanRequest 移除 sortOrder
- spacetime-client:客户端签名、mapper 与 module_bindings 同步移除 sortOrder
- api-server runtime_profile.rs:响应构建与测试夹具去掉 sortOrder
- admin-web:AdminMembershipPlanPage 移除「排序」输入,档位列表改为按 rank 排序,契约类型同步
- packages/shared:ProfileMembershipPlanRecord 去掉 sortOrder,充值弹层改为直接沿用后端的 rank 顺序
- docs:泥点三池与会员计费后端设计同步目录字段与后台能力说明
Co-authored-by: Junie <junie@jetbrains.com>
|
2026-10-03 13:14:04 +08:00 |
|
suzmii
|
44f02ee19b
|
完善游戏审核试玩与客户端版本更新
后台审核详情复用公开游戏详情样式,补齐发布者、冻结资料、素材换签和待审 ZIP 试玩。
AGC 保存已发布作品绑定,支持同一 gameId 更新版本并由用户填写目标版本号。
保留 SpacetimeDB 表结构不变,增加版本号请求校验、幂等边界和本地清单字段。
|
2026-10-03 12:35:57 +08:00 |
|
k88936
|
9ba3aec026
|
新增会员与泥点共享弹层并改版钱包入口
- PlatformProfileRechargeModal 重写为「会员订阅 / 泥点充值」双 Tab,含三池概览、套餐卡、周期切换、会员状态、套餐对比表与确认订单页
- 新增 membershipCopy 收敛数量估算、推荐标签、模型权限与并发展示文案,价格与权益仍读后端目录
- 新增 membershipProduct 提供由档位与周期拼出的会员 productId,避免与组件混导出
- PlatformMudPointWalletEntry 入口改为「可用总额 + 行内月度/永久 + 会员与泥点」,使用详情与兑换码保留为次级入口
- 同步改写共享弹层测试,覆盖双 Tab、升级报价与确认页
Co-authored-by: Junie <junie@jetbrains.com>
|
2026-10-03 12:12:05 +08:00 |
|
k88936
|
40e4e6e384
|
补齐泥点余额视图与时间格式化的兜底
resolveProfileMudPointBalanceView 为 dailyFreeResetPoints 补 ?? 0,避免界面显示 NaN
formatBeijingDateTime 改用 hourCycle: 'h23',保证午夜稳定输出 00:00 而非 24:00
Co-authored-by: Junie <junie@jetbrains.com>
|
2026-10-03 11:15:21 +08:00 |
|
k88936
|
5bb98fd8fc
|
chore(契约): 生成产物不进 prettier,恢复逐字节一致
- .prettierignore 排除 packages/shared/src/contracts/generated/:prettier 重排会让 check:generated-bindings 的「重新生成逐字节比对」永远失败
- 按 ts-rs 实际输出重新生成 ProfileMudPointBalanceResponse.ts(含字段文档注释)
Co-authored-by: Junie <junie@jetbrains.com>
|
2026-10-02 19:05:57 +08:00 |
|
k88936
|
144068187c
|
重构(平台入口): 平台侧与 AGC 壳改用三池余额,退役 legacy 总额写入通道
- 平台入口与钱包 store 不再从充值中心响应读 walletBalance,合计改为按三池派生
- AGC 账户钱包同步:只透传 mudPointBalance,删掉 RechargeContent 的 walletBalance 排除项
- 删除已无生产调用方的 applyLegacyWalletBalanceSnapshot 与对应测试;明细读取失败不再伪造「只有总额」的中间态
- 图片编辑器与平台入口测试 fixture 改为三池形状,钱包面板断言改用「永久泥点 / 月度泥点」
Co-authored-by: Junie <junie@jetbrains.com>
|
2026-10-02 19:03:30 +08:00 |
|