456cc42dd3
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>
文档总览
本目录只把当前实现依据、公开契约和仍在维护的专题合同作为入口。代码、当前文档与项目记忆冲突时,以当前代码和最新专题文档为准;未列入下表的材料不作为实现依据。
必读入口
当前产品与平台
- 当前产品与工程约束:现役入口、账号钱包、UI 和后端分层。
- 平台入口与玩法链路:只描述现役平台壳与旧模板退役边界。
- 外部 OpenAPI 与 API Key 接入方案
- External v1 OpenAPI:公开 HTTP 契约唯一机器可读来源。
AI 游戏创作与 Agent Runtime
-
LLM 累计额度结算:Router 累计额度、首次基线与原子钱包结算。
-
AI 游戏创作智能体 App 实施计划:当前 DirectProject、受控语义工具、UI workflow、资源和运行时合同。
-
DirectProject 客户端 Skill 与 MCP 扩展导入方案:客户端扩展导入、按独立 Skill/MCP 拆分、命名、启用和启动时注入边界。
-
AGC 客户端更新检查与下载:启动版本检测、OSS 清单格式和下载约定。
-
DirectProject 本轮附件路径映射:Direct 首轮只映射附件原名与项目相对路径,不灌正文、不区别 GDD。
-
Direct 回合行为审计账本:Direct GUI 回合把 native 读 / MCP / 写文件落成项目内有界时间线,用于判断有没有打开本轮附件。
-
项目开发工作台 PRD:当前工作台页面和验收边界。
-
AGC 错误报告与诊断上传:当前进程错误事件、应用级日志和管理员查看器合同。
-
立项策划 Agent(Fast GDD):当前策划入口、审批和恢复合同。
图片画布与媒体
- 共享基础组件库与展示页:网站与客户端复用的无业务 UI chrome、样式边界和
/components展示页。 - 客户端素材创作无限画布阶段一合同
- 图片画布结构化持久化与迁移回滚
- 编辑器生成结果原子提交与幂等重放
- 画板音乐生成入口:BGM/SFX 共享视图、独立业务规则和当前发布门禁。
- 画布 Agent 对话面板
- 画布 Agent 会话消息存 OSS
- 编辑器模型定价配置
后端、运维与测试
- BgFilter 受限资源调度方案
- Issue225 登录成功 AGC 用户归属修复:登录 route tracking 的真实用户归属、
daily_login幂等边界和实施验收。 - SpacetimeDB 连接池取消安全
- Jenkins 容器预览部署控制面
- 浏览器内 AI Web 工程沙箱预览
- AI Web 工程 Runner 安全模型
- npm workspaces 统一依赖边界
- React 组件测试准则
- 宿主壳能力统一协议
- Expo React Native 与 Tauri 宿主壳方案
维护规则
- 当前文档只保留稳定合同、公开契约和仍在推进的专题;一次性计划、实施记录和已关闭实验完成后删除或融合,不再长期堆积。
docs/project-memory/shared-memory/只保存长期有效的概览、决策、流程和踩坑;plans/、todos/仅保存仍开放且有明确下一门禁的事项。- 修改
/api/external/v1必须同步 OpenAPI 和契约测试;修改 SpacetimeDB schema 必须同步 migration、表目录、绑定和 schema 检查。 - 旧模板、旧公开作品、旧运行态和旧后端路线不因历史源码或数据表仍存在而恢复入口。
- 新增 Markdown 使用
【标签名】中文标题-YYYY-MM-DD.md命名;不要把个人配置、密钥、Token、日志或构建产物写入文档。