Pre-flight checklist
Problem or use case
forms is Beta and its surface "significantly expanded in 1.13.0" — new validators, combinators, field arrays, a schema builder, bindForm/bindField, scope composables, and SSR helpers all arrived roughly one minor ago. There are also documented sharp edges: validationStrategy defaults to 'manual' (surprising for many users), the SSR helpers "intentionally drop functions and File references," and createFieldArray() requires stable item ids. A surface this large and this new, with defaults that surprise, is not yet a stable contract.
Proposed solution
Freeze the forms public API for one minor cycle, reconsider or at least loudly document the 'manual' validation default, document the SSR serialization boundaries (functions/File dropped) as guaranteed behavior with guidance, and ensure field-array id requirements are validated with clear errors. Define exit criteria: frozen surface, documented defaults and serialization boundaries, validated field-array contracts, and coverage across validators/combinators/field-arrays/SSR helpers. The progressive-enhancement action model (#140) is a parallel capability ticket.
Possible API or UX shape
## Stability: targeting Stable in 1.15.0
Frozen surface: createForm, bindForm, bindField, validators+combinators,
schema builder, createFieldArray, scope composables, SSR serialize helpers
Exit criteria:
- [ ] Public API frozen for one minor
- [ ] validationStrategy default reviewed/clearly documented
- [ ] SSR serialization boundaries (functions/File) documented as guaranteed
- [ ] createFieldArray id contract validated with clear errors
Alternatives considered
Promoting now — premature given the 1.13 expansion is barely one cycle old. Changing the 'manual' default silently — risky for existing users; better to review deliberately and document, or change with a flagged note.
Relevant area
forms
Additional context
forms is already competitive on validation depth (rivaling React Hook Form / VeeValidate); the missing piece for parity is progressive-enhancement actions (#140). Stabilizing the data model first makes that addition safe.
Pre-flight checklist
Problem or use case
formsis Beta and its surface "significantly expanded in 1.13.0" — new validators, combinators, field arrays, a schema builder,bindForm/bindField, scope composables, and SSR helpers all arrived roughly one minor ago. There are also documented sharp edges:validationStrategydefaults to'manual'(surprising for many users), the SSR helpers "intentionally drop functions andFilereferences," andcreateFieldArray()requires stable item ids. A surface this large and this new, with defaults that surprise, is not yet a stable contract.Proposed solution
Freeze the
formspublic API for one minor cycle, reconsider or at least loudly document the'manual'validation default, document the SSR serialization boundaries (functions/Filedropped) as guaranteed behavior with guidance, and ensure field-array id requirements are validated with clear errors. Define exit criteria: frozen surface, documented defaults and serialization boundaries, validated field-array contracts, and coverage across validators/combinators/field-arrays/SSR helpers. The progressive-enhancement action model (#140) is a parallel capability ticket.Possible API or UX shape
Alternatives considered
Promoting now — premature given the 1.13 expansion is barely one cycle old. Changing the
'manual'default silently — risky for existing users; better to review deliberately and document, or change with a flagged note.Relevant area
formsAdditional context
formsis already competitive on validation depth (rivaling React Hook Form / VeeValidate); the missing piece for parity is progressive-enhancement actions (#140). Stabilizing the data model first makes that addition safe.