2026-07-21:AC-020–AC-024 superseding delta
本 Delivery 中所有 binding alias、block.interfaces 与 document allowlist 设计均被 Root #1393 的 AC-020–AC-024 取代。Unary 调用改为源码携带 { interfaceId, schemaDigest };Studio 只生成完整 DTO + 函数并插入光标,不保存绑定;Host/Backend 直接校验 Catalog descriptor、页面/Tab/Block、目标路由权限与按次 write grant。旧 alias 请求必须失败,不做兼容。
Issue 元数据
纵向交付结果
作者新建 TSX 代码区块后获得标准 BlockModule + main 模板;从连接器选择任意合格 Callable OpenAPI operation,可在当前光标插入完整、可编辑、可追溯的参数类型、响应实体和命名函数,并在浏览器受限 Worker 中通过本地区块绑定安全执行。
本 Delivery 必须形成“目录选择 → 光标插入 → 编辑 → 编译 → 运行 → 权限/Schema 校验 → 结果返回”的完整纵向链路,不把后端 contract、SDK 类型或生成器拆成独立 Delivery。
结算的 Root AC
AC-001:新建区块使用 BlockModule + main,正确呈现 BlockResult.view。
AC-002:合格 OpenAPI operation 在光标插入完整源码,连接器不改写 main。
AC-003:application_conversations 只显示 list/get,当前 filter 生成 string。
AC-004:生成函数只能通过本地区块绑定执行,运行边界强制安全 contract。
AC-005:上下文/接口代码可删除与重新注入,Schema 漂移有 diff 且不静默覆盖。
范围与所有权
范围内
修正 OpenAPI operation 真值:按数据模型 capability 生成允许的 operation;响应/request Schema 完整可解析。
建立 OpenAPI ∩ Callable Adapter ∩ Frontstage scope ∩ user authorization 目录。
建立 Page Document 本地 binding alias、稳定 operation ref、Schema digest、作用域/风险元数据。
新 Block SDK / Page Protocol contract:BlockModule、main、BlockResult、ctx.interfaces.call。
删除新模板中的 defineBlock/render;更新内置模板、fixture 和开发期示例。
OpenAPI codegen:解析 $ref、path/query/header/requestBody/2xx response,生成具体实体和完整函数。
Monaco 当前光标插入、缺失 import 合并、单次 undo、来源注释、重新注入、过期 diff/重新生成。
运行时 binding alias 解析、输入/输出 Schema 校验、宿主认证/作用域注入、权限/风险检查、脱敏调用追踪。
普通 OpenAPI operation 与数据模型 operation 使用同一条生成和执行路径。
非目标
Agent Flow application key。
任意 URL、直接 HTTP credential、任意网络/npm/DOM/storage/secret。
前端猜测 Filter AST 或 DTO。
自动把接口调用/组件/业务代码写进 main。
虚拟模块隐藏全部生成实现。
静默覆盖用户修改后的生成源码。
本 Delivery 不实现跨区块调度和完整 Draft Run Console,只提供后续所需 BlockResult 与 interface trace contract。
独占模块 / 集成边界
后端 OpenAPI docs/registry、Frontstage Callable 目录与执行适配。
@1flowbase/block-sdk、@1flowbase/page-protocol、受限 Worker module contract。
Frontstage JSX Studio interface connector、editor projection/codegen 与 Page Document binding。
与 [Root] Frontstage 代码区块浏览器运行时编排与加载体验 #1382 的边界:复用其 Worker 生命周期,不改变启动/运行预算和调度 AC。
与 Delivery 2 的边界:交付 BlockResult/BlockContext 基础类型,Signal/依赖调度由 Delivery 2 消费。
与 Delivery 3 的边界:输出结构化 interface trace/source location,Console UI 由 Delivery 3 消费。
验收证据
编号
可观察结果
证据
D1-AC-01
空白模板严格使用 Root 冻结的 BlockModule + main 形态,Page Document 仍拥有 id/title/bindings
template/SDK/runtime fixture + 浏览器创建区块
D1-AC-02
application_conversations 连接器只列 list/get;插入实体、query、response 与完整函数;filter?: string
后端 OpenAPI/目录测试 + codegen snapshot + Monaco
D1-AC-03
至少一个非数据模型的合格 OpenAPI operation 复用同一链路完成绑定、生成和执行
integration fixture
D1-AC-04
path/query/header/body 和 $ref 分组映射正确;认证 header 不进入作者参数
table-driven OpenAPI fixtures
D1-AC-05
未绑定 alias、无 Callable Adapter、越权、Schema 不匹配和风险拒绝均在边界失败且不泄漏敏感信息
controlled negative
D1-AC-06
删除代码后可按同一 binding 重新插入;OpenAPI digest 变化提供 diff,用户改动不被覆盖
editor/version drift fixture
D1-AC-07
连接器不修改 main,生成函数可位于 default export 之后并由作者显式调用
Monaco undo/source fixture
D1-AC-08
旧 defineBlock/render 内置示例完成上线前干净切换,无双 contract 分支
repository/runtime regression
Scout Evidence
MCP interface catalog 已经证明可从静态/动态 OpenAPI 提取 operation、参数位置、解析后的 $ref、result/security/risk/bindable;debug executor 已经证明可在同一 API router 内按 path/query/body 转发请求。
Frontstage 当前仍维护手工 data model query/action registry、handler 与 DTO;编辑器只生成一行通用调用并把类型藏进 extraLib。
Page Runtime 当前 transform 强制 defineBlock、evaluator/worker 调用 render(ctx),但已经具备受限 module injection、Promise effect、日志、phase、schema validation 与 host bridge。
动态 OpenAPI 当前无条件构造五个 CRUD;typed builtin contract 已能判定 RuntimeRead 只读,应成为 operation 裁剪真值。
正式开发 inventory 已冻结为 P1~P4;若 P1 不能形成一个共享 OpenAPI catalog/dispatcher owner,停止回 Root。
Work Packet Ledger
ID
具体代码结果
Input SHA / 依赖
Owned paths
Owner / worktree
AC / fixture
状态 / commit
P1
Callable OpenAPI backend 与 Frontstage catalog/dispatch
beta@844ac282
api-server OpenAPI/MCP/frontstage/runtime docs + tests
developer / reusable D1 worktree
AC-002~004;read-only/non-model/deny/schema
ready
P2
BlockModule/main/BlockResult/interfaces Worker contract
beta@844ac282;与 P1 contract 对齐
page-protocol/page-runtime js-block + tests
Root / assembly
AC-001、004、011;new/old module + effect
ready
P3
Page binding DTO/document 与纯 OpenAPI codegen
P1+P2 assembly
api-client/frontstage api/page-document/jsx-studio lib + tests
D1 developer
AC-002~005;location/$ref/digest
ready
P4
新模板、Monaco 光标插入/重注入与连接器 UI
P3 assembly
block templates/Studio resource/editor/i18n/css + tests
D1 developer
AC-001~005;cursor/undo/no-main-write
ready
Packet 只提交产品代码与指定 fixture,不逐包运行 QA/回归;若缺少机械 compile 将无法安全装配,可执行 handoff 中明确的最小 probe。所有 commit 由 Root 串行装入 assembly。
Test Batch
Backend:api-server Frontstage callable/OpenAPI route integration,覆盖 RuntimeRead list/get、registered non-model operation、bindable/authorization/schema negative。
Page Protocol/Runtime:新模块、旧 contract rejection、BlockResult、interface effect/trace、受限能力回归。
Frontstage:binding/document roundtrip、OpenAPI codegen table fixtures、模板、Monaco cursor/undo/reinject/digest diff、只读目录。
Browser:数据模型 list + 非数据模型 operation 从连接器插入到执行。
执行时机:Root 全部 Delivery 装配并冻结 SHA 后,由唯一 fresh QA 集中执行。
停止与上报条件
OpenAPI 缺失的字段/过滤/响应只能靠前端猜测或兼容才能继续。
新增认证、secret、网络或 Agent Flow application key。
需要改变 [Root] Frontstage 代码区块浏览器运行时编排与加载体验 #1382 Worker budget/lifecycle。
无法把 operation 执行收敛到一个 Callable Registry,或产生两套授权真值。
Work Packet 不能声明单一结果/明确写集合,或共享 contract 无法串行装配。
完成条件
全部 Work Packet 进入 Root assembly,D1-AC-01~08 在集中 Test Batch 有证据,Root fresh QA 通过,结果合入 protected baseline,Root #1393 账本已更新。
2026-07-21:AC-020–AC-024 superseding delta
本 Delivery 中所有
binding alias、block.interfaces与 document allowlist 设计均被 Root #1393 的 AC-020–AC-024 取代。Unary 调用改为源码携带{ interfaceId, schemaDigest };Studio 只生成完整 DTO + 函数并插入光标,不保存绑定;Host/Backend 直接校验 Catalog descriptor、页面/Tab/Block、目标路由权限与按次 write grant。旧 alias 请求必须失败,不做兼容。Issue 元数据
grade:g3hybrid-foundationplan:tree、child-issue、grade:g3、phase:implementation、area:api、area:runtime、area:backend、area:frontend纵向交付结果
作者新建 TSX 代码区块后获得标准
BlockModule + main模板;从连接器选择任意合格 Callable OpenAPI operation,可在当前光标插入完整、可编辑、可追溯的参数类型、响应实体和命名函数,并在浏览器受限 Worker 中通过本地区块绑定安全执行。本 Delivery 必须形成“目录选择 → 光标插入 → 编辑 → 编译 → 运行 → 权限/Schema 校验 → 结果返回”的完整纵向链路,不把后端 contract、SDK 类型或生成器拆成独立 Delivery。
结算的 Root AC
BlockModule + main,正确呈现BlockResult.view。main。application_conversations只显示 list/get,当前filter生成string。范围与所有权
范围内
OpenAPI ∩ Callable Adapter ∩ Frontstage scope ∩ user authorization目录。BlockModule、main、BlockResult、ctx.interfaces.call。defineBlock/render;更新内置模板、fixture 和开发期示例。$ref、path/query/header/requestBody/2xx response,生成具体实体和完整函数。非目标
main。BlockResult与 interface trace contract。独占模块 / 集成边界
@1flowbase/block-sdk、@1flowbase/page-protocol、受限 Worker module contract。BlockResult/BlockContext基础类型,Signal/依赖调度由 Delivery 2 消费。验收证据
BlockModule + main形态,Page Document 仍拥有 id/title/bindingsapplication_conversations连接器只列 list/get;插入实体、query、response 与完整函数;filter?: string$ref分组映射正确;认证 header 不进入作者参数main,生成函数可位于 default export 之后并由作者显式调用defineBlock/render内置示例完成上线前干净切换,无双 contract 分支Scout Evidence
$ref、result/security/risk/bindable;debug executor 已经证明可在同一 API router 内按 path/query/body 转发请求。defineBlock、evaluator/worker 调用render(ctx),但已经具备受限 module injection、Promise effect、日志、phase、schema validation 与 host bridge。Work Packet Ledger
Packet 只提交产品代码与指定 fixture,不逐包运行 QA/回归;若缺少机械 compile 将无法安全装配,可执行 handoff 中明确的最小 probe。所有 commit 由 Root 串行装入 assembly。
Test Batch
停止与上报条件
完成条件
全部 Work Packet 进入 Root assembly,D1-AC-01~08 在集中 Test Batch 有证据,Root fresh QA 通过,结果合入 protected baseline,Root #1393 账本已更新。