feat(admin): resurface setup wizard when a release adds setup
Imported from GitHub pull request El-SaMa/oma#116 by @El-SaMa.
Summary
- The setup wizard was dismissed with a permanent boolean, so once hidden it never came back, even when a new OMA release added essential setup. Now dismissal is pinned to a setup signature (
SETUP_WIZARD_REVISION+ sorted step ids). - When a release adds/renames a step, or we bump
SETUP_WIZARD_REVISION, the signature changes and the wizard resurfaces on the dashboard banner and the setup page until the operator finishes or hides it again. - Legacy boolean dismissals resurface once after this ships (intended for the release).
- Banner and wizard show a "New in this release" hint when resurfaced.
How to trigger a resurface in future releases
- Add a new step in
setup-checklist.ts(auto-changes the signature), or - Bump
SETUP_WIZARD_REVISIONfor a feature that has no dedicated step.
Files
lib/admin/setup-wizard-store.ts- signature-aware dismissal.lib/admin/setup-checklist.ts-SETUP_WIZARD_REVISION,computeSetupSignature,signatureon the checklist.app/admin/settings/setup/*,app/admin/page.tsx- wire signature + resurfaced state.components/admin/setup-wizard*.tsx- resurfaced hint.messages/{en,fi,sv}.json- new keys.
Test plan
- Fresh org: wizard + banner show until required steps done.
- Dismiss on dashboard: banner hides; setup page offers restore.
- Bump
SETUP_WIZARD_REVISION(or add a step): banner + wizard resurface with the "New in this release" hint. - Finish or dismiss again: hides for the new signature.
-
pnpm i18n:checkandtscpass.