chore(spec): flip FormView buttons/defaults to live; close view inverse-drift (#1894)#3417
chore(spec): flip FormView buttons/defaults to live; close view inverse-drift (#1894)#3417os-zhuang wants to merge 1 commit into
Conversation
…se-drift (#1894) The structured `FormViewSchema.buttons`/`defaults` shipped under the ADR-0078 escape hatch (declared, but marked `[EXPERIMENTAL — NOT ENFORCED]`) pending an ObjectUI consumer. The objectui `ObjectForm` renderer now folds both onto the flat props it reads (`showSubmit`/`submitText`/`showCancel`/`cancelText`/ `showReset`/`initialValues`), so: - Drop the experimental markers from the two `.describe()` strings + the `FormButtonConfigSchema` leaf doc (the spec liveness gate keys `experimental` off that exact substring). - Flip `view.form.buttons` / `view.form.defaults` in `liveness/view.json` `experimental → live`, citing the objectui consumer; update the `view` row in `liveness/README.md` (70 live / 0 exp / 5 dead). - Update the `view.test.ts` marker assertion to lock in the live state. - Annotate audit cluster #6 + the viewschema audit's inverse-drift line as resolved. Closes the `view` item of #1894 (inverse drift — renderers read undeclared props); the dashboard + app items were already reconciled. Co-lands with the objectui ObjectForm wiring. No shape/parse-behavior change. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CMaDBhnZEUu1fcw8Rvo6Yq
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
CI red is a runner-allocation outage, not this diff. Every job on The diff is verified green locally: the spec property-liveness gate passes ( I'll re-run the failed jobs once runners recover and report back. No action needed on the code meanwhile. Generated by Claude Code |
What
Closes the
viewitem of #1894 (inverse drift — renderers read undeclaredprops). The dashboard and app items were already reconciled in earlier work;
this finishes the
viewhalf.FormViewSchema.buttons/defaultsshipped under the ADR-0078 escape hatch —declared, but carrying an
[EXPERIMENTAL — NOT ENFORCED]marker because noconsumer read them. The objectui
ObjectFormrenderer now folds both onto theflat props it reads, so the escape-hatch marker comes off and the two liveness
entries flip
experimental → live.Changes
view.zod.ts— drop the experimental markers from thebuttons/defaults.describe()strings and theFormButtonConfigSchemaleaf doc (thespec liveness gate keys
experimentaloff that exact substring); rewrite thedocs to cite the objectui consumer.
liveness/view.json—view.form.buttons/view.form.defaultsexperimental → live, citingObjectForm.foldFormButtons().liveness/README.md—viewrow updated to 70 live / 0 exp / 5 dead.view.test.ts— marker assertion inverted to lock in the live state.docs/audits/README.mdand the viewschemaaudit's inverse-drift line annotated as resolved.
@objectstack/specpatch.No shape or parse-behavior change — both keys were already accepted.
Coordination
Co-lands with the objectui
ObjectFormwiring PR (the consumer thisclassification cites). Merge that side (or accept the paired draft) before
releasing, so the
liveclaim is backed by a shipped consumer.Testing
pnpm check:liveness— all governed-type propertiesclassified, no marker↔ledger inconsistency).
view.test.tsgreen (201);dashboard/app/viewUI suites green (284).Part of the metadata liveness audit umbrella #1878.
🤖 Generated with Claude Code
Generated by Claude Code