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
Triage: needs-user-decision, type Bug. The #4781 mother ruling does not carry over: it decided the type-domain half and explicitly left this value-domain half out of scope, and its rationale (clear what the type cannot hold) does not answer the remote/async lookup case — clearing on local options membership would delete perfectly valid lookup ids. Real semantic difference ⇒ new decision, not an inherited one.
Measured business pull: reproduced in jsdom — value: "acme" persists and is sent in the query while the control renders empty. A filter that silently filters on an invisible value is user-facing wrong data, today.
AI-agent error-resistance: an invisible stored value is the silent-tolerance shape; both A (loud clearing) and C (make it visible as a temporary item) are strictly better than the status quo. B keeps out-of-domain values in front of the spec.
Startup scope discipline: contained to filter-builder.tsx; no new contract surface. The A/C split (static options ⇒ clear; remote/async ⇒ visible temporary item) is the filer's recommendation and triage concurs.
Recommendation: A + C combined, per the card. Escalated rather than auto-adjudicated because it changes user-visible clearing behaviour on a public control and the sibling precedent was maintainer-ruled.
Maintainer ruling (2026-08-17, recorded by PM session session_01NYgmGheCzM6NrHZN436Cxf). The maintainer accepted the decision-inbox report's recommendations in full, verbatim: 「同意」. For this card:
Ruled: A + C combined (as the filer and triage recommended):
Remote/async columns (lookup with remote search, options absent or not yet loaded): the value is kept but made visible as a temporary item in the Select — never cleared (a valid lookup id must not be deleted on a local non-membership guess), never invisible.
This closes the FilterBuilder family: operator (#4768), type domain (#4781), value domain (this card). Label flipped needs-user-decision → pm:queue in the same stroke.
Activity
os-zhuang commentedon Aug 17, 2026
Triage:
needs-user-decision, type Bug. The #4781 mother ruling does not carry over: it decided the type-domain half and explicitly left this value-domain half out of scope, and its rationale (clear what the type cannot hold) does not answer the remote/async lookup case — clearing on localoptionsmembership would delete perfectly valid lookup ids. Real semantic difference ⇒ new decision, not an inherited one.Decision facets:
value: "acme"persists and is sent in the query while the control renders empty. A filter that silently filters on an invisible value is user-facing wrong data, today.filter-builder.tsx; no new contract surface. The A/C split (static options ⇒ clear; remote/async ⇒ visible temporary item) is the filer's recommendation and triage concurs.Recommendation: A + C combined, per the card. Escalated rather than auto-adjudicated because it changes user-visible clearing behaviour on a public control and the sibling precedent was maintainer-ruled.
Generated by Claude Code
os-zhuang commentedon Aug 17, 2026
Maintainer ruling (2026-08-17, recorded by PM session
session_01NYgmGheCzM6NrHZN436Cxf). The maintainer accepted the decision-inbox report's recommendations in full, verbatim: 「同意」. For this card:Ruled: A + C combined (as the filer and triage recommended):
options: membership check on field switch — a value not in the option set clears to the family's empty shape (the FilterBuilder 切换行的 field 后 value 原样留下 —— 文本值落到 number 列,输入框显示空而行仍带着该值 #4781 logic extended to the value domain: locally decidable "cannot hold" ⇒ clear).This closes the FilterBuilder family: operator (#4768), type domain (#4781), value domain (this card). Label flipped
needs-user-decision→pm:queuein the same stroke.Generated by Claude Code
yinlianghui commentedon Aug 17, 2026
认领(objectui 分片 PM 座席,批次 21)。Session
session_01GTRjn8xBqp75dk7kFupVRt,分支claude/issue-4874-filter-value-domain,os-dev 子代理实施。实施依据 = 楼上维护者裁定(05:03Z,A+C 组合,B 维持否决):静态 options 在位 → 切列时成员判定、不匹配清到该族空形;远程/异步列(lookup 远程搜索、options 缺席或未到位)→ 保值并可见(Select 临时项),永不因本地非成员猜测清掉合法 lookup id、永不隐形。文件面:
packages/components/src/custom/filter-builder.tsx+ 测试,与在飞 #4989(plugin-form)/#4917(renderers/basic)不相交。同族先例:#4768(operator 显空)、#4781(类型域,其空形定义沿用)。Generated by Claude Code
fix(components): 选项外的多值条目按值去重,避免同一 React key 画两行 (#4874)
fix(components): FilterBuilder 值落在选项集外时清到空形或显示出来,不再隐形 (objectstack-ai…