Split out of objectstack-ai/objectstack#10485 per the maintainer ruling of 2026-08-21 (verbatim, untranslated): 「B:退役授权面 — 收掉 themes 载体键与 schema,app.branding 留作唯一颜色面;objectui 引擎代码与单测保留」 and the triage seat's execution clause 「objectui 死面另立小卡」.
The surface
packages/types/src/theme.ts declares ThemeComponentSchema (type: 'theme'), a component kind — distinct from the theme engine (packages/core/src/theme/ThemeEngine.ts) and the spec-aware provider (packages/react/src/context/ThemeContext.tsx), both of which the ruling explicitly retains. No renderer implements the 'theme' component type, so a page declaring one gets nothing — the same declared-but-unenforced shape the parent card measured on the objectstack side.
What the ruling means for this card
- ⛔ Do NOT touch
ThemeEngine, ThemeContext, or their unit tests — retained by the ruling. - Scope: the dead
ThemeComponentSchema declaration and anything that registers/exports it with no consumer. - Confidence gap recorded in the parent card's analysis, restated here: no in-repo consumer was found, but out-of-repo consumers of the published types package were not measurable. Sweep in-repo consumers before removal and state the search terms in the PR, per the usual dead-code discipline.
- Sequencing: independent of the objectstack-side retirement (different package, different surface); no
Blocked-by needed. If measurement shows the two share a gate or generated artifact, say so in the report rather than widening.
Filed unassigned for the triage/lane seats to route.
Split out of objectstack-ai/objectstack#10485 per the maintainer ruling of 2026-08-21 (verbatim, untranslated): 「B:退役授权面 — 收掉
themes载体键与 schema,app.branding留作唯一颜色面;objectui 引擎代码与单测保留」 and the triage seat's execution clause 「objectui 死面另立小卡」.The surface
packages/types/src/theme.tsdeclaresThemeComponentSchema(type: 'theme'), a component kind — distinct from the theme engine (packages/core/src/theme/ThemeEngine.ts) and the spec-aware provider (packages/react/src/context/ThemeContext.tsx), both of which the ruling explicitly retains. No renderer implements the'theme'component type, so a page declaring one gets nothing — the same declared-but-unenforced shape the parent card measured on the objectstack side.What the ruling means for this card
ThemeEngine,ThemeContext, or their unit tests — retained by the ruling.ThemeComponentSchemadeclaration and anything that registers/exports it with no consumer.Blocked-byneeded. If measurement shows the two share a gate or generated artifact, say so in the report rather than widening.Filed unassigned for the triage/lane seats to route.