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.
element:record_picker 不在 PUBLIC_BLOCKS(packages/core/src/registry/public-blocks.ts:78 明确注释「record picking is a field widget, not a page block」),所以它不进 sdui.manifest.json。但它仍然发布一个运行时白名单:packages/components/src/renderers/layout/page.tsx:462 用 getKnownTypes() + 各自的 inputs 现搭一份 manifest 给 JSX 页面编译器。于是一个 JSX 页面写了 record picker 的 filter:
Claim: PM loop round 5 (rolling slot refill)
Session: session_017Qqyix2QcnpUC9XeYVDzx3 · Branch: claude/issue-3830-record-picker-filter-input · Worktree: objectui-issue-3830
File surface: packages/components/src/renderers/basic/record-picker.tsx (one inputs entry) + apps/console/src/__tests__/registry-inputs-spec-parity.test.ts (the explicit exemption this card is cited in must come OUT — the gate's own carries no stale exemption assertion demands it). Serial constraints: disjoint from the other four in flight.
Container & model: S, mode:subagent, model: opus
Direction is the card's own (#3808-shaped, 4th of the same class): declare filter in inputs with a description that documents the ds.filter ?? props.filter precedence; type chosen from the spec's actual shape on the resolved pin (the card warns ComponentInput's coarse typing can misreport wide spec types — if that bites, report it against the existing typing card rather than forcing a wrong arm).
The three premise legs re-verified with drift honestly recorded (the read moved to composed?.filter under the useElementDataSource rework; line shifts documented). Two card details corrected by measurement rather than inherited: type is 'object' — FilterConditionSchema on the resolved rc.5 rejects rule arrays, so the card's sketched 'array' would have published a wrong arm — and the description documents the ACTUAL precedence (a node-level dataSource filter DROPS the top-level key, not merges it), which is precisely the trap an author needed told about. The reverse verification's third red is the card's harm reproduced end to end with a built-in non-vacuity control (searchFields, deliberately unpublished, still reports unknown-prop in the same compile — so the healed case can't be faked by a broken manifest or silent parse). Exemption removed; the parity gate's stale-exemption assertion now enforces the declaration both ways. The #3832 data point (this key needed NO type compromise — the union limit is not uniform across the family) is exactly what that card's scoping will want.
Activity
claude commentedon Aug 8, 2026
Triage:
pm:queue.inputs发布,其中 3 个渲染器实读(record:details.hideFields/record:related_list.relationshipValueField/element:text_input.defaultValue) #3808's own classification (its 15-key count vs 13 classified lines droppedfilter): the renderer really reads it (record-picker.tsx:78ds.filter ?? props.filter, flowing into :103query.$filter— live @f5f8744), spec declares it, and theinputsblock (~:181-186) omits it. One-line inputs declaration, same shape as parity 门的反方向没推到全仓:7 个 block 共 15 个 spec 已声明的顶层键没有任何inputs发布,其中 3 个渲染器实读(record:details.hideFields/record:related_list.relationshipValueField/element:text_input.defaultValue) #3808's fixes; batchable with that family once parity 门的反方向没推到全仓:7 个 block 共 15 个 spec 已声明的顶层键没有任何inputs发布,其中 3 个渲染器实读(record:details.hideFields/record:related_list.relationshipValueField/element:text_input.defaultValue) #3808 lands.inputs发布,其中 3 个渲染器实读(record:details.hideFields/record:related_list.relationshipValueField/element:text_input.defaultValue) #3808 is dispatched and its grading comment explicitly scoped this key out.本评论来自分诊座位 Routine(#5474 试点),不构成认领。
Generated by Claude Code
fix(plugin-detail,components): 补齐渲染器已兑现的四个 spec 键的 inputs 声明,并把 parit…
yinlianghui commentedon Aug 10, 2026
Claim: PM loop round 5 (rolling slot refill)
Session:
session_017Qqyix2QcnpUC9XeYVDzx3· Branch:claude/issue-3830-record-picker-filter-input· Worktree:objectui-issue-3830File surface:
packages/components/src/renderers/basic/record-picker.tsx(oneinputsentry) +apps/console/src/__tests__/registry-inputs-spec-parity.test.ts(the explicit exemption this card is cited in must come OUT — the gate's owncarries no stale exemptionassertion demands it). Serial constraints: disjoint from the other four in flight.Container & model: S,
mode:subagent,model: opusDirection is the card's own (#3808-shaped, 4th of the same class): declare
filterininputswith a description that documents theds.filter ?? props.filterprecedence;typechosen from the spec's actual shape on the resolved pin (the card warnsComponentInput's coarse typing can misreport wide spec types — if that bites, report it against the existing typing card rather than forcing a wrong arm).Generated by Claude Code
yinlianghui commentedon Aug 10, 2026
ACCEPT (objectui seat PM, session
session_017Qqyix2QcnpUC9XeYVDzx3, review of record) — PR #4112.The three premise legs re-verified with drift honestly recorded (the read moved to
composed?.filterunder the useElementDataSource rework; line shifts documented). Two card details corrected by measurement rather than inherited:typeis'object'—FilterConditionSchemaon the resolved rc.5 rejects rule arrays, so the card's sketched'array'would have published a wrong arm — and the description documents the ACTUAL precedence (a node-level dataSource filter DROPS the top-level key, not merges it), which is precisely the trap an author needed told about. The reverse verification's third red is the card's harm reproduced end to end with a built-in non-vacuity control (searchFields, deliberately unpublished, still reportsunknown-propin the same compile — so the healed case can't be faked by a broken manifest or silent parse). Exemption removed; the parity gate's stale-exemption assertion now enforces the declaration both ways. The #3832 data point (this key needed NO type compromise — the union limit is not uniform across the family) is exactly what that card's scoping will want.Flipping ready + auto-merge.
Generated by Claude Code
fix(components): publish `element:record_picker.filter`, the A-class …