Why: Record the independent U5-style review for the first two B-class surface actions and update the usage guide allowlist note. Evidence: proposal r1 status approved; usage doc API table updated. Impact: Documents authority for backend whitelist implementation. Refs: U5 action-scope r2; plan GenUI boundaries 2026-10-12 Co-authored-by: Cursor <cursoragent@cursor.com>
2.4 KiB
2.4 KiB
title, date, type, revision, status, product_contract_source
| title | date | type | revision | status | product_contract_source |
|---|---|---|---|---|---|
| Generative UI B-class whitelist — builtin.help and system.intent | 2026-10-12 | feat | r1 | approved | generative-ui-u5-action-scope-r2 |
Generative UI B 类加白提案:builtin.help / system.intent
依据:U5 动作范围 r2「每加一条走独立评审」。 本提案对两条命令分别裁定;实施与本提案同批合入。
负责人:裁定 weichen(用户);起草 Agent;更新时间 2026-10-12。
授权
用户 2026-10-12 计划确认:边界三项全部推进;B 类首批加白 builtin.help 与
system.intent。交付模式:authorized-continuous(本增量实施至 Dev 合入)。
一、builtin.help(独立裁定)
| 项 | 内容 |
|---|---|
| 命令 id / action id | builtin.help |
| 类 | B(白名单命令绑定) |
| 危险级 | 低(只读说明,无写副作用) |
| 参数 | 无必填 |
| 通道 | POST /api/surfaces/{id}/actions → cmdbus Entrance=button |
| 用途 | 页面按钮展示可用命令/入口说明 |
| 排除项对照 | 非业务写、非跨会话、非自动触发动作、非 MCP |
裁定:同意加白。
二、system.intent(独立裁定)
| 项 | 内容 |
|---|---|
| 命令 id / action id | system.intent |
| 类 | B(白名单命令绑定) |
| 危险级 | 入口本身低;命中后嵌套分发可触达写命令(既有 chat 行为) |
| 参数 | text(string,必填) |
| 通道 | 同上 Entrance=button |
| 硬化(加白前提) | button 入口只返回 match / candidates,禁止嵌套 Dispatch 目标命令;chat/slash/api 等既有入口行为不变 |
| 用途 | 页面上做意图探测/候选展示,不经按钮偷渡 D 类写 |
| 排除项对照 | 嵌套业务写在 button 路径关闭;仍禁止自动触发动作、MCP、任意命令全开 |
裁定:同意加白,前提硬化生效并有红测。
三、实施面
- Backend:
surfacesvc.AllowedActions;genui.ValidateActionIDs/ Catalog;handleSystemIntentbutton 只读。 - Documents:本提案 + 使用说明 API/动作表白名单更新。
- 红测:白名单外拒绝;help 可分发;intent button 命中写意图零副作用;chat 仍可嵌套。
四、明确不做
D 类业务写直执、扩大白名单至其他内置写命令、自动触发动作、动作结果自动改写页面。