Skip to content

0.10 - Philomel

Choose a tag to compare

@github-actions github-actions released this 23 Sep 03:57
· 868 commits to integration since this release
6d96bf0

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 new ScopeSwitcher, 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, with DialogBoundary standardizing 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/settings pages, 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-only markers, ID creation through schema files, and Zod import style, backed by ordered imports across the codebase.
  • Worktree and check tooling — npm run worktree:setup clones node_modules and regenerates the Prisma client for a new worktree, and npm run check runs 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-module loading.tsx boundaries 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