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
fix(spec): rating/vector builders emit live props; promote flat dimensions (#1976)
The Field.rating / Field.vector builders emitted properties the spec-liveness
ledger classifies as dead (silent runtime no-ops), so every field authored
through them tripped the `liveness-dead-property` author lint:
- Field.rating(n) emitted `maxRating`; the rating renderer reads the flat `max`
(RatingField.tsx:13). Builder now emits `max`.
- Field.vector(n) emitted a nested `vectorConfig` block; the renderer reads the
flat `dimensions` sibling (VectorField.tsx:11) and nothing consumes
vectorConfig (no vector-index DDL). Builder now emits flat `dimensions`.
`dimensions` is promoted to a declared, LIVE top-level FieldSchema property and
classified in the liveness ledger. It was previously valid only nested inside
vectorConfig, so a hand-authored flat `dimensions` was silently stripped during
compile (Zod drops unknown keys) — the renderer then saw no dimensionality.
This retroactively makes the app-showcase fix (#1973) actually carry its value
into the artifact, verified: f_vector.dimensions=1536, f_rating.max=5.
maxRating and vectorConfig remain accepted by the schema (still dead +
authorWarn) for back-compat, so hand-authored usages still warn rather than
type-error.
Verification: liveness gate green (field 53 classified, all classified),
field.test.ts 115/115 pass, showcase compile exit 0 with zero
liveness-dead-property warnings.
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
"note": "LIVE via objectui renderer — the 2026-06 audit mis-classified as dead (renderer side not re-verified). Corrected after checking ../objectui."
189
189
},
190
+
"dimensions": {
191
+
"status": "live",
192
+
"note": "vector field — objectui VectorField.tsx:11 reads the flat `dimensions` prop. The live authoring path (cf. dead `vectorConfig`); `Field.vector(n)` emits this."
193
+
},
190
194
"vectorConfig": {
191
195
"status": "dead",
192
196
"evidence": "nested config — renderers read flat dimensions; no consumer, no vector-index DDL",
0 commit comments