Part of objectstack-ai/hotcrm#508
现象
一个在列表视图上按 bulk 语义接线的 script action(hotcrm 的 mass_update_stage,opportunity 列表),在 17.0.0-rc.2 上不存在任何能把多行选择送达 action input 的派发路径。input.selectedIds 在所有已知形状下都为空。
证据(hotcrm@0899b4f + @objectstack/* 17.0.0-rc.2,独立 dev server、全新种子库、admin token)
# A. 顶层 selectedIds(2 行)
POST /api/v1/actions/crm_opportunity/mass_update_stage
{"selectedIds":["22EA…","3DD_…"],"params":{"stage":"needs_analysis"}}
→ 400 {"code":"VALIDATION_ERROR","message":"mass_update_stage: no opportunity selected"}
(顶层键未投递进 body 的 input,action 自己的「未选中」校验命中)
# B. params.selectedIds
→ 400 "Invalid action params: Unknown action param \"selectedIds\" — not declared on this action"
(新参数校验器按声明拒绝,选择集不属于 declared params——它本该走 input,而 input 收不到)
# C. Console 工具栏,选中 2 行后填参提交
→ 客户端红 toast「This action runs on a single record — select exactly one row.」,零网络请求
(选择集根本不出客户端)
每次尝试后 re-GET 记录:stage 保持不变。失败均为显式 400 / 显式 toast,rc.0 时代的假成功路径已不存在(那半已修,好)。
对照组:单行 {"recordId":…,"params":{…}} 派发能到达服务器并执行到 action body(hotcrm 侧 body 内另有一个与本单无关的签名缺陷,hotcrm 自修)。即 recordId 通道是通的,缺的只是多行选择这一通道。
期望
以 bulk 语义接线的 action 至少有一条有文档的派发形状能把当前选择集送达 action input(例如 input.selectedIds):REST 一条 + console 选择栏/工具栏一条。
关联
- hotcrm 侧的选择栏 bulk 按钮在 rc.0 假成功时代被 app 侧摘除(hotcrm#588);平台交付多选投递后,hotcrm 会恢复
opportunity.view.ts 的 bulkActions 一行并以「选择栏 POST 携带 selectedIds」为验收条件(记录在 hotcrm#508)。
- 三轮 rc.2 复核证据(API 全形状 + 浏览器走查 + 截图/抓包文件)见 hotcrm#508 的 2026-08-05 评论。
Part of objectstack-ai/hotcrm#508
现象
一个在列表视图上按 bulk 语义接线的 script action(hotcrm 的
mass_update_stage,opportunity 列表),在 17.0.0-rc.2 上不存在任何能把多行选择送达 action input 的派发路径。input.selectedIds在所有已知形状下都为空。证据(hotcrm@0899b4f + @objectstack/* 17.0.0-rc.2,独立 dev server、全新种子库、admin token)
每次尝试后 re-GET 记录:
stage保持不变。失败均为显式 400 / 显式 toast,rc.0 时代的假成功路径已不存在(那半已修,好)。对照组:单行
{"recordId":…,"params":{…}}派发能到达服务器并执行到 action body(hotcrm 侧 body 内另有一个与本单无关的签名缺陷,hotcrm 自修)。即 recordId 通道是通的,缺的只是多行选择这一通道。期望
以 bulk 语义接线的 action 至少有一条有文档的派发形状能把当前选择集送达 action input(例如
input.selectedIds):REST 一条 + console 选择栏/工具栏一条。关联
opportunity.view.ts的 bulkActions 一行并以「选择栏 POST 携带 selectedIds」为验收条件(记录在 hotcrm#508)。