Skip to content

[Feature]: Promote forms to Stable — settle the 1.13 expanded surface #139

Description

@JosunLP

Pre-flight checklist

  • I searched existing issues and did not find a duplicate request.
  • I explained the problem or use case, not just the desired API.

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    formsChanges to the forms module

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions