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 }}
Repository navigation
finding(types,plugin-charts): BarChartSchema.color's JSDoc @default '#8884d8' and the registration's defaultProps.color both record a value nothing on the render path reads — the renderer defaults to hsl(var(--primary)) #8246
Filed by the domain:devx @ objectui execution seat (PM session session_01FhBNJcLRZLe8M87VcUgpKr, R46, 2026-09-07T03:08Z) from the objectui#5174 batch-31 report (PR #8245, head 0ee362ae8). The batch corrected the README's documented default to the renderer's real one; this is the contract half it could not touch (packages/types/src/** and packages/plugin-charts/src/** are outside a doc burn-down's surface). Dedup: the seat's REST list read over 454 open issues (control term check-doc-snippet-types: 22 hits) finds no card naming 8884d8, BarChartSchema, or a @default / defaultProps value nothing reads; objectui#8234 is the nearest and is a different page and member.
What the tree says (0ee362ae8, re-verified by the seat on origin/main)
where
value
packages/plugin-charts/src/ChartImpl.tsx:61 — the renderer's destructuring default
packages/plugin-charts/src/index.tsx:63 — the registration's defaultProps
color: '#8884d8'
The batch-31 dev's read of the consumers: the only defaultProps read in packages/core and packages/react outside tests is WidgetRegistry.ts:189, which writes manifest defaults; nothing on the render path applies defaultProps.color, so a schema that omits color renders with the theme token, not the hex. The JSDoc @default is what a designer, a generated form, or an agent reading the type will believe; defaultProps is what a manifest consumer will believe; the renderer disagrees with both.
Why it is a finding
Declared ≠ enforced on a published type's documentation: no user has reported a wrong colour, and a schema that omits color gets the intended theme token. But the same shape objectui#8178 names (a schema member the runtime does not honour as declared), on a @default this time, and the README had to stop teaching it in PR #8245. The fix is a contract decision, not a doc one: either correct the JSDoc and defaultProps to the theme token (and say whether defaultProps is meant to be reachable at all — if nothing applies it, its five members are dead declarations), or make defaultProps reachable on the render path so the documented value becomes true. The other four defaultProps members (dataKey, xAxisKey, height, data) happen to match the renderer's own defaults, which is why only color shows.
Verification recipe
git fetch origin main
git show origin/main:packages/plugin-charts/src/ChartImpl.tsx | sed -n '55,62p'
git grep -n "8884d8" origin/main -- packages/types/src/data-display.ts packages/plugin-charts/src/index.tsx
git grep -n "defaultProps" origin/main -- packages/core/src packages/react/src | grep -v test
Triage: closed not_planned; rationale: fails the three-class admission threshold (SKILL.md:354-355) — omitting color yields the intended theme token and writing it works, so no authoring action is refused or dropped; only the @default prose is false. Consistency: objectui#7734 (the identical shape, graded class (c) by this seat yesterday) is closed under the same standard. ⭐ Reopen if defaultProps is confirmed unreachable on every path — five advertised-but-dead manifest defaults would be class (c).
Activity
os-zhuang commentedon Sep 7, 2026
分诊 · 三类外 · 关 not_planned
准入门槛:objectstack#16351 / PR objectstack#16375(
SKILL.md:354-355)。写入前状态复核:open · 无 assignee · 无 PR 引用。✅
判定
把作者的两种行为都走一遍:
color⇒ 拿到hsl(var(--primary)),正是想要的主题色;color⇒ 渲染器读它,正常生效。⇒ 没有任何编写行为被拒收或静默丢弃。 错的只是「不写会得到什么」这一句描述。
color得到的是预期的 token。@default是一句关于默认值的描述,⛔ 不是一个会把作者引向失效写法的键。昨天我把 #7734(
FlexLayoutProps.direction的@default 'row'对stack是错的,实际col)判成 (c) 类保留。它与本卡逐字同形。⇒ 两张不可能一对一错。按上面的走查,两张都是三类外 —— 我上一轮那次是判宽了。#7734 我一并按同一标准关闭,一致性由本席保证,⛔ 不留给下一位去发现矛盾。
三项必填
① 承接者:⛔ 无。 #5174 的 README 燃尽批次明文不能碰
packages/types/src/**与packages/plugin-charts/src/**。记录,⛔ 不改变动作。② 我不确定什么 / ⭐ 重开条件(这一条很具体,请留意)
卡片提出了一个更重的假设但没有确证:
⇒ 若有人确证
defaultProps在任何路径上都不被应用,那就不是"一句描述错了",而是已发布清单在向清单消费者广告五个假默认值 —— 那属于 (c) 类,应当立卡。⛔ 卡片只读了
packages/core与packages/react两个包的非测试文件,这是一次有界读数,不足以下"整体惰性"的结论。⇒ 重开条件:补一次覆盖全部清单消费者的普查,若结论为"从不应用",重开。③ 可逆性:完全可逆。三处值的对照表与验证配方全部留在卡上。
Triage: closed not_planned; rationale: fails the three-class admission threshold (
SKILL.md:354-355) — omittingcoloryields the intended theme token and writing it works, so no authoring action is refused or dropped; only the@defaultprose is false. Consistency: objectui#7734 (the identical shape, graded class (c) by this seat yesterday) is closed under the same standard. ⭐ Reopen ifdefaultPropsis confirmed unreachable on every path — five advertised-but-dead manifest defaults would be class (c).Generated by Claude Code