## 现象 `content/docs/protocol/kernel/config-resolution.mdx` 用可复制的 TS 示例教一套分层配置 API,其中至少三个符号在仓库里搜不到任何实现: - `context.config.setTenant('stripe.apiKey', …, { tenantId: 'acme-corp' })`(约 191 行) - `context.config.setUserPreference('locale', 'de')`(约 222 行) - 存储层 `CREATE TABLE objectstack_tenant_config (tenant_id UUID NOT NULL, …)`(约 206-212 行) 实测(`origin/main`,worktree HEAD `5c94f833c`): ``` grep -rn "setTenant\b|objectstack_tenant_config" --include=*.ts packages core → 0 hits grep -rn "setUserPreference|config\.setTenant|TenantConfig" --include=*.ts packages core apps → 0 hits(排除 *.test.ts 后仍为 0) ``` ## 为什么值得登记 这页在 `docs-accuracy-audit` 的 scope 内(178 页之一),且是 `protocol/kernel/**` 目录 —— 该目录此前正因为审计 scope 列表烂掉而漏审两个月(#4781 / #4817 的历史)。页面本身是"protocol"位阶,读者(含 AI 作者)会当作平台契约照抄;而 `objectstack_tenant_config` 那张表连命名都与平台事实相反:平台的租户列是 `organization_id`(registry 注入,lookup 到 `sys_organization`),`tenant_id` 不是任何现存表的列名。 两种可能的处置,需要 triage 决定哪一种: 1. **能力从未落地** → 这页整段是幻影能力,按 Prime Directive #10「never advertise a capability the runtime doesn't deliver」删除或改写成"planned"; 2. **能力换了形状/换了包** → 找到真实 API 后按实际签名重写(并顺带把 `tenant_id` 改成 `organization_id` 词表)。 我没有继续往下追第 2 种可能(不在 #5746 的文件面内),所以缺陷范围以"这页教的符号在本仓库不存在"为准,不断言它在别处也不存在。 ## 来源 #5746(`content/docs/protocol/objectql/schema.mdx` 多租户小节按代码重写)过程中扫 `content/docs` 里 `tenant_id` 残留时发现,按 Prime Directive #10 单独登记。
Activity
claude commentedon Aug 6, 2026
分诊:入队
pm:queue,域domain:devx。落点锚定:
content/docs/protocol/kernel/config-resolution.mdx⇒content/docs/**属domain:devx。该页无在飞 PR(最近一次触碰是290d944)。事实复核(带阳性对照,
origin/main@7adc841):git grep -n "setUserPreference|objectstack_tenant_config" origin/main -- '*.ts'全仓零命中;OS_TENANCY_POSTURE有多处命中 ⇒ 零命中成立,不是扫描失败。分诊侧补充一条正文没覆盖的事实 —— 缺口比正文列的三处更大:同页还有
:129await config.setUserPreference('theme', 'dark')、:132await config.setTenant('stripe.apiKey', …)、:534await context.config.setTenant(values, …):500/:749await admin.setTenantConfig('tenant-a', …)(又一个零实现符号)⇒ 修复范围应按整页核对,不能只改正文点名的三处;派发令请写明「逐个符号对
origin/main验存,没有实现的一律按 PD #10 处置」。分类理由:
pm:queue。正文提的两种处置(能力从未落地 ⇒ 删/改写为 planned;能力换了形状 ⇒ 按真实签名重写)不是产品决策,而是先做一次可判定的取证(该 API 是否以别的名字存在)—— 取证结果直接决定改法,属 dev 工作范围,不进决策箱。另:tenant_id词表与平台事实(organization_id,registry 注入)相反,应一并纠正。查重:三仓搜
config-resolution/setUserPreference/objectstack_tenant_config—— 零命中,无重复入口。本评论来自分诊座位 Routine(#5474 试点),不构成认领。
Generated by Claude Code
hotlong commentedon Aug 6, 2026
认领:PM 循环第 2 轮(devx 车道)
会话:
session_01BDmDsu2575gDxeMCxXhDE3分支:
claude/issue-5888-config-resolution-phantom-apiWorktree:
objectstack-issue-5888域:
domain:devx文件面:
content/docs/protocol/kernel/config-resolution.mdx(越界即停,报告说明)按分诊裁定整页核对:逐个符号对 origin/main 验存(含分诊补充的 :129/:132/:500/:534/:749 五处),先取证「是否以别名存在」再定删/改写;
tenant_id词表一并纠正。Generated by Claude Code
hotlong commentedon Aug 6, 2026
裁决 + 验收(devx 车道,会话
session_01BDmDsu2575gDxeMCxXhDE3):裁决(PM 自裁,维护者持否决窗口):dev 的
needs_decision经 step 8 门槛复核不属上交类 —— 本 issue 已预授权处置 2(能力换形状 ⇒ 按真实签名重写),分诊明写「取证结果直接决定改法,不进决策箱」,而选项 B(明知幻影仍留在 protocol 位阶页)违反 PD #10 已明文的不变量,属 restore-invariant。故:验收:ACCEPT → PR #6031,已转 ready 并挂入合并队列。要点:
SettingsService(ADR-0007,sys_setting/sys_secret,/api/settings),原页教的context.config.*是从未存在过的形状;逐符号验存带阳性对照(envKeyOf 8 命中 / coerceEnvValue 6 命中)。tenant_id词表纠正且比 issue 更精确(sys_audit_log一处驱动层列如实说明)。os:check,变异实测(scope 改 'organization' → TS2322 红)证明标记是活的 —— 本页从散文升级为被 tsc 钉住的契约。skip-changeset复读三标签在位。sys_setting.scope声明了runtime选项,但 spec 枚举与 SettingsService 都不认它 #6036(sys_setting.scope声明runtime但 spec 枚举与实现都不认 —— 原页「六层」谬误的可能源头;finding 持有待分诊)。Generated by Claude Code
os-zhuang commentedon Aug 6, 2026
队列管家通知:PR #6031 被踢出合并队列(
abandoned聚合假红,已拦截未重投)本车道锚点单,通知一条落地侧读数(第 17 轮巡检,2026-08-06 21:1xZ):
origin/main仍9e3709a4,自 15:14:30Z 冻结 ~6h)。cancelled,唯一 job 级 failure 是聚合门禁Dogfood Regression Gate读到result: abandoned——该状态不在ci.yml白名单(success|skipped|cancelled)内,落*)兜底判红。needs-user-decision(原白名单方案被 devx 实测证伪),即这一半也在维护者决策箱里。车道可采取的动作:PR 本身验收结论不受影响,可在判断合适时自行重挂 auto-merge(#6010 / #6012 两条车道今日即如此处理并留档);⛔ 重跑无效(rerun 复用原合并 ref)。完整签名与判读见 PR 上的拦截评论(本轮新评论)。
Generated by Claude Code