stack/apps/dashboard
Bilal Godil 0902a7e579 feat(dashboard): scope rebrand modal dismissal by user.id
Switches the localStorage key from the global
"hexclave-rebrand-modal-dismissed" to a per-user
"hexclave-rebrand-modal-dismissed:<user.id>".

Rationale: a shared browser (e.g. a work machine where two teammates
each log into their own dashboard account) was previously hiding the
announcement from teammate B as soon as teammate A dismissed it. Now
each account tracks its own dismissal independently. The trade-off —
the same human switching between their personal and work accounts will
see the modal once per account — is acceptable: each account is a
distinct identity, and a one-time brand notice per account is fine.

Storage key is computed as `${STORAGE_KEY_PREFIX}${user.id}` only when
`user` is non-null; both the useEffect read path and the dismiss write
path null-check `storageKey` defensively even though the existing gates
(`isPreRebrandUser`, `if (!isPreRebrandUser) return null`) already
ensure neither runs without a user.

No migration shim — the old global key was only ever written in local
dev/test before this PR ships, so no production data is being orphaned.
2026-05-26 16:05:47 -07:00
..
public feat(dashboard): add one-time Stack Auth → Hexclave rebrand modal 2026-05-26 15:37:45 -07:00
scripts Custom dashboards and unified ai no playground (#1243) 2026-03-13 20:24:40 +00:00
src feat(dashboard): scope rebrand modal dismissal by user.id 2026-05-26 16:05:47 -07:00
.env feat(hexclave): PR 2 — visible rebrand to Hexclave 2026-05-23 17:35:08 -07:00
.env.development feat(hexclave): PR 1 — wire compatibility layer (invisible) (#1475) 2026-05-23 17:24:55 -07:00
.eslintrc.cjs Config sources (#1083) 2026-01-21 18:08:35 -08:00
.gitignore Custom dashboards and unified ai no playground (#1243) 2026-03-13 20:24:40 +00:00
.npmrc Split backend and dashboard (#83) 2024-06-18 15:49:31 +02:00
components.json Split backend and dashboard (#83) 2024-06-18 15:49:31 +02:00
DESIGN-GUIDE.md feat(hexclave): PR 2 — visible rebrand to Hexclave 2026-05-23 17:35:08 -07:00
instrumentation-client.ts re-enable posthog recordings (#1404) 2026-05-03 23:38:46 -07:00
LICENSE Split backend and dashboard (#83) 2024-06-18 15:49:31 +02:00
next.config.mjs Remote dev envs (#1435) 2026-05-19 15:54:18 -07:00
package.json Merge remote-tracking branch 'origin/dev' into cl/romantic-mendel-5a2c25 2026-05-26 13:45:30 -07:00
postcss.config.js Split backend and dashboard (#83) 2024-06-18 15:49:31 +02:00
tailwind.config.ts Overview revamp (#1238) 2026-04-15 09:36:00 -07:00
tsconfig.json fix flaky typecheck test (#1072) 2025-12-17 12:26:12 -08:00
vitest.config.ts In-source unit tests (#429) 2025-02-14 11:47:52 -08:00