v5.28.0

New Features

  • Bidirectional Integration Sync: Integration engine now supports Push/Pull/Bidirectional sync directions with Record Changes detection for MJ-side modifications and separate watermark tracking
  • Entity Recycle Bin: New slide-in panel in Entity Viewer for restoring hard-deleted records from RecordChange snapshots with proper permission gating
  • Action Pins for Home Dashboard: Pin Actions as quick-launch cards with configurable title, accent color, Font Awesome icons, and preset parameter values
  • Enhanced Record Changes Timeline: Comprehensive restore functionality with preview panels and timeline polish for version control
  • Playwright Test Harness Callbacks: Added onPageReady callback and fullPage screenshot options for post-render interactions in test automation

Improvements

  • HubSpot Connector Expansion: Extended to 130 objects with full field metadata, association CRUD via v4 API, and composite hs_object_id for sync
  • YourMembership Connector Overhaul: Enhanced to 228 objects with accurate primary keys across all endpoints and proper error surfacing
  • Performance Optimizations: BaseEntity.GetFieldByName and Metadata.EntityByName now use O(1) Map caches instead of O(N) scans, with UUID normalization for cross-database compatibility
  • BaseEngine Observable Properties: New ObserveProperty() API with lazy BehaviorSubject backing for zero-cost unobserved properties
  • AI Prefill Mode Safety: Set PrefillFallbackMode to Ignore on prompts with AssistantPrefill to prevent JSON truncation on models without native prefill support
  • Schema History Tracking: Integration SchemaBuilder now logs DDL history to __mj_integration.SchemaHistory for audit trails

Bug Fixes

  • CodeGen Field Type Validation: Added runtime whitelist for LLM-supplied codeType values to prevent batch failures from out-of-enum values
  • Migration Timestamp Ordering: Fixed v5.28 migration sequencing to maintain proper execution order
  • RSU SQL Execution: Replaced external sqlcmd dependency with in-process SQL execution for CodeGen operations
  • Integration Object Classification: Added IsCustom column to distinguish static vs runtime-discovered objects