- Move versioning fields (retention days, max noncurrent versions) from
local useState into the parent form via react-hook-form + zod, fixing
the bug where clearing an input forced it back to "0" and blocked
typing a fresh single digit
- Show a validation error on submit if versioning is enabled but a
field is left empty
- Gate object versioning by org billing plan: disable the toggle and
show an upgrade prompt on the Free plan (which also doesn't support
lifecycle policy management); enforce plan-specific min/max ranges
for retention days and max versions on Pro/Team/Enterprise
- Add getVersioningPlanLimits() + validateVersioningFields() helpers
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TiUEvmC84bRsteqsWXHY2p