previews.list模块 46Pull request preview arenas
为每个拉取请求提供一个一次性场域,分叉时隐藏参与者并抽取数据样本,即使无人通知也会自行移除。
previews.list 读取此工作区持有的在线和近期已回收的预览。previews.open 从源 Yard 分叉出一个,涂黑参与者 DID,默认抽取四分之一的数据,并带有强制性的截止时间。预览是真正的 Yard,被标记为临时,因此永远不会被提升回去。
previews.list模块 46为每个拉取请求提供一个一次性场域,分叉时隐藏参与者并抽取数据样本,即使无人通知也会自行移除。
previews.list 读取此工作区持有的在线和近期已回收的预览。previews.open 从源 Yard 分叉出一个,涂黑参与者 DID,默认抽取四分之一的数据,并带有强制性的截止时间。预览是真正的 Yard,被标记为临时,因此永远不会被提升回去。
keyrepo#number,预览的身份;每个 key 至多存在一个在线预览。yardIdsourceYardIdredacted带有 repo 和 number 的 open 使用 redact 和 sampleRate 分叉源 Yard,默认隐藏 participantDids 并抽取四分之一的数据。
点击运行,将左侧的请求发送到共享演示工作区。
在共享的演示工作区中使用演示密钥运行:任何人都可以看到其中的内容,因此请勿发送任何私密信息。
一个符合 API 接受格式的请求,以及模块返回格式的示例响应。
GET /api/v1/acp/previews/list Authorization: Bearer av_workspace_•••• → 200 { previews, summary } (summary carries live, reaped, expiringWithin24h and oldestLiveKey counts, left out of the catalogue sample)
一个拉取请求分叉出生产 Yard 的抽样、已涂黑参与者的副本,因此审阅者能看到真实的行为,而不会暴露实际涉及的人。
如果拉取请求关闭的 webhook 始终没有到达,sweep 仍会在 TTL 用尽后回收预览,因此被遗忘的预览不会无限堆积。
两次构建竞争开启同一个预览;落败者的分叉会被自动拆除,请求回落到仍然存在的那个预览。
运维人员读取 summary.expiringWithin24h,查看有多少预览即将被回收,而无需逐个 key 去查找。
模块是对一件狭窄事情的强力保证。请仅在其确切范围内依赖它。
participantDids 并抽样 0.25,而不是源 Yard 的完整副本。预览的底层是一个 Yard,所以本模块不向固定的操作目录添加任何东西,也不增加 Yard 创建已使用的计量之外的计费计量。
open 总是先检查同一 repo#number 下是否已有在线预览;它会刷新,而不是第二次分叉。
被涂黑的字段在构建分叉时就被剥离,而不是事后掩盖,任何由其派生的 key 都会被替换为不透明的句柄,因此值不会通过它自己的 key 泄漏。
使用工作区 API 密钥作为 Bearer 令牌进行认证。基础 URL 为 https://api.intramedial.com。
/api/v1/acp/previews/list列出在线和近期已回收的预览,并附汇总。/api/v1/acp/previews/status仅读取汇总计数。此模块没有 MCP 操作。请通过 REST 从任何智能体或程序调用它。
participantDids。sampleRateexpiresAthoursRemainingexpiresAt 的剩余小时数,在读取时计算并合并到每个列出的预览中。summarylive、reaped、expiringWithin24h 和 oldestLiveKey。之后对同一 repo/number 的 open 会刷新现有预览的截止时间,而不是分叉第二个;两次构建之间的竞争会拆除落败者的分叉。
每个预览都有 TTL,默认 72 小时,上限 14 天;无效或缺失的 TTL 会回退到默认值,而不是无限期运行。
拉取请求关闭时,close 会回收预览,无论时钟如何。sweep 在 TTL 到期或拉取请求关闭任一条件下回收,二者相互独立。
{
"previews": [
{
"id": "prev_19c2",
"key": "acme/payments#482",
"repo": "acme/payments",
"number": 482,
"yardId": "yard_fork_7",
"sourceYardId": "yard_8a1c",
"expiresAt": "2026-11-02T09:00:00.000Z",
"redacted": [
"participantDids"
],
"sampleRate": 0.25,
"hoursRemaining": 21.4
}
],
"summary": {
"live": 1,
"reaped": 12,
"expiringWithin24h": 1,
"oldestLiveKey": "acme/payments#482"
}
}yards.instances 对其计量。sweep 接收一份已知拉取请求状态的映射;未提供的任何内容都被视为未知,而这仍会在 TTL 过期时被回收。civics.records48