Files
gaojie 1ea74b46da
Sync to site1 / sync (push) Has been cancelled
chore: update CrowdRoom categories from worldmodel to CrowdRoom
2026-05-21 02:20:22 +08:00

140 lines
12 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: "CrowdRoom · 变更日志(CHANGELOG"
date: 2026-05-20
draft: false
tags: ["CrowdRoom", "众包", "3D 重建", "隐私", "数据结构", "路线图"]
categories: ["CrowdRoom"]
---
# CrowdRoom · 变更日志(CHANGELOG
> 本文件遵循 [Keep a Changelog 1.1.0](https://keepachangelog.com/zh-CN/1.1.0/) 规范,版本号采用 [语义化版本 SemVer 2.0.0](https://semver.org/lang/zh-CN/spec/v2.0.0.html)。
>
> 本日志只记录**已发生**的设计文档变更;未来计划见 [`ROADMAP.md`](ROADMAP.md)。
>
> 版本号含义:
> - **0.x.y** —— 设计阶段(pre-MVP),尚未对外发布代码
> - **0.5.0**(计划) —— M1 MVP 上线,对应 [`ROADMAP.md`](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`](ROADMAP.md))汇总识别出的 4 条**跨文档新设计冲突**。M1 W4 之前必须完成分诊(修复 / 推迟 / 拒绝 三选一)。
### Planned
- **C-NEW-1** —— **viewState 编码确定性 vs 强 hash 反画像冲突分诊**
[`04_web_app_plan.md`](04_web_app_plan.md) §9.3 把 viewState 设为「gzip+base64url 确定性编码」(便于 OG 缓存复用),但 [`09_privacy.md`](09_privacy.md) §5 P-W-7 要求 viewState 在 Realtime / 日志路径上作为画像数据进行强 hash —— 「确定性」与「不可逆」直接冲突。
→ 建议方案:「双轨编码」(URL 用确定性、日志用 HMAC-with-rotating-salt)。回写位置:[`02_api_contract.md`](02_api_contract.md) §5 + [`09_privacy.md`](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`](02_api_contract.md) §3 新增「注销级联管线」+ [`01_data_schema.md`](01_data_schema.md) §3.11 补 E-19/E-17 交互矩阵。
时间窗:**M1 W3 前**。
- **C-NEW-3** —— **位置标签城市级 5 km 的数据流端到端未对齐**
[`09_privacy.md`](09_privacy.md) §3.3 定义「永远城市级 5 km」,[`01_data_schema.md`](01_data_schema.md) §3.2 G-10 已加 `location_label` 字段标注,但 [`03_ios_app_plan.md`](03_ios_app_plan.md) §8.1 `NSLocationWhenInUseUsageDescription` 文案未提「5 km 网格」、且量化发生在客户端还是服务端未定义。
→ 回写位置:[`03_ios_app_plan.md`](03_ios_app_plan.md) §8.1 + [`02_api_contract.md`](02_api_contract.md) E-02 请求体校验规则。
时间窗:**M1 W2 前**(合规底线)。
- **C-NEW-4** —— **信任分系统初始分计算口径缺失**
[`10_governance.md`](10_governance.md) §3.2 提到「P1 引入信任分」但无公式;[`ROADMAP.md`](ROADMAP.md) §2.3 M3 DoD 已写「初始分 50 / 上限 100 / 因子 6 项」,但权重 / 衰减 / 与 ATT / 举报 / 申诉的勾稽未拍板。
→ 回写位置:新增 [`plans/CrowdRoom/11_trust_score.md`](11_trust_score.md) 或并入 [`10_governance.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`](01_data_schema.md) §3.6 `remixes` 表新增字段 `parent_snapshot_path`nullable text),用于父房间被作者硬删时承载几何快照转移目标路径;与 [`10_governance.md`](10_governance.md) §4 P-W-3 拍板的「快照转移 + 署名替换」配套。
- **G-2** —— [`02_api_contract.md`](02_api_contract.md) §2.1 新增 3 个 Edge Function 端点:
- `E-17 account-deletion`:账号注销三阶段(T+0 软删 / T+7 不可撤 / T+30 硬删),软封装原 E-16
- `E-18 account-export`:用户数据一键导出(GDPR Art.20 数据可携权)
- `E-19 parent-snapshot-transfer`:父房间硬删时把几何快照转移到所有衍生 Remix
- **G-3** —— [`02_api_contract.md`](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`](03_ios_app_plan.md) §8.4 新增 `PrivacyManifest``PrivacyInfo.xcprivacy`)完整结构,覆盖 NSPrivacyTracking / NSPrivacyTrackingDomains / NSPrivacyCollectedDataTypes / NSPrivacyAccessedAPITypes 四组字段。
- **G-6** —— [`04_web_app_plan.md`](04_web_app_plan.md) §1.1 路由表新增 `R-16 /me/embeds`:用户管理自己发出的 iframe 嵌入列表与撤销面板。
- **G-7** —— [`04_web_app_plan.md`](04_web_app_plan.md) §1.1 路由表新增 `R-17 /admin/reports`:运营 reviewer 审核举报队列面板,含状态机视图。
- **G-8** —— [`03_ios_app_plan.md`](03_ios_app_plan.md) §1.2 IA 跳转图新增 `PrivacyDetail` 节点,作为「我的 → 隐私」一处看完所有开关的入口(对应 [`09_privacy.md`](09_privacy.md) PR-3 用户可控原则)。
- **G-9** —— [`01_data_schema.md`](01_data_schema.md) §3.11 新增「软删 vs 硬删分层策略」整章,所有用户数据表追加 `deleted_at timestamptz` 字段;定义 T+0 / T+7 / T+30 三个数据生命周期临界点的 RLS 行为。
- **G-10** —— [`01_data_schema.md`](01_data_schema.md) §3.2 `rooms.location_label` 字段显式加上「城市级 5 km 网格字符串、不含原始 GPS」注释,与 [`09_privacy.md`](09_privacy.md) §3.3 PR-2 最小采集原则绑定。
### Changed
- **G-5** —— [`03_ios_app_plan.md`](03_ios_app_plan.md) §8.1 修订 `NSLocationWhenInUseUsageDescription` 等 5 条位置权限文案,明确「会被其他用户看到」与「仅城市级,不含具体地址」两层声明;对应 [`09_privacy.md`](09_privacy.md) §4 P-3 拍板。
- 文档头版本号统一从 v0.1 升至 v0.2,并在文档头部说明本次修订涉及哪几条 G 漏洞。
### Fixed
- 无。本次修订全部为「追加 / 改进」,未修复 v0.1 既有 bug(v0.1 时尚无线上代码,无 bug 可修)。
### Security
- 通过 G-2E-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`](00_overview.md) —— 总览:产品定位、5 Tab IA、技术栈选型、与 PRISM 复用边界、MVP 8 周范围、5 条根级风险 RK-1~5。
- [`01_data_schema.md`](01_data_schema.md) —— 数据模型:Supabase 8 张表 DDLv0.2 升至 9 张是 G-1 拆表的结果,v0.1 时为 8 张含 `room_versions`)、RLS 策略、Storage 公开/私有双桶目录、`layer_manifest.json` JSON Schema、CrowdRoom 4 层 ↔ PRISM L1L4 映射。
- [`02_api_contract.md`](02_api_contract.md) —— API 契约:16 个端点 E-01~E-16、转码 Worker 序列图、Remix 覆盖层 `remix_overlay.json` Schema、6 档配额表、4xx/5xx 错误码总表(v0.1 共 35 条,v0.2 增至 40 条)。
- [`03_ios_app_plan.md`](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`](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`](09_privacy.md) —— 隐私设计:5 条隐私原则 PR-1~5、数据流红黄绿三色图、三类敏感数据全生命周期、6 条 iOS 契约 P-1~P-6、3 条 Web 契约 P-W-1/2/7、GDPR + PIPL 合规清单(MVP 8 项 + P2 6 项)、16 项默认值表、8 个第三方 SDK 风险点。
- [`10_governance.md`](10_governance.md) —— 治理与社区:4 条治理原则 GR-1~4、UGC 自动审核流程(NSFW + 敏感词 DFA)、举报状态机、4 条治理契约 P-W-3~P-W-6、5 条社区规则 CR-1~5、4 级处罚阶梯 + 严重违规白名单越级、CC BY-NC 4.0 默认协议 / CC0 公共资产库、3 级申诉流程、90 天退场承诺与 CC0 镜像永久可访问。
### Decided(关键决策 Top 5
> 从全部 7 份文档识别出**最具方向性**的 5 条决策;完整 10 条版本见 [`README.md`](README.md) §4。
1. **拆 8 张表,不 7 张** —— 独立 [`room_versions`](01_data_schema.md) 表承载转码异步状态、Remix 父锁定、重传不破坏旧链接([`01_data_schema.md`](01_data_schema.md) §1 D1)。
2. **材质是逻辑层,不是 SQL 行** —— 4 层中只有「墙/地/家具」入 `layers` 表,「材质」在 `layer_manifest.json` 内嵌 `slots[]`[`01_data_schema.md`](01_data_schema.md) §1 D4)。
3. **Remix = 引用 + 覆盖层** —— 不深拷贝几何,浏览器实时合成 overlay([`02_api_contract.md`](02_api_contract.md) §1 D-A4 + §4)。
4. **三段式上传** —— 客户端 → Edge Function 拿 presigned → 直传 Storage → 回调 Edge Function;避开 4 MB body 限制([`02_api_contract.md`](02_api_contract.md) §1 D-A2 + [`03_ios_app_plan.md`](03_ios_app_plan.md) §5)。
5. **端侧脱敏不可降级** —— 人脸 `CIGaussianBlur` 必须在 iPhone 离开 App 进程前完成;服务端永不二次检测人脸([`09_privacy.md`](09_privacy.md) §1 PR-1 + [`03_ios_app_plan.md`](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)合并发布。
---
## 维护规约
1. **每次文档变更必须更新本日志**。修改 [`09_privacy.md`](09_privacy.md) 或 [`10_governance.md`](10_governance.md) 须 DPO + 法务双签后再写入;修改 [`01_data_schema.md`](01_data_schema.md) 字段语义须后端 + iOS + Web 三方签字。
2. **`[Unreleased]` 区块**只写「**已识别但未发布**」的待办;进入版本时把对应条目移入新版本号下。
3. **不要在 CHANGELOG 写未来计划**——未来在 [`ROADMAP.md`](ROADMAP.md)。本文件只记发生过的事。
4. **版本号变更规则**
- 任何「新增字段 / 新增端点 / 新增错误码 / 新增文档」→ MINOR 升一位(0.x → 0.(x+1)
- 任何「字段语义变更 / 端点删除 / 错误码改语义」→ MAJOR 升一位(破坏性变更,需迁移笔记)
- 文档润色 / typo 修复 → PATCH 升一位
5. **每个版本必须给出明确日期**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 周实施的全部输入。