来源:docs/PLATFORM_GAPS_FROM_TEMPLATES.md 第 20 条(与 #5 强关联)。
范围调整(2026-07): 原 issue 混装了 delegation / OOO / proxy。经代码盘点(见下),委派的权威原语已在开源核心(ADR-0091 职务代理 + ApprovalService.reassign),而治理 / 合规 / 代办访问(act-as)属企业版,已拆分至 objectstack-ai/cloud#855。本 issue 收敛为社区版必备的“审批不冻结”连续性底线。
现象
审批人是具体的人,休假 / 出差 / 离岗会让流程冻结、客户 SLA 跳水。
平台现状(已在 OSS 核心)
- 审批人解析中枢
ApprovalService.expandApprovers()(plugin-approvals/src/approval-service.ts:300)
- 任务级转交
reassign()(plugin-approvals/src/approval-service.ts:1036),已带审计 + 通知
- 职位限时委派(ADR-0091 职务代理):
delegatable 职位 + sys_user_position.{delegated_from, valid_from, valid_until, reason},isGrantActive() 解析时过滤;explain-engine 已能显示 “via delegation from A until Y”
- 审计(
sys_approval_action)+ 通知(service-messaging)基础设施
建议范围(社区版)
M1 · OOO 自动跳过 + 候补
- 新增自助 OOO / 委派状态对象(仿
sys_user_position,独立对象,valid_from / valid_until + delegate_to + reason + trackHistory),不挂在锁定的 sys_user 标量上
expandApprovers 解析出具体 user 后,命中生效中 OOO → 替换 / 追加候补人;覆盖 type: user / manager / field(职位路径 ADR-0091 已覆盖)
- 复用
core/src/security/grant-validity.ts 的 isGrantActive() 做时间窗判定
M2 · 临时委派(单任务)
- 引擎能力已在(
reassign);补“委派人自助声明”语义 + 前端按钮(objectui)
M4 · 审计 + 通知(布线)
- 替换 / 委派发生时写
sys_approval_action(如 action=ooo_substitute,记 A → B + reason),保证社区版“谁替了谁、为什么”可追溯;通知双方
语义注记:expandApprovers 在请求开启时快照具体 user id,故“请求开启后才生效的 OOO”不追溯(职位 / tier 路径实时重算)——需显式决定。
不在本 issue 范围(→ 企业版 objectstack-ai/cloud#855)
代办访问 / act-as 收件箱 · 委派治理 / SoD · 组织级 OOO/代理管理控制台(代管他人) · 委派合规报表 / 导出 / 认证复核
验收
现象
审批人是具体的人,休假 / 出差 / 离岗会让流程冻结、客户 SLA 跳水。
平台现状(已在 OSS 核心)
ApprovalService.expandApprovers()(plugin-approvals/src/approval-service.ts:300)reassign()(plugin-approvals/src/approval-service.ts:1036),已带审计 + 通知delegatable职位 +sys_user_position.{delegated_from, valid_from, valid_until, reason},isGrantActive()解析时过滤;explain-engine 已能显示 “via delegation from A until Y”sys_approval_action)+ 通知(service-messaging)基础设施建议范围(社区版)
M1 · OOO 自动跳过 + 候补
sys_user_position,独立对象,valid_from/valid_until+delegate_to+reason+trackHistory),不挂在锁定的sys_user标量上expandApprovers解析出具体 user 后,命中生效中 OOO → 替换 / 追加候补人;覆盖type: user/manager/field(职位路径 ADR-0091 已覆盖)core/src/security/grant-validity.ts的isGrantActive()做时间窗判定M2 · 临时委派(单任务)
reassign);补“委派人自助声明”语义 + 前端按钮(objectui)M4 · 审计 + 通知(布线)
sys_approval_action(如 action=ooo_substitute,记A → B+ reason),保证社区版“谁替了谁、为什么”可追溯;通知双方不在本 issue 范围(→ 企业版 objectstack-ai/cloud#855)
代办访问 / act-as 收件箱 · 委派治理 / SoD · 组织级 OOO/代理管理控制台(代管他人) · 委派合规报表 / 导出 / 认证复核
验收
type: user/manager/field生效,窗口外恢复procurement/compliance审批流:审批人休假不再冻结