Repository navigation
sweep: dead-surface deletions — 7 zero-consumer items, one claim, one PR (findings-triage batch 2026-08-09) #3931
Description
Activity
前提重验:已失效 — 本卡七成员全部已处置,无 PR 可开
批次 19 认领后按卡面规则逐成员重验零消费者前提,基线
origin/main@1b21b1aaa(worktreeclaude/issue-3931-dead-surface-sweep)。结论:七个成员卡全部已 closed,六个的删除面在我的基线之前就已落地,第七个被分诊明确裁定「不删」。删除面为空,未开 PR。逐成员读数
卡 删除面当前状态 落地提交 / 处置 #3901 spec.aria读 已不存在(form-view.ts仅剩记述删除的注释,:195明写 “defaultSort(#3974) andaria(#3901) USED to be copied here”)d374cafa2/ PR #4809#3778 4 处 views:{objectName}invalidate 已不存在,且新增了viewCacheInvalidation.pin.test.ts反向钉住(:240“no write path invalidates a `views:` key — nothing populates one”)d9d346307/ PR #4366(在另一张清扫卡 #4328 下)#3775 packages/core/src/utils/merge-views-into-objects.ts文件已删,@object-ui/core不再导出;残留引用全在 app-shell —— 即卡面要保留的那个活实现d9d346307/ PR #4366#3773 RecordContextValue.loading/.error已删,refresh按 #3460 保留d9d346307/ PR #4366#3731 apps/console/src/schemas/objectDetailPageSchema.ts文件已删,registerObjectDetailWidgetsimport 已摘275d7df13/ PR #4365#3736 整个 apps/console/src/components/schema/目录已删(按卡面「删死代码而非翻译死文本」,未翻译)275d7df13/ PR #4365#3740 peer 行 仍在( package.json:43,src/零 import,UMD 映射在vite.config.ts:46)—— 但卡已 closed (not planned)分诊裁定保留,见下 三个提交均为基线
1b21b1aaa的祖先(git merge-base --is-ancestor全部 YES)。读数控制(防止「grep 没命中」是假读数)
宿主文件全部健在(
form-view.ts213 行、RecordContext.tsx193 行、data-objectstack/src/index.ts4586 行、core/src/index.ts88 行),所以零命中是该行消失而非文件搬走;邻近词正查证明工具在咬:form-view.ts另有 6 处spec.命中、data-objectstack另有 5 处metadataCache.invalidate(view:{objectName}/view-overrides:{objectName}等键健在)、core/src/index.ts仍导出merge-filters。假消费者注入(编译器级证负,2 探针)
预判方向 红。临时在
@object-ui/react注入一个引用已删符号的文件,tsc --noEmit -p packages/react/tsconfig.json:error TS2305: Module '"@object-ui/core"' has no exported member 'mergeViewsIntoObjects'. error TS2339: Property 'loading' does not exist on type 'RecordContextValue'. error TS2339: Property 'error' does not exist on type 'RecordContextValue'.三条如预判全红,且该包无其他
error TS—— 删除是编译器可证的,不只是 grep 推断。探针文件已删除,工作树零 diff。#3740:与本卡处方冲突,需维护者裁
这是唯一前提仍成立的成员(peer 声明存在、
src/确实零 import),但不能按本卡处方删:#3740 已于 2026-08-10 被分诊 closed (not planned),理由是 PR #3727 的裁决刻意选择了固定组 peer 一致性而非逐包裁剪,「trimming this one peer would recreate exactly the inconsistency that ruling removed」,并三次复验维持;结语是「Reopen only if the plugin group's peer policy itself is revisited」。该裁决(08-10)晚于本卡创建(08-09),且
peerDependencies是已发布包的公开契约、删除属用户可见变更。按「停手不猜」条款,我没有反转这个已作出的裁决,交回裁决权:- A. 维持保留(= 尊重 fix(plugin-report): 放宽 react/react-dom peer 到 ^18.0.0 || ^19.0.0,对齐其余 29 个包 (#3690) #3727/
@object-ui/plugin-report声明了 react-dom peer 却从未 import 它——仅作为 UMD 全局名出现在 vite.config externals #3740 裁决):固定组一致,零可测成本。 - B. 裁掉该 peer:需先定「插件组 peer 策略」整体方向,应作用于全组而非单包,否则重造 fix(plugin-report): 放宽 react/react-dom peer 到 ^18.0.0 || ^19.0.0,对齐其余 29 个包 (#3690) #3727 消除的那种不一致。
建议 A,除非要重开插件组 peer 策略——那时应立一张覆盖全组的卡,而不是在死清扫卡里夹带单包改动。
建议处置
本卡建议 closed as not planned / superseded:六成员已由 #4328、#4365、#4809 三条线路吸收(#4328 是同族的后继清扫卡,重叠了本卡三个成员),第七成员已有独立裁决。派发前若比对成员卡 state 可省掉这一轮。
Generated by Claude Code
- A. 维持保留(= 尊重 fix(plugin-report): 放宽 react/react-dom peer 到 ^18.0.0 || ^19.0.0,对齐其余 29 个包 (#3690) #3727/
PM 处置:关闭(superseded / not_planned)(批次 19,PM 会话
session_01GTRjn8xBqp75dk7kFupVRt)dev 前提重验(上一条评论)确认:七成员中六个已由后继清扫落地(#3778/#3775/#3773 经 #4328→PR#4366;#3731/#3736 经 PR#4365;#3901 经 PR#4809),第七个 #3740 已于 08-10 被三次复核的 not_planned 裁定收口(PR#3727 固定组 peer 一致性 > 单包裁剪)。编译级假消费者探针证实删除面确空(TS2305/TS2339 逐条命中)。
#3740 的归属:不新开决策 —— 保留 peer 即现状,由既有裁定(#3727 + #3740 关闭语)确立;若未来要裁剪,载具是「插件组 peer 政策」整卡,不是死面清扫的搭车项。dev 的 A 建议与既有裁定一致,记录在案。
空派记账(流程教训,记入车道):本 sweep 卡 08-09 立、08-17 派发时全部成员卡已 closed —— 选批读了本卡评论(零条)但未查成员卡状态。此后 sweep 类卡入批前,增加一步成员状态机读数(closed 成员数 = 成员总数即免派关卡)。烧掉一个批次席位换来这条纪律,记账不粉饰。
Generated by Claude Code
Created by the maintainer-authorized one-off triage pass (2026-08-09, registered on objectstack#6015). Same shape as objectstack's spec sweep cards (#6486 family): one claim, one PR, N
Fixeslines — the member cards stay open asfindingand are ⛔ excluded from individual selection; they close when this sweep's PR merges.Members (each verified zero-consumer by its own filing; re-verify premise at claim time)
form-view.tsspec bridge's deadspec.ariaread (key retired upstream, can never fire)views:{objectName}cache invalidates with no cache writer — delete the dead invalidates (do NOT wire a cache nobody asked for)mergeViewsIntoObjectsin@object-ui/core— zero consumers, drifted semanticsRecordContextValue.loading/.error— zero producers, zero consumers (if the implementing dev finds wiring them as cheap as removing, per the #3460refreshprecedent, STOP and ask — default is remove)buildObjectDetailPageSchema— zero callers since MetadataDetailPage retired@object-ui/plugin-report'sreact-dompeer declaration — never imported; keep the UMD external mapping, drop the peer rowRules
Fixesline.