认清你的未知 · 实施后
← 全部示例

合并前先考考我

要求一份必须通过测验的报告,能把「我扫了一眼 diff」变成经核实的理解——成品不会让你觉得完成了,直到你真的理解为止。

提示词
我想在合并前确保理解这次变更中发生的一切。给我一份关于导出功能 diff 的 HTML 报告——背景、直觉、做了什么——底部附一个我必须通过的测验。
Claude 的输出
Acme · 合并就绪报告

片段导出:改了什么,为什么

一个 14 文件的 diff,为审阅线程添加服务端片段导出。阅读下方三个章节,然后通过测验。若不能,你还没准备好合并——这正是要点。

feature/clip-exportmain · 14 个文件 · 9 次提交
14
文件变更
+612
行新增
−148
行删除

心智模型

一图胜 14 个文件:导出请求现在与之前的路径对比。

此变更前,「导出片段」意味着浏览器用 MediaRecorder 在客户端拼接帧并上传结果——慢、锁定标签页,且在 Safari 上不可用。现在客户端只请求导出;新 worker 从原始媒体在服务端渲染,客户端轮询任务直到出现签名下载 URL。

之前 · 客户端渲染
ReviewPlayer.tsx
MediaRecorder 捕获(标签页内)
约 40–90 秒,标签页锁定
PUT /uploads(完整文件)
S3 exports/ 存储桶
之后 · 服务端任务
ReviewPlayer.tsx
POST /api/exports(返回任务 id)
export-worker(新建,ffmpeg)
S3 exports/ 存储桶
jobs 表(新建)
客户端每 2 秒轮询
GET /api/exports/:id → 签名 URL

此变更引入的三个非显而易见行为

扫 diff 看不出的部分。每一处都是刻意的——理由如下。

01

导出从原始上传渲染,而非审阅者观看的代理文件

是什么worker 拉取 media/originals/,从不使用 720p 审阅代理。因此导出片段可能比审阅者画批注时看到的更清晰
为什么剪辑师导出片段交给客户;交付压缩代理会让他们难堪。批注坐标以归一化(0–1)存储,因此可正确重投影到全分辨率帧上。
在哪里worker/export/render.ts:41 worker/export/burn_in.ts:88
02

导出任务在 worker 崩溃后仍能恢复——靠可见性超时,而非重试

是什么通过设置 locked_until = now() + 10min 认领任务行。若 worker 渲染中途崩溃,不会触发重试;锁只是过期,下一个空闲 worker 从头接手该任务。
为什么ffmpeg 渲染中途不具备幂等性,重试队列需要我们还不想做的死信处理。锁过期用一列实现至少一次语义。后果:崩溃的任务在恢复前最多显示「处理中」10 分钟。
在哪里db/migrations/0142_export_jobs.sql worker/export/claim.ts:19
03

下载 URL 24 小时后过期——导出文件本身保留 7 天

是什么GET /api/exports/:id 返回的签名 S3 URL 有效期 24 小时,但底层对象在 7 天生命周期规则触发前不会删除。再次请求端点可生成新 URL,无需重新渲染。
为什么短 URL 限制工作区外的链接转发(导出可能含未发布素材);更长的对象 TTL 意味着过期的 Slack 链接只需一次 API 调用即可复活,而非 90 秒重新渲染。
在哪里api/exports/get.ts:57 infra/s3_lifecycle.tf:23
所依赖的现有行为

工作区范围的签名 URL 鉴权。GET /api/exports/:id 自身不做权限检查——它复用已守护每条媒体路由的 requireWorkspaceMember 中间件。若该中间件的会话处理发生变化(有一张关于访客审阅者会话的开放工单 BL-2214),导出下载会随之改变。此 diff 中没有任何内容会标记这一点。

第二部分 · 证明你懂了

合并前的六个问题

不是 trivia——每一道都是你在事故或评审中必须正确做出的决策。
得分:0 / 6 · 已答 0

可以合并

6/6 — 你能向被 paging 的人解释这次变更。下方为标准清单。

  • 理解已验证(本测验,6/6)
  • feature/clip-export CI 全绿 · 412 个测试
  • 迁移 0142 已评审 — 增量,无回填
  • 压缩合并,以上摘要作为提交说明
  • 部署后观察 export-worker 仪表盘 30 分钟
  • 在合并评论中注明 BL-2214 依赖

尚未就绪 — 请重读这些章节

你答错了以下问题。缺口直接对应报告内容: