Files
Genarrative/docs
suzmii 86a498f4d2 test(游戏共创): 软删除×Fork 三条规则提取为纯函数并补单测
- domain.rs:新增三个不依赖 SpacetimeDB / ReducerContext 的纯函数
  · `can_serve_as_fork_source(is_deleted, is_published)`:来源可用性 = 未软删除 且 已公开
  · `counts_as_public_derivative(is_deleted, is_published)`:衍生计数纳入,同条件但动机不同(避免虚报热度、避免泄露「这里曾有个作品」),单独成函数以免两条规则将来互相牵连
  · `fork_lineage_visible_identity(parent_available, parent_title, parent_author_name)`:父可用才透传;父不可用必须返回 (None, None),不做任何「拿不到标题就回退用行数据」的降级
- lib.rs:在既有 `pub use domain::{...}` 列表中导出上述三个函数(一行)
- spacetime-module:三处调用点改为调用纯函数,行为完全不变——来源守卫合并为一个 `if`(仍统一映射 FORK_SOURCE_NOT_AVAILABLE)、衍生计数 filter 传入两个布尔、血缘快照的父身份与根标题共用同一函数;`visibility` 判定仍由 module 侧折叠成布尔
- domain.rs 测试:新增 `fork_soft_delete_tests` 5 条——来源可用性四组合(含「已删但 visibility 仍是 published」必须 false)、计数纳入四组合、父可用透传、父不可用即使传入非空标题/作者名也必须 (None, None)、作者名三态(None→None / 空串→空串 / 只含空白原样透传)
- 技术方案 §5.1:把「权限与边界」行的说明改为已由纯函数单测覆盖的三条规则(真实栈用例仍标注待补);「软删除语义收敛 ③溯源摘要」行补上 `fork_lineage_visible_identity` 单测证据
2026-10-05 00:37:18 +08:00
..

文档总览

本目录只把当前实现依据、公开契约和仍在维护的专题合同作为入口。代码、当前文档与项目记忆冲突时,以当前代码和最新专题文档为准;未列入下表的材料不作为实现依据。

必读入口

  1. Agent 工作入口与执行准则
  2. 规范驱动开发工作流
  3. 文档生命周期与现状索引
  4. 当前产品与工程约束
  5. server-rs 与 SpacetimeDB 数据契约
  6. 本地开发验证与生产运维
  7. 项目记忆入口

文档治理

当前产品与平台

AI 游戏创作与 Agent Runtime

图片画布与媒体

后端、运维与测试

已核准专题补充

以下文档已有源码、测试或运行时证据,现纳入 current 集合:

维护规则

  • 当前文档只保留稳定合同、公开契约和仍在推进的专题;一次性计划、实施记录和已关闭实验完成后删除或融合,不再长期堆积。
  • 文档现行/历史/待复核状态以文档生命周期与现状索引为准;未列入当前入口的文档不能直接作为实现依据。
  • docs/project-memory/shared-memory/ 只保存长期有效的概览、决策、流程和踩坑;plans/、todos/ 仅保存仍开放且有明确下一门禁的事项。
  • 修改 /api/external/v1 必须同步 OpenAPI 和契约测试;修改 SpacetimeDB schema 必须同步 migration、表目录、绑定和 schema 检查。
  • 当前入口、公开契约和数据对象只以现役代码、路由树、shared-contracts 与 SpacetimeDB schema / bindings 为准;未登记对象不得作为兼容目标恢复。
  • 新增 Markdown 使用 【标签名】中文标题-YYYY-MM-DD.md 命名;不要把个人配置、密钥、Token、日志或构建产物写入文档。