Repository navigation
Releases: websanity/formsanity
Releases · websanity/formsanity
Release list
2026.9.11
Full Changelog: 2026.9.10...2026.9.11
2026.9.10
Changes for existing servers
- In a
multipart/form-databody, the parts of an array-valued field are now namedname[]: checkbox and radio sets, a lone checkbox,select[multiple], and a file input withmultiple. A single-valued field keeps its bare name. JSON bodies are unchanged. A server written to the earlier bare-key naming must map the suffix back. See Field Names and Values in the submission protocol. - An authored
namemust not end in[].
New
- A PHP implementation of the server.
php/holds the server parser conformance class and the envelope layer as the Composer packagewebsanity/formsanity(PHP 8.4+). It is written from the specs and pinned by the shared vectors, the demo pages, and a replay of what the client posts.docs/php.mdshows how to use it. A Composer install carries only the PHP product, the specs, the vectors, and the docs. - The spec's
durationandus-dollarpattern rows are restored, the server's reading of a partly relevant set is stated, and a value that names no member of a choice group is arelevancefailure.
Full Changelog: 2026.9.9...2026.9.10
2026.9.9
Changes for existing forms
Three behaviors changed. Check forms written against earlier versions.
data-fs-relevanton one member of a choice group now governs that member alone. To hide or disable a whole group, put the attribute on itsfieldset.requiredon any member of a checkbox set now requires the set, as it does on a radio group.- A choice group with some disabled or irrelevant members now submits its enabled members. The submission protocol's omission rule is per control.
New
- Member relevance:
data-fs-relevanton a choice-group member or on anoption, with hidden and disabled modes. See Member Relevance in the vocabulary spec. - Conditional requiredness:
data-fs-required="expression"makes a field required only while the expression is true. See Conditional Requiredness in the vocabulary spec. - Lone toggle rows: a row whose
labelwraps its own checkbox gets the styled toggle look and aligns with the rows around it.
Server implementations need updating for the first two items.
Full Changelog: 2026.8.26...2026.9.9
2026.8.26
Full Changelog: 2026.8.25...2026.8.26
2026.8.25
Full Changelog: 2026.8.24...2026.8.25
2026.8.24
Full Changelog: https://github.com/websanity/formsanity/commits/2026.8.24