Releases: MinistryPlatform-Community/MPNext-Tools
Releases Β· MinistryPlatform-Community/MPNext-Tools
v2026.05.20.1512
What's Changed
π Features
- Add/Edit Family tool + Google Places provider (#10) β New
/tools/addeditfamilytool 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=trueon every separator field and moves them into99 - Other Fieldsin 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
awaitfor mjml 5.2.2's now-Promise-returningmjml2html(). - Lint cleanup: 113 errors β 0 (#13) β Resolves all ESLint errors/warnings introduced by
eslint-config-next16.2.6 (React Compiler-aware hooks rules, stricter unused-vars). Includes one real correctness fix inadd-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
What's Changed
π Features
- Surface MP Separator fields in field-management editor (#9) β The page-order editor now lists
Separatorfields so they can be reordered alongside regular fields. - Thread
$userIdthrough 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_URLunset on sign-out (#9) β Prevents silent fallback to localhost; fails loudly in misconfigured environments. - Tighten proxy API whitelist, add
/signinerror UI, optimize/homeredirect (#9) β Narrows the/api/*bypass, surfaces OAuth errors, reduces an unnecessary redirect hop. - Validate
contactIdingetAddressForContact(#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
requireDevSessionhelper in dev-panel; fixtoolServiceJSDoc drift (#9) - Unify
ui/dialogto plain-function pattern (#9) - Rename contexts hook, dedupe
BATCH_SIZE, validatemailerId, refresh docs (#9) - Expand local permission allowlist for
.claude/ops (#9)
β Tests
π Documentation
- Document field-management tool in
CLAUDE.mdandREADME(#9) - Retire flat
auth/components/testingreference files (#9) β Superseded by the hierarchical layout under.claude/references/.
Full Changelog: v2026.04.17.1958...v2026.04.19.2041
v2026.04.17.1958
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
What's Changed
π Features
- Copy API and generate-sequence in MPHelper (#4) β Adds
copyRecord(),copyRecordWithSubpages(), andgenerateSequence()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 anx-pathnamerequest header andAuthWrapperreads it to build a propercallbackUrl, so users return to the exact tool URL they asked for (critical for production where tools are launched from MP withselectionId/pageID/recordID/userIdparams). - 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
AuthWrappertest 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
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
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.tswith 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
useMemoanduseCallbackto prevent unnecessary re-renders of alluseUser()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
SessionContextfrom session-context.tsx. - Logging cleanup β Removed 12 verbose console.log/error statements from ToolService for consistency.
- JSDoc fix β Removed stale
domainIdparameter fromgetUserTools()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
What's Changed
π Features
- MP SQL Install Script Pipeline β Combines SQL files from
db/into a unifiedministryplatform-install.sqlfor 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,
resolveContactIdsservice method, andresolveContactRecordsserver action for resolving selection IDs to contact records. - SelectionDebug Callback β Added
onRecordIdsResolvedcallback 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
onRecordIdsResolvedto 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