12 KiB
CrowdRoom · 变更日志(CHANGELOG)
本文件遵循 Keep a Changelog 1.1.0 规范,版本号采用 语义化版本 SemVer 2.0.0。
本日志只记录已发生的设计文档变更;未来计划见
ROADMAP.md。版本号含义:
- 0.x.y —— 设计阶段(pre-MVP),尚未对外发布代码
- 0.5.0(计划) —— M1 MVP 上线,对应
ROADMAP.md§2.1 M1 DoD- 1.0.0(计划) —— M3 v1.0 上线,对应 ROADMAP §2.3 M3 DoD
每个版本下按
Added / Changed / Deprecated / Removed / Fixed / Security / Planned分类。
[Unreleased]
下个版本(v0.3)的待办:v0.2 文档冻结后由子任务 7(
ROADMAP.md)汇总识别出的 4 条跨文档新设计冲突。M1 W4 之前必须完成分诊(修复 / 推迟 / 拒绝 三选一)。
Planned
- C-NEW-1 —— viewState 编码确定性 vs 强 hash 反画像冲突分诊。
04_web_app_plan.md§9.3 把 viewState 设为「gzip+base64url 确定性编码」(便于 OG 缓存复用),但09_privacy.md§5 P-W-7 要求 viewState 在 Realtime / 日志路径上作为画像数据进行强 hash —— 「确定性」与「不可逆」直接冲突。 → 建议方案:「双轨编码」(URL 用确定性、日志用 HMAC-with-rotating-salt)。回写位置:02_api_contract.md§5 +09_privacy.md§5 P-W-7。 时间窗:M1 W2 前。 - C-NEW-2 —— E-19(父硬删快照转移)与 E-17(账号注销三阶段)并发未定义。
若用户在 T+0 注销时其房间被他人 Remix,则 E-19 触发时点(T+0 / T+7 / T+30)、失败回滚顺序、对 Remixer 的通知顺序均未在 v0.2 任何文档明确。
→ 回写位置:
02_api_contract.md§3 新增「注销级联管线」+01_data_schema.md§3.11 补 E-19/E-17 交互矩阵。 时间窗:M1 W3 前。 - C-NEW-3 —— 位置标签城市级 5 km 的数据流端到端未对齐。
09_privacy.md§3.3 定义「永远城市级 5 km」,01_data_schema.md§3.2 G-10 已加location_label字段标注,但03_ios_app_plan.md§8.1NSLocationWhenInUseUsageDescription文案未提「5 km 网格」、且量化发生在客户端还是服务端未定义。 → 回写位置:03_ios_app_plan.md§8.1 +02_api_contract.mdE-02 请求体校验规则。 时间窗:M1 W2 前(合规底线)。 - C-NEW-4 —— 信任分系统初始分计算口径缺失。
10_governance.md§3.2 提到「P1 引入信任分」但无公式;ROADMAP.md§2.3 M3 DoD 已写「初始分 50 / 上限 100 / 因子 6 项」,但权重 / 衰减 / 与 ATT / 举报 / 申诉的勾稽未拍板。 → 回写位置:新增plans/CrowdRoom/11_trust_score.md或并入10_governance.md§3。 时间窗:M2 W14 前(M3 DoR 倒推)。
⚠️ 上述 4 条由 v0.2 文档静态分析推断;若子任务 6 原作者另有 attempt_completion 中明确写明的 C-NEW 原文,请以原作者版本覆盖此区块。
[0.2.0] - 2026-05-19
修订主题:v0.1 review 阶段识别出 10 条 G 漏洞(G-1 ~ G-10)的全量回写。所有修订严格遵守「只追加 / 字段插入 / 文案润色,不改既有字段语义、不破坏既有引用」原则。
Added
- G-1 ——
01_data_schema.md§3.6remixes表新增字段parent_snapshot_path(nullable text),用于父房间被作者硬删时承载几何快照转移目标路径;与10_governance.md§4 P-W-3 拍板的「快照转移 + 署名替换」配套。 - G-2 ——
02_api_contract.md§2.1 新增 3 个 Edge Function 端点:E-17 account-deletion:账号注销三阶段(T+0 软删 / T+7 不可撤 / T+30 硬删),软封装原 E-16E-18 account-export:用户数据一键导出(GDPR Art.20 数据可携权)E-19 parent-snapshot-transfer:父房间硬删时把几何快照转移到所有衍生 Remix
- G-3 ——
02_api_contract.md§7.3 新增 5 条业务错误码:EMBED_RATE_LIMITED(iframe 嵌入超频)EMBED_FORBIDDEN(嵌入域名未在白名单)ACCOUNT_DELETION_IN_PROGRESS(注销窗口期内禁止其它写操作)ACCOUNT_EXPORT_PENDING(导出任务排队中)PARENT_SNAPSHOT_TRANSFER_FAILED(E-19 快照转移失败可重试)
- G-4 ——
03_ios_app_plan.md§8.4 新增PrivacyManifest(PrivacyInfo.xcprivacy)完整结构,覆盖 NSPrivacyTracking / NSPrivacyTrackingDomains / NSPrivacyCollectedDataTypes / NSPrivacyAccessedAPITypes 四组字段。 - G-6 ——
04_web_app_plan.md§1.1 路由表新增R-16 /me/embeds:用户管理自己发出的 iframe 嵌入列表与撤销面板。 - G-7 ——
04_web_app_plan.md§1.1 路由表新增R-17 /admin/reports:运营 reviewer 审核举报队列面板,含状态机视图。 - G-8 ——
03_ios_app_plan.md§1.2 IA 跳转图新增PrivacyDetail节点,作为「我的 → 隐私」一处看完所有开关的入口(对应09_privacy.mdPR-3 用户可控原则)。 - G-9 ——
01_data_schema.md§3.11 新增「软删 vs 硬删分层策略」整章,所有用户数据表追加deleted_at timestamptz字段;定义 T+0 / T+7 / T+30 三个数据生命周期临界点的 RLS 行为。 - G-10 ——
01_data_schema.md§3.2rooms.location_label字段显式加上「城市级 5 km 网格字符串、不含原始 GPS」注释,与09_privacy.md§3.3 PR-2 最小采集原则绑定。
Changed
- G-5 ——
03_ios_app_plan.md§8.1 修订NSLocationWhenInUseUsageDescription等 5 条位置权限文案,明确「会被其他用户看到」与「仅城市级,不含具体地址」两层声明;对应09_privacy.md§4 P-3 拍板。 - 文档头版本号统一从 v0.1 升至 v0.2,并在文档头部说明本次修订涉及哪几条 G 漏洞。
Fixed
- 无。本次修订全部为「追加 / 改进」,未修复 v0.1 既有 bug(v0.1 时尚无线上代码,无 bug 可修)。
Security
- 通过 G-2(E-17 / E-18)将 GDPR Art.17 删除权 + Art.20 数据可携权落到具体 API;
- 通过 G-4 PrivacyManifest 满足 Apple App Privacy Report 强制要求;
- 通过 G-9 软删分层避免 T+0 立即硬删导致级联破坏 Remix 衍生作品的合规风险。
[0.1.0] - 2026-05-19
里程碑:CrowdRoom 设计从无到有,7 份初版文档全部落地,关键决策5 条拍板。这是项目的 ground truth 起点。
Added
00_overview.md—— 总览:产品定位、5 Tab IA、技术栈选型、与 PRISM 复用边界、MVP 8 周范围、5 条根级风险 RK-1~5。01_data_schema.md—— 数据模型:Supabase 8 张表 DDL(v0.2 升至 9 张是 G-1 拆表的结果,v0.1 时为 8 张含room_versions)、RLS 策略、Storage 公开/私有双桶目录、layer_manifest.jsonJSON Schema、CrowdRoom 4 层 ↔ PRISM L1–L4 映射。02_api_contract.md—— API 契约:16 个端点 E-01~E-16、转码 Worker 序列图、Remix 覆盖层remix_overlay.jsonSchema、6 档配额表、4xx/5xx 错误码总表(v0.1 共 35 条,v0.2 增至 40 条)。03_ios_app_plan.md—— iOS 设计:5 Tab + 22 页面 IA、3 个核心 Flow(扫描脱敏上传 / 浏览跳 Web Remix / 通知跳详情)、端侧脱敏管线(RoomPlan → ModelIO → Vision → CIGaussianBlur)、三段式上传、5 阶段 Realtime 进度 UI、A/B/C 质量分、iOS-X1~X5 五条契约。04_web_app_plan.md—— Web 设计:15 条路由(v0.2 增至 17 条)、Next.js + R3F + Zustand + Supabase SSR 技术栈、类 ArcGIS 4 层图层面板 + Named Views、材质替换(material.map即时替换)、家具替换(OBB 自动对齐 + 4 自由度微调)、Remix 浏览器实时合成、SSR / OG / viewState 编码契约、Web-Y1~Y6 六条契约。09_privacy.md—— 隐私设计:5 条隐私原则 PR-15、数据流红黄绿三色图、三类敏感数据全生命周期、6 条 iOS 契约 P-1P-6、3 条 Web 契约 P-W-1/2/7、GDPR + PIPL 合规清单(MVP 8 项 + P2 6 项)、16 项默认值表、8 个第三方 SDK 风险点。10_governance.md—— 治理与社区:4 条治理原则 GR-14、UGC 自动审核流程(NSFW + 敏感词 DFA)、举报状态机、4 条治理契约 P-W-3P-W-6、5 条社区规则 CR-1~5、4 级处罚阶梯 + 严重违规白名单越级、CC BY-NC 4.0 默认协议 / CC0 公共资产库、3 级申诉流程、90 天退场承诺与 CC0 镜像永久可访问。
Decided(关键决策 Top 5)
从全部 7 份文档识别出最具方向性的 5 条决策;完整 10 条版本见
README.md§4。
- 拆 8 张表,不 7 张 —— 独立
room_versions表承载转码异步状态、Remix 父锁定、重传不破坏旧链接(01_data_schema.md§1 D1)。 - 材质是逻辑层,不是 SQL 行 —— 4 层中只有「墙/地/家具」入
layers表,「材质」在layer_manifest.json内嵌slots[](01_data_schema.md§1 D4)。 - Remix = 引用 + 覆盖层 —— 不深拷贝几何,浏览器实时合成 overlay(
02_api_contract.md§1 D-A4 + §4)。 - 三段式上传 —— 客户端 → Edge Function 拿 presigned → 直传 Storage → 回调 Edge Function;避开 4 MB body 限制(
02_api_contract.md§1 D-A2 +03_ios_app_plan.md§5)。 - 端侧脱敏不可降级 —— 人脸
CIGaussianBlur必须在 iPhone 离开 App 进程前完成;服务端永不二次检测人脸(09_privacy.md§1 PR-1 +03_ios_app_plan.md§4 + iOS-X1 契约)。
Notes
- 本版本所有文档仅设计稿,无对应代码。
- v0.1 与 v0.2 同日发布;v0.2 是 v0.1 的 review-and-fix 增量版本(10 条 G 漏洞回写)。
- 后续版本将与代码里程碑(M1 MVP → v0.5-mvp)合并发布。
维护规约
- 每次文档变更必须更新本日志。修改
09_privacy.md或10_governance.md须 DPO + 法务双签后再写入;修改01_data_schema.md字段语义须后端 + iOS + Web 三方签字。 [Unreleased]区块只写「已识别但未发布」的待办;进入版本时把对应条目移入新版本号下。- 不要在 CHANGELOG 写未来计划——未来在
ROADMAP.md。本文件只记发生过的事。 - 版本号变更规则:
- 任何「新增字段 / 新增端点 / 新增错误码 / 新增文档」→ MINOR 升一位(0.x → 0.(x+1))
- 任何「字段语义变更 / 端点删除 / 错误码改语义」→ MAJOR 升一位(破坏性变更,需迁移笔记)
- 文档润色 / typo 修复 → PATCH 升一位
- 每个版本必须给出明确日期(YYYY-MM-DD),不允许「TBD」。
文档版本:v0.2 · 2026-05-19 维护者:CrowdRoom 设计组 关键收获:从 v0.1 初版 7 文档到 v0.2 的 10 条 G 漏洞回写,CrowdRoom 设计阶段共拍板 5 条根级决策 + 13 条隐私契约 + 4 条治理契约 + 6 条 iOS 契约 + 6 条 Web 契约 = 共 34 条对外契约,构成 M1 MVP 8 周实施的全部输入。