Skip to content

Releases: MinistryPlatform-Community/MPNext-Tools

v2026.05.20.1512

20 May 15:13
3343f0d

Choose a tag to compare

What's Changed

πŸš€ Features

  • Add/Edit Family tool + Google Places provider (#10) β€” New /tools/addeditfamily tool for end-to-end household management (household, addresses, members, donor, envelope) modeled on MP's cloud Add/Edit Family. Includes a server-side Google Places provider/service with session-token billing, wired into address autocomplete with graceful fallback when no key is configured.
  • Hide All Separators bulk action (#11) β€” Field Management gains a footer button that flips Hidden=true on every separator field and moves them into 99 - Other Fields in one click.

πŸ”§ Maintenance

  • Security audit + mjml fix (#12) β€” Resolves 3 of 7 npm audit vulnerabilities (kysely high via better-auth bump, @xmldom/xmldom, brace-expansion, next 16.2.6 DoS patch) and applies safe minor/patch updates across react, zod, vitest, tailwindcss, mjml, openai, lucide-react, and more. Adds await for mjml 5.2.2's now-Promise-returning mjml2html().
  • Lint cleanup: 113 errors β†’ 0 (#13) β€” Resolves all ESLint errors/warnings introduced by eslint-config-next 16.2.6 (React Compiler-aware hooks rules, stricter unused-vars). Includes one real correctness fix in add-edit-family.tsx (callback ordering) plus scoped, commented disables for legitimate SSR/loading/debounce patterns.

Full Changelog: v2026.04.19.2041...v2026.05.20.1512

v2026.04.19.2041

19 Apr 20:41
e69b7dd

Choose a tag to compare

What's Changed

πŸš€ Features

  • Surface MP Separator fields in field-management editor (#9) β€” The page-order editor now lists Separator fields so they can be reordered alongside regular fields.
  • Thread $userId through MP write paths (#9) β€” Create/update calls through the MP provider and services now propagate the current user for a proper audit trail.

πŸ› Bug Fixes

  • Throw when BETTER_AUTH_URL/NEXTAUTH_URL unset on sign-out (#9) β€” Prevents silent fallback to localhost; fails loudly in misconfigured environments.
  • Tighten proxy API whitelist, add /signin error UI, optimize /home redirect (#9) β€” Narrows the /api/* bypass, surfaces OAuth errors, reduces an unnecessary redirect hop.
  • Validate contactId in getAddressForContact (#9) β€” Rejects invalid IDs up front and closes related doc-drift TODOs.
  • Hydrate display maps in group-wizard edit mode (#9) β€” Edit flow now renders selected values correctly; added regression tests.
  • Skip null-household records in address-labels (#9) β€” Avoids crashes on incomplete data; fixes a broken POSTNET test fixture.
  • Log barcode fallbacks, guard tool-params NaN (#9) β€” Adds observability for barcode fallback paths and defensive parsing for tool params.

πŸ”§ Maintenance

  • Dedup MP token refresh, unify HTTP error messages, preserve ZodError.issues (#9) β€” Eliminates concurrent token refreshes and keeps validation details intact on rewraps.
  • Refactor MP provider test fixtures + refresh stale provider docs (#9)
  • Extract requireDevSession helper in dev-panel; fix toolService JSDoc drift (#9)
  • Unify ui/dialog to plain-function pattern (#9)
  • Rename contexts hook, dedupe BATCH_SIZE, validate mailerId, refresh docs (#9)
  • Expand local permission allowlist for .claude/ ops (#9)

βœ… Tests

  • Add render and interaction tests for user-menu (#9)
  • Cover /signin OAuth redirect logic (#9)

πŸ“š Documentation

  • Document field-management tool in CLAUDE.md and README (#9)
  • Retire flat auth/components/testing reference files (#9) β€” Superseded by the hierarchical layout under .claude/references/.

Full Changelog: v2026.04.17.1958...v2026.04.19.2041

v2026.04.17.1958

17 Apr 19:59
971c40b

Choose a tag to compare

What's Changed

πŸš€ Features

  • Unified DevPanel with Deploy Tool (#5) β€” Consolidates params, selection, contact records, and user tools debug panels into a single DevPanel overlay gated to localhost + dev env, available in every tool via ToolContainer. Adds a Deploy Tool control that deploys a tool's stored procedures and pages to a target MP instance using isolated dev credentials. Retires the legacy scattered debug components.

Full Changelog: v2026.04.17.1051...v2026.04.17.1958

v2026.04.17.1051

17 Apr 10:55

Choose a tag to compare

What's Changed

πŸš€ Features

  • Copy API and generate-sequence in MPHelper (#4) β€” Adds copyRecord(), copyRecordWithSubpages(), and generateSequence() with recurrence pattern types (RecurrencePattern, CopyParameters, etc.) for record duplication and recurrence preview.
  • Inline field config editing with schema-enforced required (f96e9be) β€” Lets users edit field configuration inline with schema-based required-field validation.

πŸ› Bug Fixes

  • Preserve original URL through login redirect (0a3a545) β€” When auth sent users through /signin, they previously always landed on the tool index (/) after OAuth, losing the originally requested tool + query params. The proxy now forwards the requested pathname+search via an x-pathname request header and AuthWrapper reads it to build a proper callbackUrl, so users return to the exact tool URL they asked for (critical for production where tools are launched from MP with selectionId/pageID/recordID/userId params).
  • http-client POST error test mock (e45a4c4) β€” Adds missing text() method to mock response in the POST error-path test.

πŸ”§ Maintenance

  • Expanded test coverage (0a3a545) β€” Adds new test suites across MP services (communication, domain, file, metadata, procedure), auth client-credentials, validation, barcode-image, field management, address labels, user service, logger, and http-client; plus an AuthWrapper test suite for the redirect-URL preservation behavior. Full suite now 449 tests across 35 files.
  • Reference-doc refresh (0a3a545) β€” Updates to .claude/references/components.md, services.md, testing.md, plus minor CLAUDE.md/README.md tweaks.

Full Changelog: v2026.04.16.1620...v2026.04.17.1051

v2026.04.16.1620

16 Apr 16:21

Choose a tag to compare

What's Changed

πŸš€ Features

  • Field Management Tool (#4c50af0) β€” New tool with drag-and-drop field ordering for Ministry Platform pages, including page search, sortable groups, and field order editing.

πŸ”§ Maintenance

  • newstoredproc command (#8a87e27) β€” Added new stored procedure slash command for scaffolding MP stored procedures.
  • DomainID parameter (#ccdc9cc) β€” Updated newstoredproc command to include @domainID as required first parameter.

Full Changelog: v2026.04.16.0333...v2026.04.16.1620

v2026.04.16.0333

16 Apr 03:37
d46a553

Choose a tag to compare

What's Changed

πŸš€ Features

  • Error boundary & loading states β€” Added error.tsx for authenticated routes, loading.tsx skeletons for all 4 tool pages, and fixed unhandled promise rejections in signin and group wizard.
  • Optimized MP reference generators β€” Improved context efficiency for stored procedure and schema reference file generation.

πŸ› Bug Fixes

  • SQL injection input validation β€” Created src/lib/validation.ts with GUID, numeric, column name, and filter string validators. Applied across 8 source files.
  • Auth check on shared action β€” Added session validation to getCurrentUserProfile(), the only server action missing it.
  • Singleton double initialization β€” Removed redundant initialize() call from constructors of all 4 service classes.
  • Zod date validation β€” Fixed schema generator to use z.string().date() for Date fields instead of .datetime().
  • Missing SQL indexes β€” Added nonclustered indexes on Contact_Private_Notes FK columns (User_ID, Contact_ID, Domain_ID).

⚑ Performance

  • UserProvider memoization β€” Added useMemo and useCallback to prevent unnecessary re-renders of all useUser() consumers.

πŸ”§ Maintenance

  • MPHelper refactor β€” Moved dp_Users GUID lookup from 4 server actions to UserService.getUserIdByGuid(). Removed direct MPHelper imports from action files.
  • Dead code removal β€” Removed unused SessionContext from session-context.tsx.
  • Logging cleanup β€” Removed 12 verbose console.log/error statements from ToolService for consistency.
  • JSDoc fix β€” Removed stale domainId parameter from getUserTools() documentation.

πŸ“š Documentation

  • Full codebase review β€” Updated CLAUDE.md, all 6 reference files (components, services, testing, auth, stored procs, schema), added GroupService documentation, expanded server action inventory.

πŸ§ͺ Testing

  • GroupService test suite β€” 14 new tests covering all 6 methods (lookups, search, CRUD, error propagation). Total: 262 tests across 22 files.

Full Changelog: v2026.04.16.0132...v2026.04.16.0333

v2026.04.16.0132

16 Apr 01:49

Choose a tag to compare

What's Changed

πŸš€ Features

  • MP SQL Install Script Pipeline β€” Combines SQL files from db/ into a unified ministryplatform-install.sql for streamlined database deployment.
  • Collapsible Debug Panels β€” All Development Mode debug panels (ParamsDebug, SelectionDebug, ContactRecordsDebug) are now collapsible for a cleaner workspace.
  • Contact Records Resolution β€” New ContactRecordsDebug component, resolveContactIds service method, and resolveContactRecords server action for resolving selection IDs to contact records.
  • SelectionDebug Callback β€” Added onRecordIdsResolved callback to SelectionDebug for downstream components to consume resolved record IDs.
  • Group Wizard β€” Initial implementation of the Group Wizard tool.
  • Project Foundation β€” Next.js 16 App Router with Better Auth, Ministry Platform OAuth provider, tool framework (Container, Header, Footer), and shadcn/ui component library.

πŸ› Bug Fixes

  • Server Action Type Export β€” Removed invalid type re-export from server action file that caused build issues.
  • SelectionDebug useEffect Deps β€” Added missing onRecordIdsResolved to useEffect dependency array preventing stale closures.
  • ES2020 Target for BigInt β€” Bumped tsconfig target to ES2020 to support BigInt literals used by the MP provider.

πŸ”§ Maintenance

  • Production-Safe Logger (#1) β€” Added lightweight logger utility that silences debug output in production while preserving error logging. Migrated all MP provider runtime files from raw console methods.
  • Remove Deprecated OIDC Vars β€” Cleaned up deprecated OIDC environment variables from the project.
  • Debug Panel Enhancements β€” Updated app title and added Contact_ID_Field display to debug panel.

Full Changelog: https://github.com/MinistryPlatform-Community/MPNext-Tools/commits/v2026.04.16.0132