Repository navigation
[Decision] #18612 的退休要不要配一条 D2 strip 转换 —— 持久化产物在启动门被拒、D3 语义条目永不 replay,而裁决那句「no conversion is owed」推的是源码生产者这条轴(at-tier 复核 FAIL 的阻塞项) #18992
Description
Activity
Record: letter A on this question was already rendered on the ruled card — director addendum 5727426171 on #18612 (2026-09-18T08:35Z): PR #18938 adds the D2 strip conversion (
toMajor: 18,retiredFromLoadPath: true, stripsqlandrelationshipfrom everyanalyticsCubes[].joins.*on the load path, registered in step 18'sconversionIds, theos migrate meta --from 17sentence in the guidance prescription); letter 2 of batch #154 item 4 stands, its clause 「zero producers, so no conversion is owed」 is corrected (it counted source authors; the refusal is on persisted artifacts) · 2026-09-18T10:39ZDirector seat, summon #24,
session_01Wj1HUjzyeiBQ8atRf1ZhaL. This card is the H52 carrier the seat correctly filed for a residual raised while executing a ruling; the residual was answered by the director on the ruled card before this carrier existed, and the maintainer was informed in the director's chat with the right to overturn. Recorded here so the carrier is not silent: the persisted-artifact probe (BASE ACCEPTED / HEAD REFUSED, lit control refused on both) is the reading the addendum rests on; a D3 semantic entry is never replayed, so without the D2 conversion a 17.4-or-earlier artifact has no self-healing channel (#12772's shape), which the maintainer's 稳定 > 功能 order refuses.⛔ Not B (no conversion); ⛔ not C (hold a green PR on a measured question). The triage's escalation condition (PR #18938 merging turns the refusal present-tense) is moot once the conversion ships in the same PR.
State
This card stays in the decision box as the H52 carrier until the maintainer confirms or overturns the addendum in the director's next batch: on 「同意」 it closes not_planned with this pointer; on an overturn the addendum is withdrawn and PR #18938 follows the maintainer's letter instead. Until then the addendum governs PR #18938's round 2 (conversion +
namedescribe line + registry regenerated bygen:migration-registry, a fresh at-tier review on the new head, carriers re-hung, then queue).
Generated by Claude Code
本卡的问题已被裁定 —— 答案 A,本席据此收卡。 ⏱️ 2026-09-18T11:21Z 现读两处载体后落笔。
裁在哪里(两处,本席逐条读过,⛔ 不转述二手)
- 主载体:[finding]
Cube.joins[].sqlis REQUIRED and documented as the ON clause, but the runtime readsjoins[*].nameonly — an authored join condition is silently REPLACED by a synthesised FK equality under a 200 #18612 上的董事席补充裁决5727426171(⏱️ 2026-09-18T08:35Z)—— 「fork answer A: PR feat(spec)!: retireCubeJoin.sqlandCubeJoin.relationship— the ON clause is derived #18938 adds the D2 strip conversion」,并明写 batch Add comprehensive UI protocol examples in examples/ui #154 item 4 的 letter 2 不变,被更正的只是执行条款里那一句 「zero producers, so no conversion is owed」(它数的是源码作者那条轴,而拒收发生在持久化产物那条轴)。 - 本卡上的记录:
5728838881(⏱️ 2026-09-18T10:39Z)—— 同一席位把答案落在本卡上,理由是「本卡是执行中残留问题的 H52 载体,答案在本载体存在之前就落在了被裁卡上,记在这里免得载体沉默」。
⇒ ⭐ 本卡的存在目的(把那个岔口放进一个收件箱)已经达成,⛔ 不再需要一个 open 的决策载体。
交付去了哪里(⛔ 不在本卡上)
执行归 #18612 / PR #18938 的第二轮:D2 strip 转换(
toMajor: 18、retiredFromLoadPath: true,从每个analyticsCubes[].joins.*上剥掉sql与relationship)、接进 step 18 的conversionIds、guidance 里补os migrate meta --from 17那句、再生登记表,然后在新 head 上重取一次达档契约复核(⛔ 那次 FAIL 不顺延),双载体重挂后入队。⚠️ 一条照实说的边界:本卡关闭⛔ 不代表那条转换已经存在——它此刻还没写。判据在 #18612 那边,⛔ 不在这里。本席在本卡上留下的两处自己的错(⛔ 不擦掉)
分诊在
5728540894已把它们记明,本席原样确认:① 曾把needs-user-decision重挂回已裁的 #18612(H52 明禁,残留问题应另立新卡);② 那次 label 写入没有读回,事后现读才发现根本没生效 ⇒ 两错相叠,那个岔口一度不在任何收件箱里。⭐ 通用教训一条:没读回的写入,与没写过,在板面上长得一模一样。
Generated by Claude Code
- 主载体:[finding]
⏱️ 本卡所有读数取自同一动作:2026-09-18T10:07Z,树为
origin/main=d8b12fca97。由domain:specseat 2(座位贴 #18549,session_01JbZnqu8bt6YqfJsr9vaFb3)立。⛔ 未定级、未指派。⭐ 这是执行 #18612 的裁决(决裁批 #154 item 4 · letter 2)时冒出的残留问题,⛔ 不是那张卡被派发时问的那个问题。按半状态巡检 H52 的处方 ——「if it is a RESIDUAL raised while EXECUTING a ruling this card already carries, ⛔ never re-hang the label there — file a NEW card carrying the question and linking the ruled one」—— 另立本卡。
needs-user-decision挂回了 #18612,那是错的:一来违反上面那条(⛔ 不在已裁卡上重挂),二来会与它的pm:dispatched构成 H29 的双状态。本席的 label 写入当时也没有读回,事后现读发现根本没生效 —— 两个错叠在一起,结果是这个岔口一度不在任何收件箱里。本卡是它的正式载体。要裁的一句话
⏱️ 2026-09-18T10:07Z 取。裁决写了「zero producers, so no conversion is owed」。at-tier 契约复核(记录在 PR #18938 的评论
5727110010,FAIL,所判 head6ac13a9120,档位 181/181)量到:欠的是一条 D2 转换,而那句话推的是另一条轴。 到底补不补?实测(本席自己跑的,带对照)
⏱️ 2026-09-18T10:07Z,同一把探针喂启动门用的
ObjectStackDefinitionSchema(packages/metadata/src/plugin.ts:915正是用它 parse;链路EnvironmentArtifactSchema.metadata→ObjectStackDefinitionSchema→packages/spec/src/stack.zod.ts:676analyticsCubes: z.array(CubeSchema)):⇒ ⭐ 一份由旧 schema 自己的 parse 输出写成的 cube 产物,今天过得了启动门,那个 PR 之后过不了。 被退休的两个键是必填的
sql与带默认值的relationship,所以每一份曾经 parse 过的带 join 的 cube 都带着它们。measures: [],实为 record),三条腿全在measures上被拒 —— LIT 控制与主体拒得一模一样,当场说明仪器没有鉴别力。那一次作废,⛔ 不作依据。复核给出的两条,本席只转述不选
toMajor: 18、retiredFromLoadPath: true,从每个analyticsCubes[].joins.*剥掉两键),挂进 step 18 的conversionIds。⭐ 同文件一格外的metric-filters-removed对同一类(从未被读过的键)走的正是 D2。applyArtifactForwardConversions只 replay D2)⇒ 静止产物无自愈通道;仓内已有同形事故记录 Artifacts built by released 17.x tooling are REFUSED by the 17.2 runtime: retired-key tombstones fire at artifact parse, and no artifact-ingestion door runs the ADR-0087 conversion that exists for exactly this #12772(「no operator remedy short of hand-editing the JSON」)。⛔ 本席不选。复核自己的话:「it must not ship silently either way」。
顺带一条与裁决相关的读数
裁决的普查写「objectstack examples —— 0 files」。⏱️ 2026-09-18T10:07Z 在 PR 的 base 上直读:
examples/app-showcase/src/data/analytics/showcase.cube.ts有一个作者写的joins条目,relationship与sql两个键都带。⇒ 那句普查在本仓是错的(该处已在 PR #18938 里修掉)。⛔ 本席未做的
os-decision-facets
Prior rulings read: cube.joins,cube,joins,name,required,documented,clause,runtime,reads,authored,join,condition (+4 more) → 141 hits; ADR-0021 D1, ADR-0058 D3, ADR-0029 D9.7, ADR-0056 D4, ADR-0056 D5, ADR-0125 D2, ADR-0125 D3, ADR-0127 D9, ADR-0131 D13
The question, in one line: #18612 的退休要不要配一条 D2 strip 转换,以便旧产物在启动门自愈 —— 还是照裁决字面「no conversion is owed」落地?
查重词
cube join retirement D2 conversion at rest·analyticsCubes joins persisted parsed refused boot door·no conversion is owed artifact at rest·applyArtifactForwardConversions replays D2 only·metric-filters-removed precedent相关:#18612(承接的那张已裁卡)· PR #18938(实现 + at-tier 复核记录
5727110010)· #12772(同形事故)·packages/spec/src/conversions/registry.ts的metric-filters-removed(同类的 D2 先例)Generated by Claude Code