suzmii
456cc42dd3
优化泥点流水的素材消耗原因展示 ( #302 )
...
Project CI / Repository checks (push) Successful in 1m59s
Project CI / Frontend tests (push) Successful in 3m7s
Project CI / Backend tests (push) Successful in 6m13s
Project CI / Native shell tests (push) Successful in 19m24s
Close #296
## 问题
钱包流水目前只把素材类扣费暴露为 `asset_operation_consume`,共享账单组件统一显示“资产操作消耗”,无法说明本次泥点实际用于哪类素材生成。
## 落地方案
- 在既有钱包流水 metadata 中记录服务端确定的 `assetKind`,不修改 SpacetimeDB schema。
- `api-server` 只将内部素材类型白名单映射为用户可见 `reason`,不暴露原始 metadata、资源 ID 或任务 ID。
- 共享钱包流水契约与组件优先展示具体原因;历史、未知或空 metadata 继续回退为“资产操作消耗”。
- 主站、图片画布与 AGC 继续复用同一共享账单组件。
## 当前进度
- [x] 补充权威后端数据契约
- [x] 写入素材操作类型 metadata
- [x] 扩展钱包流水公开 DTO 与安全映射
- [x] 更新共享账单展示与回归测试
- [x] 完成定向验证与边界检查
## 用户可见映射
- 图片、图标图集、美术规范、UI 设计、发布素材:生成美术素材
- 图片修改:编辑美术素材
- UI 素材提取:提取美术素材
- 角色动画:生成角色动画
- 视频:生成视频素材
- 音效:生成音效素材
- 背景音乐:生成背景音乐
- 历史、未知、空 metadata:资产操作消耗
## 验证
- `cargo fmt --all -- --check`
- `cargo test -p api-server profile_wallet_ledger_reason_only_exposes_known_asset_operations`
- `cargo test -p api-server worker_billing_context_freezes_charge_and_preserves_job_metadata`
- `cargo test -p shared-contracts profile_wallet_ledger_response_uses_camel_case_fields`
- `npx vitest run packages/shared/src/components/PlatformProfileWalletLedgerModal/index.test.tsx`
- `npm run typecheck`
- `npx eslint packages/shared/src/components/PlatformProfileWalletLedgerModal/model.ts packages/shared/src/components/PlatformProfileWalletLedgerModal/index.test.tsx packages/shared/src/contracts/runtime.ts`
- `npm run check:encoding`
- `npm run check:spacetime-schema`
- `git diff --check`
以上均通过;Rust 仅输出仓库已有 dead-code warnings。
## 未验证边界
- 未执行真实登录、生成并读取新钱包流水的端到端联调。本机 `8082/3101` 已由另一套本地栈占用,为避免当前分支挂接同一数据库并带起 worker 处理现有队列,本轮未启动 `npm run dev:api-server`。
- 四项远端 CI 已全部通过,PR 已转为 Ready for review。
## 不变项
- 不修改历史流水数据。
- 不调整泥点价格、扣费顺序、幂等 ledger、失败退款或余额结算。
- 不修改 SpacetimeDB schema。
---------
Co-authored-by: 段舒康 <kdletters@qq.com >
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/302
Co-authored-by: Suzumiya <suzmii@qq.com >
Co-committed-by: Suzumiya <suzmii@qq.com >
2026-09-08 14:56:16 +08:00
kdletters
458371a73d
将退款 outbox 主路径迁入 SpacetimeDB ( #204 )
...
Project CI / Repository checks (push) Successful in 4m11s
Project CI / Frontend tests (push) Successful in 8m38s
Project CI / Backend tests (push) Successful in 10m42s
Project CI / Native shell tests (push) Successful in 32m11s
## 变更内容
- 新增 `profile_wallet_refund_outbox` 表与 enqueue/process procedure,退款主路径进入 SpacetimeDB。
- 外部生成失败事务、inline 资产失败和跨节点 worker 统一使用库内 outbox,按 ledger 幂等并在事务内完成退款与删除。
- SpacetimeDB 完全不可达时才写本机 emergency spool,恢复时重新入库;兼容旧 spool 文件并保留 attempt 追踪。
- 更新 SpacetimeDB migration、生成 bindings、架构文档、运维恢复说明和项目决策记录。
## 验证
- `cargo check -p spacetime-module -p spacetime-client -p api-server --manifest-path server-rs/Cargo.toml`
- api-server / spacetime-client / spacetime-module / module-runtime 定向测试
- `npm run check:spacetime-schema`
- `npm run check:spacetime-runtime-access`
- `npm run check:server-rs-ddd`
- `npm run check:encoding`
- `git diff --check`
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/204
Co-authored-by: kdletters <kdletters@qq.com >
Co-committed-by: kdletters <kdletters@qq.com >
2026-08-27 22:04:50 +08:00
k88936
c1342910c5
补齐场景生成的持久计费边界
...
场景 inline 路由建立稳定 operation 身份并延迟退款决策至持久化完成
更新图标图集与场景路由的生产调用计数
静态计数排除测试模块并校验场景调用顺序
2026-08-08 18:16:31 +08:00
k88936
a321243945
合并主分支并统一编辑器生成原子提交
...
接入编辑器生成结果 durable receipt、稳定指纹和 SpacetimeDB 原子事务
保留图标规范与图集生成分模块实现并纳入原子提交和计费边界
统一队列 lease fencing、未知结果重放、画布 CAS 与失败退款语义
同步 schema、bindings、架构文档与回归测试
2026-08-07 19:43:37 +08:00
kdletters
6c53eda71c
修复编辑器生成结果原子提交
...
Project CI / Repository checks (push) Successful in 1m23s
Project CI / Native shell tests (push) Failing after 56s
Project CI / Frontend tests (push) Successful in 3m44s
Project CI / Backend tests (push) Successful in 4m33s
新增九类编辑器生成 durable receipt 与稳定提交指纹
统一资源、素材、binding、画布和队列终态的 SpacetimeDB 原子事务
补齐未知结果有界重放、CAS 刷新、lease fencing 与原子失败退款
收紧 owner、project、object、跨记录语义和 replay 一致性校验
保持 Agent 与 External compact 结果契约及 512 KiB 上限
延迟 inline 计费完成边界并区分 procedure dispatch 前后取消
同步 schema、迁移、生成绑定、架构文档和故障回归测试
2026-08-07 18:03:30 +08:00
kdletters
c2ef8631f8
明确泥点不足的游戏生成中断原因
...
统一余额不足分类与稳定原因码
阻止泥点不足进入重试和对账状态
在游戏聊天与阶段记录展示固定安全说明
补齐 API、Runtime 与前端回归测试
同步技术方案与项目决策记录
2026-08-04 18:58:48 +08:00
kdletters
187d7735b9
修复编辑器定价持久化与资源预览
...
将模型定价改为 SpacetimeDB 强类型持久化并兼容旧配置种子迁移
修复快速编辑支付弹窗期间框选显示和交互冻结
补齐后台图片放大以及视频音频资源预览
收紧主站和 External 资源换签授权并记录管理员跨用户审计
固化外部生成入队价格、attempt 钱包结算和最终 lease 失败收口
加固运行时身份轮换、bootstrap secret 与生产构建发布门禁
同步生成绑定、定向测试、运维脚本和项目文档
2026-07-10 18:28:06 +08:00
kdletters
2cf3953bad
收紧外部生成任务租约和超时保护
...
缩短 worker lease 并新增普通和长任务执行预算配置
让 worker 超过执行预算后写失败并释放槽位
降低 BgFilter 默认超时并加入连续失败熔断兜底
补充资产计费 future 取消时的退款补偿保护
同步生产 env 示例、部署脚本和运维文档
2026-07-09 01:32:23 +08:00
kdletters
6e470c1e40
修复泥点不足错误展示
...
将资产计费余额不足映射为公开错误文案
补充资产计费错误映射单测
2026-06-28 16:55:10 +08:00
kdletters
9516132e94
标注SpacetimeDB超时阶段
...
为SpacetimeDB客户端超时错误记录阶段信息
同步更新后端超时错误映射
避免方洞背景图导入失败误报
2026-06-25 20:10:18 +08:00
kdletters
73a17193d4
升级外部生成为正式任务列表
...
将 external_generation_job 扩展为含价格、确认时间、退款流水和事件审计的正式生成任务事实源
新增外部生成任务列表与确认 BFF,并让平台入口按后端任务补弹完成或失败提示
保护画布生成队列超时、快照回写和自动保存覆盖场景
将 worker 计费退款流水写入 externalGenerationJobId,并补充冷备份后 worker/controller 恢复守护
2026-06-24 15:17:12 +08:00
kdletters
f87ae3f915
合并 origin/master
...
合入 master 的钱包退款 outbox、拼图后台编译互斥与公开链路更新
保留当前分支外部生成 worker 队列语义,并对齐拼图首图 claim 释放顺序
2026-06-11 23:06:41 +08:00
kdletters
f8a80cd795
修复资产计费边界风险
...
资产生成预扣费改为 fail-closed,避免钱包异常时继续调用外部生成
新增钱包退款 outbox,退款失败时本地落盘并后台重放
拼图首图后台任务改用 SpacetimeDB claim 表实现跨实例互斥
计费 ledger id 统一绑定 request_id,并让前端重试复用 x-request-id
同步 SpacetimeDB bindings、后端架构文档和 Hermes 决策记录
2026-06-11 15:55:23 +08:00
kdletters
4f86c1a75b
合并 master 并保留外部生成 worker 模式
...
合入 master 的拼消消、微信能力、OpenSSL 3.2 和 SpacetimeDB 2.4.1 更新
保留外部内容生成 queue/inline、worker lease 与动态扩缩容口径
补齐拼图后台图片生成队列轮询和运行态返回恢复
同步容器、生产运维和 Hermes 共享记忆中的 worker 文档
2026-06-09 16:55:32 +08:00
kdletters
5ea9f0a120
按后台配置扣除创作泥点
...
前端创作表单泥点预校验改为读取入口契约配置
拼图和抓大鹅初始生成后端扣费改为解析后台配置
汪汪声浪初始三图生成按入口总成本拆分扣费
创作工作台按钮和确认弹窗展示后台配置泥点成本
补充泥点扣费回归测试并同步文档与共享记忆
2026-06-08 15:47:48 +08:00
kdletters
8d54ea3374
feat: workerize external generation
2026-06-05 17:29:08 +08:00
JenkenB
548db78ca7
Update Match3D/image-generation docs & code
...
Adds/updates documentation, assets and implementation for Match3D and puzzle image generation workflows. Key changes: decision logs and pitfalls updated to prefer VectorEngine Gemini for Match3D material sheets and to require edits (multipart) for 1:1 container reference images; guidance added for when to use APIMart vs VectorEngine. .env.example clarified APIMart/Responses config. Many new public assets and PPT visuals added. Code changes across frontend and backend: updated shared contracts, server-rs match3d/puzzle/image-generation handlers, VectorEngine/OpenAI image generation clients, and multiple React components/tests to handle UI/background/container image signing, edits workflow, and puzzle UI background resolution. Added src/services/puzzle-runtime/puzzleUiBackgroundSource.ts and related test updates. Includes notes about multipart HTTP/1.1 requirement and test/verification commands in docs.
2026-05-14 20:34:45 +08:00
JenkenB
d33c937ebc
1
2026-05-14 14:21:17 +08:00
JenkenB
acc55d0e13
1
2026-05-02 17:56:42 +08:00
JenkenB
87fbf41fab
1
2026-05-01 20:29:09 +08:00
JenkenB
9d684cb7b3
1
2026-04-30 17:49:07 +08:00
JenkenB
730f485f48
1
2026-04-29 20:56:59 +08:00
kdletters
04dfce57e6
feat: add asset operation wallet ledger
CI / verify (pull_request) Has been cancelled
2026-04-28 12:14:07 +08:00
kdletters
abe44948ee
接入资产生成发布叙世币消耗
CI / verify (push) Has been cancelled
2026-04-27 23:32:34 +08:00