Skip to content

finding: cloud 的 runtime-config 生产端会下发 features.scim,而 app-shell 的 RuntimeFeatures 没有这个键(objectui 全仓零消费) #5869

Description

@os-zhuang

观察类发现,顺路撞见,未在任何 PR 中修改 —— 记录而非认领。

观察

packages/app-shell/src/runtime-config.tsRuntimeFeatures 声明了两个「可选商用位」——
customDomain?sso?,注释写明它们由服务端按 plan entitlements 推导、自建/vanilla 运行时上缺席。

cloud 仓 main 上,推导这两个位的那段代码在同一个对象字面量里还推导了第三个位 scim:
packages/objectos-runtime/src/cloud-runtime-config-plugin.tsresolveFeatures 在拿到 plan 时返回
{ aiStudio, autoPublishAiBuilds, customDomain, sso, scim }。framework 侧的 @objectstack/cloud-connection
按 ADR-0012 只搬运一张不透明的 feature map,所以这个键会原样到达 SPA。

本仓实测,带对照:

probe result
grep -rn '\bscim\b' --include='*.ts' --include='*.tsx' packages/ apps/ 零命中(退出码 1)
对照 —— 同一形状的 ssoruntime-config.ts 3 处(接口声明 + 默认值 + 注释)

对照是让这个「零」成为读数而不是 grep 写错的原因:同一条命令对姊妹键 sso 有命中。

为什么记一笔

这是声明面与消费面对不齐的一处:生产端按 plan 推了一个能力位,消费端既没在 RuntimeFeatures 里声明它,
也没有任何地方读它。两种收敛方向都成立,选哪个是产品判断,不是实现判断:

  • SPA 本就该按 features.scim 门控某个 SCIM 相关入口(那么本仓欠一个声明 + 一个读取点);
  • 或者 SCIM 根本不需要 SPA 侧的 affordance(那么 cloud 侧下发的是一个零消费的键,按「已发布零消费的能力
    不因沉没成本获得豁免」应在生产端处置)。

严重度留给分诊定级;⛔ 未打 pm:queue

发现语境

在实现 objectui#5206(runtime-config.ts"Server-side: see" 指针重锚)时读生产端代码撞见 ——
那张卡的修复正是把这条注释指向 @objectstack/objectos-runtimeRuntimeConfigPlugin,而这个键就在那里。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    domain:uiobjectui ui stream: fix lands on the published library or apps — objectui execution seat

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions