Repository navigation
0.10 - Philomel
·
868 commits
to integration
since this release
v0.10 (Philomel)
A large release: three real scope roots for navigation, a reworked invitation flow, full-screen mobile dialogs, real data on the org dashboard, and a wide pass of tooling and import-boundary hardening.
Highlights
- Three real scope roots (org/user/system) — navigation is now built around organization, personal (
/user), and system scopes, each with its own sidebar and module list, switchable via a newScopeSwitcher, replacing the old per-scope route sprawl. - Reworked invitation flow — an invitation landing page with in-place accept/decline, verified-account creation straight from the landing page, and explicit accept/reject controls on the personal dashboard.
- Full-screen mobile dialogs — dialogs go full screen below
sm, composed from a shared Header/Body/Footer, withDialogBoundarystandardizing loading and error states across the app. - Org dashboard stat cards — the org dashboard now shows real, permission-gated stats, each with its own component and Suspense boundary instead of one blocking fetch.
- Personal dashboard and settings pages — profile settings, organizations, and D4H settings moved out of modals into dedicated
/user/settingspages, with a redesigned personal dashboard. - Auth page polish — show/hide password toggles, a consolidated forgot/reset-password flow, and social sign-in buttons on the invitation landing page.
- Import boundary + convention enforcement — new ESLint rules lock down Prisma client access,
server-onlymarkers, ID creation through schema files, and Zod import style, backed by ordered imports across the codebase. - Worktree and check tooling —
npm run worktree:setupclonesnode_modulesand regenerates the Prisma client for a new worktree, andnpm run checkruns typecheck/lint/related tests in one call. - Single-PR release flow — releases now ship through one PR into
production, with release notes generated from the actual feature PRs rather than the release PR itself. - Numerous smaller fixes and performance work: org/user/system pages no longer block on
requireOrganization, permissions are checked in memory instead of a second DB round trip, and per-moduleloading.tsxboundaries cover slow navigations.
What's Changed
Other changes
- Replace org dashboard module list with stat-card grid by @alexwestphal in #255
- chore(release): collapse to a single release PR, fix release notes by @alexwestphal in #252
- fix: keep the NavBar visible across loading, error, and the org index page by @alexwestphal in #251
- chore: enforce architecture rules in ESLint, typed env modules, check and worktree scripts by @alexwestphal in #249
- fix(mobile): keep mutation dialogs usable above the on-screen keyboard by @alexwestphal in #219
- Invitation flow: accept/reject, landing page, verified sign-up by @alexwestphal in #231
- Fix invitation email links pointing at the per-deployment Vercel URL by @alexwestphal in #238
- v0.10 cleanup: assorted fixes and follow-ups by @alexwestphal in #227
- Refine password fields and forgot-password flow by @alexwestphal in #218
- feat(user): dashboard cards, real settings pages, drop entry-control redirect by @alexwestphal in #221
- feat(nav): three real scope roots — org/user/system, scope switcher, personal dashboard by @alexwestphal in #220
- perf: reduce org-scoped navigation latency (issue #212 follow-up) by @alexwestphal in #213
Full Changelog: v0.9.2...6d96bf0