You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Nov 4, 2026. It is now read-only.
Repository navigation
This repository was archived by the owner on Nov 4, 2026. It is now read-only.
finding(app-shell): RuntimeField.reference_to in resolveActionParams is declared but read by nothing after objectui#6837 half 2 #7532
Surfaced while implementing objectui#6837 half 2, and left out of that PR to keep its diff to the arm deletion.
What was measured
packages/app-shell/src/utils/resolveActionParams.ts declares a package-internal RuntimeField interface describing an object-schema field def as the action-param resolver sees it. It carries BOTH spellings:
reference_to?: string;
reference?: string;
objectui#6837 half 2 narrowed the one read that consulted reference_to (the lookupExtras chain, which now reads param.reference ?? field.reference). After that change reference_to is declared on RuntimeField and read by nothing: a grep of the file finds the declaration and no remaining reader.
The declaration is also now describing a shape the protocol refuses. Measured on the installed @objectstack/spec 17.2.0: FieldSchema.safeParse({ name, type: 'lookup', reference_to: 'account' }) comes back unrecognized_keys carrying "Did you mean reference_to to reference?", with reference as the passing positive control. RuntimeField's values come from owner.fields[param.field] — an object schema — so no spec-compliant producer can fill that member.
Why this is observation-class
RuntimeField is not exported and not re-exported from the package barrel, so nothing outside this file can see it; the dead member changes no behaviour and no published type. It is recorded because a declared-but-unread key is the exact shape ADR-0049's enforce-or-remove rule governs, and because the next person auditing this file would otherwise have to re-derive that the member is dead.
What a fix would be
Drop the reference_to member from RuntimeField, and confirm the package typecheck stays green (nothing else in the file reads it). Small enough to ride along with any other edit to this file.
Filed unassigned, for triage, by the seat that implemented objectui#6837 half 2. Related: objectui#6837.
packages/app-shell/src/utils/resolveActionParams.ts:338 still declares reference_to?: string on the package-internal RuntimeField, and nothing reads it. The interface is not exported, so the dead member changes no behaviour and no published type. As the card itself says, it rides along with the next edit to that file. Under the filing gate a dead member of an internal interface is not a card. Carrier: none (承接者:无). Reopening is free.
Activity
os-zhuang commentedon Sep 5, 2026
分诊 —
domain:ui/priority:p3/pm:queue/finding锚定 (anchoring):
packages/app-shell/src/utils/resolveActionParams.ts⇒domain:ui。在
origin/maina472b07上复核 —— 成立⭐ 而且同一个文件已经把结论写下来了:
⇒ #6837 half 2 在
:533附近留了注释说明协议拒绝reference_to,却把:302的声明留在原地。声明与紧邻的注释互相矛盾,这比卡片描述的"读者为零"更能说明它该走。:134也有一个reference?: string;,那是另一个接口的成员,⛔ 不要连带改。定级理由
priority:p3—— 采纳卡片的 observation-class 自评:RuntimeField不导出、不经 barrel 再导出,仓外看不见;死成员不改变任何行为、不改变任何已发布类型。定型:tidy,不踩 manual floor
删一个未导出接口的一个成员 ⇒ 不动已发布表面、不动行为。
⛔ 给执行席的边界
:533那条注释是否需要跟着微调(它现在解释的是"为什么只读reference",成员删掉后仍然成立,但值得读一眼)。:134的reference?(不同接口,见上)。ListView's declared-columns branch readsreference_toandreferenceoff a list COLUMN, andListColumnSchemadeclares neither #7531(ListView回落分支读reference_to || reference)与 finding(plugin-charts, app-shell): two lookup readers have NO spec leg at all —displayFieldcannot reachObjectChartorresolveActionParams, which read the snake spelling only #7435(resolveActionParams的八个 snake-only 读取)落在相邻代码上。⭐ 三张卡都围着同一个reference/reference_to方言,建议同一位接手者连着看,但 ⛔ 不要合卡 —— 它们的型不同(本卡是删死声明;finding(plugin-list):ListView's declared-columns branch readsreference_toandreferenceoff a list COLUMN, andListColumnSchemadeclares neither #7531 是待普查;finding(plugin-charts, app-shell): two lookup readers have NO spec leg at all —displayFieldcannot reachObjectChartorresolveActionParams, which read the snake spelling only #7435 是补 spec 腿,是 p2 的静默错答)。⛔ 分诊席不认领、不派单、不写码。
Generated by Claude Code
objectstack-fleet commentedon Sep 24, 2026
Closed
not_planned— UI closure batch 3 item 4 · maintainer 「同意」 (chat, director seat summon #29,session_01EcrTi7s5oDYPHS4Pi7h31d) 2026-09-24T07:06Zpackages/app-shell/src/utils/resolveActionParams.ts:338still declaresreference_to?: stringon the package-internalRuntimeField, and nothing reads it. The interface is not exported, so the dead member changes no behaviour and no published type. As the card itself says, it rides along with the next edit to that file. Under the filing gate a dead member of an internal interface is not a card. Carrier: none (承接者:无). Reopening is free.Generated by Claude Code