- Shipped
- August 14, 2026 at 8:19 PM UTC
- Author
- kamo
- Commit
- a302f49
A new tab on /settings/features/hrs holding Default Legal Text, linked from the settings menu and the settings launchpad. Creating a package on /hr/legal-compliance now starts from it, and that field is three rows taller. RIGHTS. The HRS settings page as a whole now REFUSES TO RENDER without MANAGE_HRS_SETTINGS rather than only redirecting: the redirect is an effect, so it cannot run until after a render, and every tab was painting — and firing its mount-time loads — for a member who does not hold the right. The new tab additionally needs MANAGE_LEGAL_AND_COMPLIANCE, held identical in three places (page, menu link, launchpad card) and pinned by a test, because a link offered to someone the page will not render the tab for opens Provider Setup instead: SettingsView resolves an unknown ?tab= to index 0 rather than erroring. The dialog seeds the default only while the author has not typed — the fetch resolves after they could already be writing. seedDefaultAttestation is a pure helper so that rule is testable, and it is applied OUTSIDE the state updater: React double-invokes updaters in development, which left the seeded snapshot advanced and the second call refusing its own change. An EDIT never re-seeds. The package carries its own wording and overwriting it would rewrite what a published version's audience is asked to agree to.